Web服务器解析漏洞

目前解析漏洞主要存在于三大WEB服务程序,分别是IISNGINXAPACHE

1 Apache解析漏洞

Apache配置文件: /etc/httpd/conf/httpd.conf

WEB根目录:/var/www/html

服务器:centos6.3

客户端:win7

原理

Apache是从右到左开始判断解析,如果为不可识别解析,就再往左判断。比如xxx.php.rar对apache来说rar是不可解析的,所以就会解析成xxx.php

关键

Apache并不认识rar后缀名,对它来说会看成test.php。解析成功。其实整个漏洞的关键就是apache的"合法后缀"到底是哪些,不是"合法后缀"的都可以被利用。

防御

修改apache配置文件,禁止*.php.*文件的访问权限

vim /etc/httpd/conf/httpd.conf
# 添加

<FilesMatch ".(php.|php3.|php4.|php5.)">
  Order Deny,Allow
  Deny from all
</FilesMatch>

# service httpd restart
# 重启apache,再来测试发现无法上传

关于Order deny,Allow

2 Nginx解析漏洞

反向代理

Nginx本身并不支持对PHP进行解析,因此Nginx在作为PHP应用的WEB服务器时,实际上是通过反向代理功能将对PHP页面的请求快速地转交给诸如FastCGI这样的通讯接口转发给PHP进行解析。

img

原理

PHP CGI 以 / 为分隔符号从后向前依次检查路径,当检测到test.jpg/anything.php时,PHP会认为SCRIPT_FILENAME是test.jpg, 而anything.php是PATH_INFO, 然后PHP就把test.jpg当作一个PHP文件来解释执行。

在很多使用 php-fpm (<0.6) 的主机中也会出现这个问题,但新的 php-fpm 的已经关闭了 cgi.fix_pathinfo。

3 IIS解析漏洞在fckEditor上传攻击上的利用

原理

网站服务器在打开各种不同类型的文件时,根据文件的后缀名来判断应以何种方式来打开该文件。例如,123.txt 文件的内容会被直接输出到web页面,123.jpg文件则会以图片的形式呈现给网站用户,而123.asp文件则会传递给asp.dll动态链接库来解析,并执行其中的asp脚本。

Windows IIS6.0下主要是有两个解析漏洞,一个是目录解析,形如/xx.asp/xx.jpg,另一个就是文件解析,形如xx.asp;.jpg,可通过此漏洞上传shell,对服务器危害较大。

IIS目录解析漏洞:

在网站下建立文件夹的名字为 *.asp的文件夹,其目录内的任何扩展名的文件都被 IIS 当作 asp 文件来解析并执行。例如创建目录 1.asp,那么 /1.asp/1.jpg 将被当作 asp 文件来执行。

IIS文件名解析漏洞:

网站上传图片的时候,将网页木马文件的名字改成*.asp;.jpg,也同样会被 IIS 当作 asp 文件来解析并执行。例如上传一个图片文件,名字叫1.asp;.jpg的木马文件,该文件可以被当作 asp 文件解析并执行。

IIS6.0 默认的可执行文件除了asp还包含asa\cer\cdx这三种。

posted @ 2023-04-13 22:20  Tr41n  阅读(91)  评论(0)    收藏  举报