解析漏洞
IIS6.0 IIS7.5
IIS6.0 在处理含有特殊文件路径时候就会出现逻辑错误
- 在.asp目录下的任意文件都会以asp格式解析
- ;截断,上传test.asp;.jpg是一个jpg文件,但是会以asp执行
IIS 7.0 url中文件后缀是.php,无论文件是否存在,直接交给php处理,而php默认开启”cgi.fix_pathinfo”,会对文件进行”修理”,比如当php遇到路径”/aaa.xxx/bbb.yyy”,若”/aaa.xxx/bbb.yyy”不存在,则会去掉最后的”bbb.yyy”,然后判断”/aaa.xxx”是否存在,若存在,则”/aaa.xxx”当做文件
- php.ini中的cgi.fix_pathinfo设置为1,且结合方式是fast-cgi
- 在文件后门加上/xx.php(xx可加可不加)就会将该文件以php格式执行
P U T漏洞
条件:
IIS6.0开启webdav服务并且设置了写入权限
可以使用IIS PUT SCANNER 探测一下目标IIS是否拥有写入权限
- 使用P U T方法上传文件,但是大多情况下无法上传php等脚本文件,上传txt
- 可以使用move方法将txt转换为脚本文件,或者利用解析漏洞执行
Cve-2017-7269
背景
IIS开启WebDAV
在iischuliPROPFIND指令的时候,由于对url 的长度没有进行有效的长度控制和检查,导致执行memcpy对虚拟路劲进行构造时候,英法栈溢出,从而导致远程代码执行
https://github.com/admintony/Windows-Exploit/tree/master/IIS6_WebDAV_Scanner https://github.com/zcgonvh/cve-2017-7269
短文件名猜测
iis短文件名机制,可以暴力猜测文件名,访问构造的某个存在的短文件名,会返回404,访问构造的某个不存在的短文件名,会返回400
特征
- 只显示前6位字符,后续用~1代替,其中数字1是可以递增的,如果存在文件名类似的文件,则前面的六个字符是相同的,后面的数字是递增的
- 后缀名最长的只有3位,超过3位的会生成短文件名,且后面多余的部分会被截断
- 所有小写字母均转换为大写字母
- 长文件名中包含多个”.”,以最后一个“.”作为段文件名的后缀
- 文件名后缀长度大于等于4或者总长度大于等于9时才会生成短文件名,如果包含空格或者其他部分特殊字符,不论长度均会生成短文件
github.com/lijiejie/IIS_shortname_Scanner