前言
因为搞站中碰到了一起解析漏洞的站,所以对此总结一下所有解析漏洞
IIS
IIS5.x/6.0
目录解析
目录名包含.asp .asa .cer
这种字样,该文件夹下所有的文件均可以当作asp来解析
文件解析
以为服务器不解析;后的内容,所以/xx.asp;.jpg
可以被当作asp来解析
IIS特殊后缀名
- asa
- cer
- cdx
IIS7.0/IIS7.5
默认fast-cgi开启状况下,在一个文件路径后面加上/xx.php会将原来的文件解析为php文件
如:test.jpg/.php
会被当做php来执行
nginx
畸形解析漏洞
默认fast-cgi开启状况下,在一个文件路径后面加上/xx.php会将原来的文件解析为php文件
如:test.jpg/.php
会被当做php来执行
空字节代码执行
在fast-cgi关闭的情况下,nginx版本:0.5., 0.6., 0.7- 0.7.65, 0.8 -0.8.37,nginx在图片后附加php代码然后通过访问xxx.jpg%00.php
来达到代码执行的目的
文件名逻辑漏洞
受影响的nginx版本: 0.8.41至1.4.3和1.5.7之前的1.5.x 正常上传一个附加代码的图片”test.jpg”,访问时后面+”空格”+”\0”+”.php”,即让图片作为php文件解析
/test.jpg \0.php
配置不当造成的目录穿越
如果绝对路径”/home/“的URL映射是网站目录”/les/“,配置写成了”/les”
location /files {
alias /home/;
}
就可以访问”/les../“,穿越路径,访问到绝对路径根目录”/“下的文件列表
Apache
Apache从右向左解析,后缀不可识别就向左。因此test.php.xxx
被当作php进行执行
Windows
Windows保留字
windows文件夹名不允许出现以下字符
\ / : * ? " < > |
被去除的符号
windows不允许[空格]和[.]的存在,会默认去除,所以test.php和test.php.将会是一个文件
长文件名截取
Windows最长文件名为255,超出将被截取