Walks

网络安全爱好者

文件上传漏洞(个人总结)

前言:

一次对文件上传漏洞的总结,希望在学习知识的同时可以帮助到其他人。


目录:

0x01:前端验证

0x02:后端验证未严格化

0x03:解析漏洞

0x04:如何防护



前端验证

前端验证其实没必要多说,就是上传的时候上传文件的类型,后缀都是由前端JS验证的,而我们只要BurpSuite抓一下包就可以绕过客户端的这个验证。


后端验证未严格化

这主要产生在后端验证为黑名单,或者只验证了Content-Type : image/gif,又或者只是验证了文件头为GIF89a

当后端验证为黑名单时:我们可以找一下是否有文件后缀黑名单内未包括,但是解释器却把这个后缀解释为执行语言。(jsp jspx jspf asp asa cer aspx php php php3 php4 exe exee

只验证了Content-Type:这时我们只要修改Content-Type:image/gif即可。

只是验证了文件头:可以随意找一个图片文件,直接右键文本打开,然后写入一句话即可。


解析漏洞

Apache,IIS,Nginx

Apache:Apache识别文件的规则是从右向左,所以当我们上传一个名为xxx.php.bywalks的文件时,Apache无法识别bywalks这个文件后缀就往前识别,所以解释为php代码

IIS7.0/7.5:由于配置不当,IIS会把http://www.bywalks.com/123.jpg/123.php这种形式的当做php文件来解析。

Nginx:与IIS同理。


如何防护

1:后端验证需要严格。

2:要考虑到apache,iis,nginx这些中间件和windows,linux这些操作系统的特性。

3:上传后的文件名需要随机化


点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注