IIS PUT漏洞复现
漏洞原理
WebDAV(Web-based Distributed Authoring and Versioning) 是一种HTTP1.1的扩展协议。它扩展了HTTP 1.1,在GET、POST、HEAD等几个HTTP标准方法以外添加了一些新的方法,使应用程序可对Web Server直接读写,并支持写文件锁定(Locking)及解锁(Unlock),还可以支持文件的版本控制。这样就可以像操作本地文件夹一样操作服务器上的文件夹。当然该扩展也存在缺陷,可以被恶意攻击者利用,直接上传恶意文件。
这个漏洞虽然属于比较久远,现在估计也不存在了。但是作为学习安全来说,熟悉一下总是应该的。(才不是因为今天本来打算发的文章因为涉密不让发才临时整的一个)
漏洞复现
靶机环境:windows server2003 192.168.1.102
首先在靶机开启的IIS服务器上将web服务扩展中的webDAV打开
然后在目标网站的属性中勾选“写入”权限。
完成之后用工具先验证一下服务器当前是否允许PUT方法
可以看到PUT方法已经被允许了。然后将webDAV关闭来对比一下
通过对比可以发现,webDAV就是导致IIS PUT漏洞的罪魁祸首。
既然目标服务器允许PUT方法,那么就用工具来进一步利用。这里用到的是桂林老兵写的iiswriter。
先通过options方法探查一下服务器支持哪些http方法
可以看到此时PUT方法也赫然在列。接下来就先用PUT方法上传一个txt文件看看效果
居然出错了,结合报错信息来看的话应该是哪里的权限有问题。倒腾了一下发现结果是目标网站没有给IIS的访问账户给予写入权限。那么直接给个修改权限吧。
权限也有了,那么再来试试PUT一个文件
可以看到这里已经成功通过PUT方法上传了一个含有asp一句话的txt文件。之所以不直接上传一个asp一句话是因为通常上传txt文本不会出错,但是上传asp就会报错。
在靶机的目标网站下找到了刚刚上传的test.txt文件
为了曲线救国获取shell,这里可以用MOVE方法将刚刚上传的txt文件修改为asp文件,从而将文本文件变成可执行的脚本文件。MOVE协议不会更改文件内容。
通过响应可以知道已经成功了,那么最后就用菜刀连接测试一下
修复建议
通过整个漏洞复现过程我们也可以知道这个IIS PUT漏洞完全是因为管理员的一些不当配置导致的,所以想要修复只需要做到以下两点即可
1.关闭WebDAV2.关闭写入权限
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论