文件上传漏洞分类:
1)服务器配置不当(IIS6.0 put直接写文件)
iss服务器 webDAV扩展开启,网站目录开启可写、可访问。只要知道ip就可以写文件
2)本地文件上传限制被绕过 (javascript验证被绕过)前端验证
3)服务器端过滤不严被绕过
(1)php jsp asp aspx asa php3 cer cdx .py
(2)多文件上传有时只对第一个文件进行严格检验
4)文件路径截断
\0:php是基于C语言编译的,C语言的字符串结尾以/0结束
?:在URL中 用来标识文件名和参数值, .php?id=
%00:ur编码,php5.22版本漏洞
5)文件解析漏洞导致文件被执行
iis:
a.在6.0版本中当文件被命名为 a.asp;jpg 会被解析为脚本文件
b.IIS 6.0 /xx.asp/xx.jpg "xx.asp"是文件夹名
c.IIS 7.0/7.5默认Fast-CGI开启,直接在url中图片地址后面输入/1.php,会把正常图片当成php解析
apach:
早期版本上传 1.php.xxx会被解析为脚本.Apache是从右往左判断后缀
nginx:
a. 版本小于等于0.8.37,利用方法和IIS 7.0/7.5一样,Fast-CGI关闭情况下也可利用。空字节代码 xxx.jpg.php
b. 早期版本 1.jpg/x.php会被当成脚本执行
c. 对低版本的在任意文件名后面添加%00.php进行解析攻击
d. 在 nginx 0.5.* 0.6.* 0.7 <= 0.7.65 0.8 <=0.8.37 以上版本中上传一个在waf白名单之内扩展名的文件1.jpg 然后以q.jpg%00.php进行请求
e。在 10.8.41~1.4.3 1.5<=1.5.7 的linux系统里上传一个在waf白名单之内扩展名的文件1.jpg 然后以1.jpg%20%00.php进行请求
6)开源编辑器漏洞
(fckeditor,自定义文件夹,文件夹结合iis6.0解析漏洞)
ewebeditor:可以登录后台,配置允许上传的文件类型.asp
7)文件上传漏洞防御:
a. 上传文件存储目录不给执行权限
b. 文件后缀白名单,注意00截断攻击(php 5.2x 升级更新到最新版本)
c. 不能有本地文件包含漏洞 (include dama.jpg)
d. 及时更新web应用软件。避免解析漏洞攻击
文件上传绕过:
1)后缀名大小写绕过
2)黑名单绕过
3)特殊文件名绕过
4)00截断绕过
5).htacess文件攻击
6)解析绕过
WAF绕过:有些主机WAF软件为了不影响web服务器的性能,会对校验的用户数据设置大小上限,比如1M。此种情况可以构造一个大文件,前面1M的内容为垃圾内容,后面才是真正的木马内容,便可以绕过WAF对文件内容的校验;