作者:许云风
IIS的安全设置和一个网站的安全是密不可分的,不仅是WEB方面的安全,我们也要做到WEB服务器的安全
,所以我们要学会IIS的安全设置。
在IIS中有这几个选项是相当重要得了:
脚本资源访问: 对网站的脚本可以读取原文件。
读取 读取目录里面的静态资源。
写入 用户可以建立以及删除资源
目录浏览 用户可以浏览目录内容。
应用程序设置的执行许可中有三个选项:
无 只能访问静态页面
纯脚本 只允许允许脚本 如ASP脚本
脚本和可执行程序 可以访问和执行各种文件类型
如果疏忽或者一时的失误,设置错了几项,会给你的网站带来灭顶之灾。
下面我们就来想讲一下IIS写权限漏洞
其实IIS写权限漏洞就是我们对IIS服务器没有设置好所造成的,就象上面所列的几个选项,我门必须要设
置,现在我们来说怎么判断一个服务器的读取,写入以及目录浏览是开放还是紧用呢!
判断执行权限:
如何确定某个目录是否开了执行权限呢?很简单,向服务器发送一个下面得请求:
http://127.0.0.1/1/no-such-file.dll
(因为我是本地测试,所以填的是本地IP)
后面的哪个no-such-file.dll是谁便起的名字,查看服务器返回的信息如果是HTTP 500 - 内部服务器错
误 (Internal Server error)
那么就说明这个目录的执行权限是开着的。 对于服务器,能不开执行权限的就不要开。特别是虚拟目录
的执行权限。
如果服务器返回的是一个 404 错误:
HTTP 404 - 未找到文件
那么就说明这个目录的执行权限没有开。
判断写权限:
这回我门通过telnet 到服务器的web端口(80)并发送一个如下请求:
PUT /1/pangpig.txt HTTP/1.1
Host: 127.0.0.1
Content-Length: 10
<enter><enter>
这时服务器会返回一个100( 继续)的信息:
HTTP/1.1 100 Continue
Server: Microsoft-IIS/5.0
Date: Thu, 28 Feb 2002 15:56:00 GMT
接着,我们输入10个字母:
AAAAAAAAAA
送出这个请求后,看服务器的返回信息,如果是一个 201 Created响应:
HTTP/1.1 201 Created
Server: Microsoft-IIS/5.0
Date: Thu, 28 Feb 2002 15:56:08 GMT
Location: http://127.0.0.1%20/1/pangpig.txt
Content-Length: 0
Allow: OPTIONS, TRACE, GET, HEAD, Delete, PUT, COPY, MOVE, PROPFIND,
PROPPATCH, SEARCH, LOCK, UNLOCK
这就说明写权限开着的,反之,如果返回的是一个 403 错误,那么写权限就是
没有开起来,如果需要你认证,并且返回一个 401(权限禁止) 的响应的话,说明是开了写权限,但是匿
名用户不允许。 如果一个目录同时开了”写”和“脚本和可执行程序”的话,那么web用户就可以上传一
个程序并且执行它。
判断纯脚本执行权限:
判断一个目录是否可以执行纯脚本文件也很简单,发送一个如下一个请求:
http://127.0.0.1/1/no-such-file.asp
返回404文件不存在说明有执行权限,返回403则是没有开。
判断浏览目录权限:
这个也是一个IIS漏洞,叫做目录遍历,我们可以浏览网站任意目录,也可以找到数据库目录下载数据库
。
判断着个需要一些小技巧了,现在网站的首页一般都是index.html或者index.asp,如果这些文件存在,
在浏览器里面输入http://127.0.0.1网页会自动显示,我门看不到网站的目录,但是我们可以利用一些东
西饶过index,IIS里面有个PROFIND的请求方法,我门可以通过返回的信息看到一些文件名等信息,我们
可以利用他来饶过index,
telnet到IIS-server的web端口,发送如下请求:
PROPFIND // HTTP/1.1
Host: 127.0.0.1
Content-Length: 0
这时,服务器会送回一个207 Multi Status的响应,如果目录是允许浏览的,那么同时会列出目录里面的
资源以及他们的属性。如果目录浏览不允许,返回的信息就会少的多。这个漏洞是个很低微的漏洞,只是
想提醒一下大家,还有介绍一下这个漏洞的重要性和严重性,其实99.6的网站上传系统就是一个这样的漏
洞,我们可以浏览任意一个人的作品和文件内容!继续。。。
判断读权限:
http://127.0.0.1/1/no-such-file.txt
如果返回一个 404 文件不存在的响应,就说明读权限是开着的,反正,返回403错误则说明都权限没有开
。