漏洞原理
WebDAV (Web-based Distributed Authoring and Versioning) 是一种HTTP1.1的扩展协议。它扩展了HTTP 1.1,在GET、POST、HEAD等几个HTTP标准方法以外添加了一些新的方法,使应用程序可对Web Server直接读写,并支持写文件锁定(Locking)及解锁(Unlock),还可以支持文件的版本控制。可以像在操作本地文件夹一样操作服务器上的文件夹,该扩展也存在缺陷,可以被恶意攻击者利用,直接上传恶意文件。
漏洞利用
该漏洞的产生原因来源于服务器配置不当造成,利用IIS PUT Scaner扫描有漏洞的IIS,此漏洞主要是因为服务器开启了WebDAV的组件导致的可以扫描到当前的操作,具体操作其实是通过WebDAV的OPTIONS来查询是否支持PUT。
演示环境
在VMare软件里安装好 Windows 2003 R2 虚拟机,并搭建好 IIS 服务
漏洞介绍
根据put协议,当我们浏览某个网站,访问某个资源时,如果网站存在这个资源,则会进行替换,若网站不存在这个资源,则会创建这个资源,所以我们可以利用put直接对网站写shell。
而IIS Server 如果在 Web 服务扩展中开启了 WebDAV ,配置了可以写入的权限,结合put协议就会造成任意文件上传漏洞。
漏洞复现
安装IIS:
1依次点击开始->控制面板->添加或删除程序->添加/删除Windows组件(左侧第三个)->找到应用程序服务器:
2双击打开(或点击详细信息),如图勾选
3确定后,点击下一步安装,完成后可以在开始->管理工具->进入Internet信息服务(IIS)管理器:
4在靶机win2003搭建好IIS服务(iis6.0),开启IIS的WebDAV功能:
5选择左侧网站->默认网站(右击)->属性->主目录,允许写入(必需)、脚本资源访问(非必需,之后解释,这里先允许):
6默认网站(右击)->权限,允许来宾用户的写入权限,IIS_WPG默认读取与运行权限即可:
7访问http://192.168.184.137/(win2003),burp抓包,修改GET为OPTIONS发送,测试允许的方法。
8再使用IIS put scanner扫描一下判断是否允许put方法:
9如果这时候把WebDAV禁止,再次扫描发现PUT-0:
10使用工具IISPutScanner增强版,上传包含asp一句话木马的shell.txt文件:
11写入成功
12使用move上传txt虽然报错还是上传成功
13利用IIS目录解析漏洞,在shell.asp后面加上【 ;.txt】,提交数据包成功绕过,发现网站生成了一个.asp;.txt文件:
14再次通过蚁剑连接,成功上线:
漏洞修复方案
1.在Web 服务扩展中关闭 WebDAV;
2.禁用访客写入权限。