这些中间件漏洞都很老了,但是面试容易考,还是记录一下把。
apache
多后缀解析
影响版本:apache 2.0.x <= 2.0.59、apache 2.2.x <= 2.2.17
解析文件的规则是从右到左开始判断解析,如果后缀名为不可识别文件解析,就再往左判断,直到找到可以识别的文件后缀。若都不可识别,则将其作为plain/text处理。
apache在
conf/original/mime.types
文件中保存有其可以识别的文件后缀
例如:index.php.a.b,后缀.b
和.a
都不可识别,但.php
可识别,此时apache会将其作为php文件解析
换行符绕过(CVE-2017-15715)
影响版本:apache 2.4.0-2.4.29
在解析PHP时,1.php\x0A
将被按照PHP后缀进行解析,导致绕过一些服务器的安全策略。
P神有一篇文章谈到过这个。
Apache SSI 远程命令执行漏洞
前提:服务器开启了ssi与cgi支持
可以上传shtml文件并在shtml文件中输入ssi指令 <!--#exec cmd=”whoami” -->
,然后再访问这个文件即可获得ls的结果。
SSI(Server Side Include),通常称为“服务器端嵌入或者叫”服务器端包含,是一种类似于ASP的基于服务器的网页制作技术。默认扩展名是 .stm、.shtm 和 .shtml。
IIS
IIS 5.x和IIS 6.x解析漏洞
1.目录解析(6.0)
形式:http://www.xxx.com/xx.asp/xx.jpg
原理: 服务器默认会把.asp
,.asa
目录下的文件都解析成asp文件。
2.文件解析(6.0)
形式:http://www.xxx.com/xx.asp;.jpg
原理:服务器默认不解析;
号后面的内容,因此xx.asp;.jpg
便被解析成asp文件。
3.解析文件类型(默认解析后缀)
有的网站会设置黑名单上传限制,IIS6.0 默认的可执行文件除了asp还包含这三种 :
1 | /xx.asa |
iis把asa,cdx,cer解析成asp文件的原因:这四种扩展名都是用的同一个asp.dll文件来执行。
IIS 7.0/7.5 CGI解析漏洞
前提:
php.ini里的
cgi.cgi_pathinfo=1
IIS7在Fast-CGI运行模式下
利用:在访问某个文件时,在路径后加/*.php
(这里的*指任意字符),即可让服务器把把该文件当作php文件解析并返回
Nginx
Nginx PHP CGI 解析漏洞(fix_pathinfo)
前提条件:php配置cgi.fix_pathinfo=1
和iis7/7.5漏洞利用方法一致,url/xxx.gif/xx.php会被解析为php文件
空字节代码执行漏洞
影响版本:Nginx 0.5.x、Nginx 0.6.x、Nginx 0.7-0.7.65、Nginx 0.8-0.8.37
Ngnix在遇到%00空字节时与后端FastCGI处理不一致,导致可以在图片中嵌入PHP代码然后通过访问xxx.jpg%00.php来执行其中的代码
Nginx 文件名逻辑漏洞(CVE-2013-4547)
影响版本:Nginx 0.8.41 ~ 1.4.3 / 1.5.0 ~ 1.5.7
需开启fast-cgi
上传一个空格结尾的文件,比如xxxxx.gif%20
请求url/xxxxx.gif%20\0x00.php
即可解析为php文件(\0x0
0须在burp里的hex里改)