iis6
baidu. com/xx.asp/xx.jpg
baidu. com/xx.asp;.jpg
都会被解析为asp文件
默认可执行文件除了asp 还有cer asa cdx
apache
他是从右到左解析的,遇到不能识别的后缀名会直接跳过,例如xx. php. fuck 会解析成php
配置问题导致的解析:apache的conf里面add handler php5-script和addtype application/x-httpd-php 当遇到类似于xx. php. jsp时会自动解析成php
如果. htaccess可以被执行并且可以上传 则添加SetHandler application/x-httpd-php 这样1.jpg会被解析成php
nginx <8.03
是cgi方式支持php解析的
做法是在nginx的配置文件中通过正则匹配设置script_filename 当访问xx. com/1.jpg/2.php时 $fastcgi_script_filename会被设置为1. jpg/2.php
这时script_filename会被传递给php cgi 1.jpg会做为php文件解析 原因在于fix_pathinfo这个选择 把1.jpg作为script filename 而2.php作为path_info
漏洞形式
xx. com/1.jpg/2.php
xx. com/1.jpg%00. php
xx. com/1.jpg/%20\0. php
或者是上传xx. jpg 访问xx. jpg/.php
在这个目录下就会生成一句话木马shell. php
iis7.5
和nginx类似 是开启了cgi. fix_pathinfo 的配置,而并非本身的漏洞
上传不符合windows命名规则的文件
xx. php.
xx. php空格
xx. php:1. jpg
xx. php:: $data