一、通用检测方法
判断是否为黑白名单,如果是白名单 寻找可控参数。如果是黑名单禁止上传,可以用有危害的后缀名批量提交测试,寻找遗留的执行脚本。
.php
.php5
.php4
.php3
.php2
.html
.htm
.phtml
.pht
.pHp
.phP
.pHp5
.pHp4
.pHp3
.pHp2
.Html
.Htm
.pHtml
.jsp
.jspa
.jspx
.jsw
.jsv
.jspf
.jtml
.jSp
.jSpx
.jSpa
.jSw
.jSv
.jSpf
.jHtml
.asp
.aspx
.asa
.asax
.ascx
.ashx
.asmx
.cer
.aSp
.aSpx
.aSa
.aSax
.aScx
.aShx
.aSmx
.cEr
.sWf
.swf
.htaccess
使用 burpsuite 抓包上传将后缀名设置成变量,把这些文件设置成一个字典批量提交。
查看数据包大小 查看确定时候可上传即可。
二、文件上传的防御方法
1、服务器端使用白名单防御。
2、修复 web 中间件的漏洞。
3、禁止客户端存在可控参数。
4、存放文件目录禁止脚本执行。
5、限制后缀名 一定要设置图片格式 jpg、gif 、png。
6、文件名随机的,不可预测。