网站漏洞扫描之文件上传漏洞的绕过办法



   1.JavaScript验证绕过。JavaScript认证就是所谓的客户端认证,也是最容易受到攻击的认证

。直接修改包或者禁用JavaScript绕过它。2.绕过内容类型身份验证。验证内容类型最常见的方

法是确定内容类型是否是image/gif。对于这个验证,直接将数据包中的内容类型修改为image/

gif。3.黑名单检测被绕过。黑名单检测是一种常见的上传验证方式,不允许上传黑名单中存在

的扩展。它的安全性比白名单检测低,旁路远比白名单检测多。有几种常见的绕过黑名单检测

的方法。
 
(1)在扩展黑名单名称中查找鱼,如asa和cer。(2)案例混淆旁路,比如AsP和pHp。(3)通过解析

漏洞绕过。(4)特殊文件名结构。(5)截断上传。4.白名单检测绕过。白名单检测的安全性远高于

黑名单检测,只能上传白名单允许的少数扩展。因此,混淆大小写、黑名单中特殊扩展等旁路

方法对白名单检测无效。但仍然可以通过截断上传、解析漏洞、特殊文件名构造等方式绕过。
 
 
5.绕过危险扩展名POST提交的检测。在开发中,为了方便维护和更新,会先对扩展进行验证

。如果上传文件的扩展名是可执行脚本,则会检测到POST数据,如果有恶意代码,则禁止上

传。对于这种上传检测,大致有这些思路。一种是利用变种木马绕过其检测;另一种是用包含

文件绕过它。拿PHP来说,先把一个木马放入txt文件,因为txt不是可执行脚本,所以上传成功

;然后把图3-35所示的代码放到一个PHP文件中,加载外部XXX。txt文件。使用PHP中的inc

lude函数来包含刚才上传的txt文件。因为include是PHP中常见的函数,一般POST检测不认为

是恶意代码,所以上传成功,从而绕过限制,执行恶意代码。
 
 
6.绕过服务器目录限制。有些网络应用程序本身不验证扩展名,但会限制服务器上传目录中允

许上传的文件扩展名。对于这种防御方式,如果能控制上传路径,就能成功绕过。其中最常见

的是上传路径写在数据包中,所以数据包可以直接修改,其中../用于跳出受限目录。还有一些

不寻常的,比如加../文件名前直接跳出目录。
分享: