目录
前言:
该文章仅用于信息网络安全防御技术学习,请勿用于其他用途!
该文章为纯技术分享,严禁利用本文章所提到的技术进行非法攻击!
文件上传漏洞,我们的核心操作是什么?
通过上传功能,把恶意文件上传到服务器端,然后利用上传功能的不完善,绕过类型或者大小的限制,把恶意文件上传到服务器,从未实现攻击,如果服务器被入侵,就可能导致数据泄露等安全问题,
所以对于文件上传功能,需要控制文件类型和大小数量,同时进行安全校验和过滤,防止文件上传的漏洞
下面开始使用upload-labs靶场进行实操:
第一关:
upload-labs下载地址:https://github.com/c0ny1/upload-labs
1、下载upload-labs的release的集成环境版本
2、根据说明先运行一下modify_path.bat文件,把apache、PHP里面的目录重新更新一下到它自己的配置文件里面,否则它不清楚所需要的文件都在哪个位置
1、双击phpstudy.exe文件,点击启动(我这里因为装过新版的phpstudy和mysql所以报端口被占用,无所谓哈,反正用不到数据库)
2、下面就可以使用本机的IP进行访问靶场了
3、选择准备好的webshell文件,后缀改成png点击上传,开启BP抓包
4、箭头可选择点击图片查看地址,然后右键选择open in new tab复制该地址
5、来到ant-sword进行尝试链接,链接成功
6、右键选择要操作的菜单,比如文件管理就可以看到目标的C盘下的所有文件
7、或者选择虚拟终端也可,这样就相当于打开一个cmd的dos命令窗口,可以在里面执行一些命令
第二关:
1、先尝试上传正常的图片验证功能是否正常
2、上传成功后到指定路径下查看是否存在该图片
3、图片上传成功,说明功能正常
4、上传phpinfo文件,提示:文件类型不正确,请重新上传!
5、查看源码, (($_FILES['upload_file']['type'] == 'image/jpeg') || ($_FILES['upload_file']['type'] == 'image/png') || ($_FILES['upload_file']['type'] == 'image/gif'))
6、说明上传的文件类型必须是jpeg、pbg、gif,就是数据包中的Content-Type的类型
7、下面再上传一次,使用BP抓取请求包
8、更改Content-Type的类型为image/gif,放包
9、右键选择图片源地址并打开,成功打开,并且是我们想要的结果
第三关:
1、上传正常图片验证功能是否正常
2、上传php文件,提示:不允许上传.asp,.aspx,.php,.jsp后缀文件!
3、按照提示那就上传这几个类型之外的文件,把原先的php后缀文件改成php3
3、复制源地址,打开ant-sword尝试链接
4、链接成功,靶场uload目录也显示上传成功
第四关:
1、直接上传phh文件尝试是否可行
2、提示:此文件不允许上传,查看提示发现好多后缀名被禁用掉了
3、但是如果没有禁用.htaccee那么就能触发webshell
4、打开BP抓取请求包
5、先上传.htaccee文件:AddType application/x-httpd-php .fan
6、上传后查看upload目录,已上传成功
7、把webshell文件后缀改成.fan,点击上传
8、.htaccess可以把.fan解析成php
9、但是上传之后复制源地址,打开ant-sword进行链接,提示链接成功