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为任意字符)
