文件上传

发布时间 2023-05-26 15:25:15作者: 数星观月

1、文件上传漏洞

有文件上传的地方可能有上传漏洞,但有文件上传不一定有上传漏洞,具体要看实际情况。

2、危害

如果有漏洞,我们可以上传一个后门,获取权限,危害还是比较大的。

3、查找和判断

  1)常规类:扫描获取上传、会员中心上传、后台系统上传、各种途径上传

  2)CMS类:已知CMS源码

  3)编辑器类

  4)其他类/CVE:代码审计、平台/三方应用等

注:(1)解析问题,一般网站允许上传什么格式的文件,就会对相对应的格式进行解析,而解析不了其他类型的文件。但是如果一个网站的文件上传的过滤得很好,能将上传的脚本文件都给过滤掉,但刚好有解析漏洞,我们就可以将脚本写进允许上传格式的文件中,逃过过滤来执行。(2)如果知道网站的CMS或编辑器等,我们在找相对应的漏洞时就不需要抓包一步一步去分析,我们可以直接网上搜索相关漏洞利用,大大节省我们的时间和精力。

upload-labs下载地址:https://github.com/c0ny1/upload-labs

------------------------------------------------------------------------------------------------------------------

vulhub靶场搭建(虚拟机用centos7)

更改centos的下载镜像源,命令curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo覆盖,命令cat /etc/yum.repos.d/CentOS-Base.repo查看是否覆盖成功。

 命令sudo yum -y update更新一下软件,更新好后yum list docker-ce --showduplicates | sort -r查看本机是否安装docker,报错了没装。

 添加yum源,命令yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo。

 命令yum install docker-ce -y安装最新的docker,如果有依赖问题的话使用命令yum install -y yum-utils device-mapper-persistent-data lvm2提前下好依赖,下好后使用docker version查看版本。

 命令systemctl start docker和systemctl enable docker设置启动并开机自启。

 命令curl -L https://github.com/docker/compose/releases/download/1.29.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose安装docker-compose

 命令cd /usr/local/bin/进入到目录中,命令chmod +x docker-compose给目录增加可执行权限。

 命令mkdir -p /var/local/soft/创建存放vulhub的目录,cd /var/local/soft/进入到目录中,yum -y install git安装git,git clone https://github.com/vulhub/vulhub.git下载vulhub

命令cd ./vulhub,ls查看有哪些漏洞

------------------------------------------------------------------------------------------------------------------

 测试一下nginx中的PHP文件上传漏洞

cd ./nginx,ls,cd ./nginx_parsing_vulnerability,docker-compose build,docker-compose up -d开启这个漏洞靶场

 出了点小问题80端口被占用了

 命令netstat -tln | grep 80查看端口是否使用,在用lsof -i:80命令查看是哪个在占用。kill -9 2098和kill -9 2100将这两个进程杀掉。

 按照上面的步骤再次开启靶场漏洞,浏览器访问一下

 弄一张jpg格式的图片,打开写一些PHP的代码放在后面。

 浏览器地址栏输入这个路径可以查看到对应的上传照片

 在文件路径后面加个/x.php就可以执行我们的PHP代码(x为任意字符)