1.Apache------低版本漏洞
原理:x.php.xxx.yyy ->识别最后的yyy,如果识别失败则向前解析,直到识别为止。
2.Apache配置安全。
3.Nginx解析漏洞:
上传各类文件,如.jpg,访问时加斜杠加以.php结尾的任意名字,会把.jpg结尾的文件以php执行。
上传:a.jpg
访问:xx/a.jpg/x.php
判断是否有漏洞:在网址后加上任意以.php结尾的名字,报错就就没有,显示地址就有这个漏洞。
4.Nginx文件名逻辑漏洞:
上传文件时在文件名后加上空格;“a.jpg ”
访问:https://your.ip:8080/upload/a.jpg 并抓包修改为:info.jpg..php,在hex中修改.jpg后面两个点2e为20,00,再访问。
5.web编辑器漏洞,常见编辑器:ueditor,fckeditor,ckfind,kindeditor……
6.cms文件系统文件上传:通达OA漏洞。
上传漏洞waf绕过:
1.数据溢出
在filename="x.php"前写入大量无用的数据,并用分号分隔结尾。从而干扰安全狗,成功上传。
2.符号变异
将filename="qq.php"中的双引号去掉后面的那个,或把双引号改成单引号,并去掉一个亦可。
filename="qq".php
"q"qq.php
3.数据截断
filename="a.jpg;.php"
="a.p
h
p"
分块传输的原理。
4.重复数据、
在filename="a.php"内把前面concent-disposition;......的内容复制来放入引号中,利用重复数据成功上传。
filename="content-disposition;form-data;name="upload-file"x.php"
5.斜杠绕过
filename="/jpeg:/x.php"
fuzz字典:https://github.com/fuzzdb-project/ duzzdb
https://github.com/TheKingOfDuck/fuzzDicts
https://github.com/TuuuNya/fuzz.dict
fuzz:模糊测试
php后端验证:
后缀检测:基于黑白名单过滤。
mime检测:基于文件上传自带类型检测。
内容检测:文件头,完整性检测。
自带函数过滤:参考uploadlabs函数。
自定义函数过滤:function check_file(){}