因为业务功能需求,很多web站点都有文件上传的接口,如:
注册上传头像(如jpg,png,gif等)上传文件附件文件上传本身没有问题关键在于文件上传后服务器怎么处理、解释文件。
要能利用有几个要素
文件能被访问(可配合php文件解析漏洞)文件能被当作脚本执行当WebDAV开启PUT,MOVE,COPY,DELETE方法时,攻击者就可以向服务器上传危险脚本文件。使用OPTIONS探测服务器支持的http方法,如果支持PUT,就进行上传脚本文件,在通过MOVE或COPY方法改名。当开启DELETE时还可以删除文件。
JS通过验证上传文件的扩展名来判定是否符合上传行为
通过修改js代码绕过验证,或之间通过burp抓包改字段,绕过js验证
文件头content-type字段校验
绕过方式
使用Burp截取上传数据包,修改Content-Type的值,改为image/gif即可成功绕过上传webshell
检测扩展名发生在存储文件之前,然后保存,也就是说保存的文件扩展名一定,只能通过web容器等漏洞来欺骗http服务器,让他执行这个文件,即使他的扩展名不应当被执行。
Apache的.htaccess文件上传解析漏洞IIS6.0解析漏洞:(Windows2003)目录路径检测解析绕过上传漏洞、分号解析、畸形文件名解析ngnix解析漏洞参考
http://thief.one/2016/09/21/服务器解析漏洞/
https://paper.seebug.org/560/#_17
https://www.secpulse.com/archives/78800.html
白帽子讲web安全
如果上传是程序员自己写的可以尝试上面的,如果是编辑器的搜一下历史漏洞。
转载于:https://www.cnblogs.com/wan-xiang/p/11563709.html