| 空字节理解当字符串有%00(空字节),就会被服务器认为是结束符。 <?php
$a = $_GET['i'];
echo $a;
?>
 浏览器打开127.0.0.1/1.php?i=123456%00123456将%00设置为url编码
 只会输出123456
 截断上传上传文件格式为jpg,用burpsuite进行抓包,将文件名字修改为1.jpg%00.php将%00设置为url编码
 黑名单验证可以尝试php3,php4,php5,phtml或者使用服务解析漏洞 基本流程:1.图片是否正常上传2.图片上传内容是否被修改
 3.上传的域名是否是目标服务器
 4.如果不是判断图片服务器是否解析
 5.上传的目录是否支持解析
 6.判断是否黑名单验证
 文件二次上传解析漏洞iis1.使用iis5.x-6.x版本的服务器,大多为windows server 2003,网站比较古老,开发语句语句一般为asp;该解析漏洞也只能解析为asp文件,而不能解析aspx文件。2.目录解析(6.0)
 形式:www.xxx.com/xx.asp/xx.jpg
 原理:服务器默认会把.asp,.asa目录下的文件都解析成asp文件
 3.文件解析
 形式:www.xxx.com/xx.asp;.jpg
 原理:服务器默认不解析;号后面的内容,因此xx.asp;.jpg便被解析成asp文件了。
 4.解析文件类型
 iis6.0默认的可执行的除了asp还包含这三种:
 /test.asa
 /test.cer
 /test.cdx
 apache漏洞原理:apache解析文件的规则是从右到左开始判断解析,如果后缀名为不可识别文件解析,就再往左判断。比如test.php.owf.rar,.owf和.rar这两种后缀是apache不可识别解析,apache就会把test.php.owf.rar解析成test.php。
 漏洞形式:
 www.xx.xxx.com/test.php.php123
 其余配置问题导致漏洞:
 1.如果apache的conf里有这样一行配置Addhandler php5-script.php这时只要文件名包含.php即使文件名是test2.php.jpg也会以php来执行
 2.如果apache的conf里有这样一行配置AddType application/x-httpd-php.jpg 即使扩展名是jpg,一样也能以php方式执行
 iis7.5iis7.5的漏洞与nginx的类似,都是由于php配置文件中,开启了cgi.fix_pathinfo,而这并不是nginx或者iis7.5本身的漏洞。PS:a.aspx.a;a.aspx.jpg…jpg
 .net上传一般支持aspx默认都会支持ashx phtml上传在apache配置文件(一般是httpd.conf)里添加AddType application/x-httpd-php.phtml
 这样phtml后缀的文件就会按照php去解析,也可以设置成其他后缀
 .htaccess创建.htaccess文件放在当前目录下 <File *.jpg>
ForceTypr application/x-httpd-php
SetHandler application/x-httpd-php
</Files>
 双文件上传 |