-
漏洞简介
-
什么是解析漏洞?
解析漏洞主要是一些特殊文件被Apache,iis,nginx 等web容器在某种情况下解释成脚本文件格式并得以执行而产生的漏洞
漏洞危害:
若存在漏洞,可通过一些手段获取webshell
-
解析漏洞分类
IIS解析漏洞
Apache 解析漏洞
Nginx 解析漏洞
-
IIS解析漏洞
- 目录解析
以*.asp命名的文件夹里的文件都将会被当成ASP文件执行
- 文件解析
*.asp:.jpg 想这种畸形文件名在“;” 后面的直接被忽略,也就是说当成*.asp文件执行
IIS6.0 默认的可执行文件除了asp好包括三种: *.asa *.cer *.cdx
IIS7.0 /IIS 7.5
在默认Fast-CGI开启状况下,在一个文件路径(/xx.jpg) 后面加上/xx.jpg /xx.php 解析为php文件
需要开启两个开关,php.ini里 cgi.fix_pathinfo=1(默认为0)和iis中的处理程序映射: phpstudy2018_FastCGI 取消勾选请求限制里的第一个选项
-
实战
IIS6.O+ASP 搭建靶场
抓包:
上传一个图片木马,抓包,上传成功
成功
-
修复方式
一、程序方面
对新建目录文件名进行过滤,不允许新建包含 . 的文件夹
取消网站后台新建目录的功能,不允许新建目录
二、服务器方面
限制上传目录的脚本执行权限,不允许执行脚本
过滤 .asp /xm.ipg 通过ISApi 组件过滤。 在httpd.ini加入了以下规则:
ASP RewriteRule (.*).asp/(.*) /no.gif RewriteRule (.*) /no.gif RewriteRule (.*).aSp/(.*) /no.gif RewriteRule (.*).asp/(.*) /no.gif
-
Apache解析漏洞
-
介绍
在Apache1.x,2.x 中Apache 解析文件的规则是从右到左开始判断解析,如果后缀为不可识别文件解析
就往左判断,如1.php.tats
- apache解析漏洞
开始测试,在客户机新建一个dede.php.xxx 内容是 然后上传
其余配置问题导致漏洞:
- 如果在Apache 的conf 里由这样一行配置 AddHandler php5-script.php 这是只要文件名里面包含.php 即使文件名是 test2.php.ipg 也会以 php 来执行
- 如果在Apache 的conf 里有这样一行配置 AddType application/x-http-php.jpg 即使扩展名是jpg,一样能以 php 方式执行
- .htaccess 文件如果可以上传且能覆盖原有配置
文件写入配置 SetHandler application/x-httpd-php
上面配置意思是:无论文件后缀是神魔,主要包含hello就会php解析器解析此文件
-
Nginx解析漏洞
- Nginx 解析漏洞
该解析漏洞是PHP CGI 的漏洞,在PHP的配置文件中有一个关键的选项
cgi.fix_pathinfo默认开启,当URL中有不存在的文件,PHP就会向前递归解析
在一个文件路径(/xx.jpg)后面加上/xx.PHP会将 /xx.jpg /xx.php 解析为 php 文件
- Nginx
在Fast-CGI关闭的情况下,Nginx
在一个文件路径 (/xx.jpg)后面加上%00.php 会将 /xx.jpg%00.php 解析为php 文件
另一种手法:
上传一个名字为test.jpg,以下内容文件。
');?>
然后访问test.jpg/.php 在这个目录下就会生成一句话木马hell.php。
这里写phpinfo测试
-
修复方式
升级版本
关闭 cgi.fix_pathinfo