今天搞站,本来这个站是aspx的,webserver是IIS6.0的,进入后台之后,发现有一个上传图片的地方,于是,我就上传了一张asp/aspx的一句话图片木马,但是用菜刀连接的时候,没有成功getshell,于是,我就纳闷儿了,为什么不行呢?
于是,在网上看了一下IIS6.0的解析漏洞,总结如下:
1、 图片一句话的执行环境
2、 文件上传/解析漏洞
3、 截断上传
4、 NTFS数据流
当你上传的木马如asp/aspx,必须在IIS6.0环境,且在以x.asp为名称的文件夹下面,才能执行图片里的代码,也就是说,图片木马执行必须满足2个条件:A:你可以自建x.asp文件夹;B:你需要上传图片木马到x.asp文件夹下;其实,如果网站没有IDS,WAF,webshell查杀工具等等的对文件真正属性的检查,你也可以不使用图片一句话,你也可以直接将asp/aspx小马的后缀直接修改为JPG or PNG等等,然后上传;为什么呢?因为现在只有网站应用程序在检查文件的后缀,并没有检查文件真正的属性,然后就是没有防火墙如:IDS,WAF等,自然而然也就可以绕过并上传,但前提还是,你必须能在服务器自建x.asp文件夹才行,并把马上传到x.asp文件夹之下,而且上传之后服务器没有webshell查杀工具等等的防御。
文件上传漏洞,是应用程序与IIS6.0的问题,如:文件上传验证程序,IDS、WAF 等等,应用程序在验证文件后缀的时候是验证文件名最后的字串,如:1.asp;2.jpg,是图片,但是在IIS6.0里解析的时候,是忽略掉分号后面的字串,直接解析为1.asp
截断上传,是借助%00截断上传使%00后面的字串被忽略,如:1.asp.jpg à1.asp%00.jpg,从而成功上传shell。
NTFS数据流漏洞是Windows中特有的漏洞,当然,你的Unix/Linux是NTFS也可以~
具体漏洞原理及漏洞利用请参考:http://www.80sec.com/ntfs-web-security.html
IIS6.0解析漏洞详情参见:http://www.2cto.com/Article/201309/240797.html