技术频道导航
HTML/CSS
.NET技术
IIS技术
PHP技术
Js/JQuery
Photoshop
服务器技术
操作系统
网站运营

分类目录

热门标签

赞助商

搜索

IIS设置CGI扩展和ISAPI扩展为允许的危险

作者:admin    时间:2017-4-5 9:23:14    浏览:

IIS web服务扩展设置中包含有这两个项目:所有未知 CGI 扩展和所有未知 ISAPI 扩展。我们该如何设置这两个扩展呢?允许还是禁止?我相信很多网站管理员都不知如何处理,也不去深究它,因为认为自己用不上,而即使设置了“允许”或“禁止”,也是不知其意。那么正确的做法是什么呢?

CGI 和 ISAPI

在做出选择“允许”或“禁止”之前,我想大家有必要先去了解一下这两个扩展的意义。

CGI 扩展:CGI 意思为 Common Gateway Interface, 一种基于浏览器的输入、在Web服务器上运行的程序方法,CGI脚本 使你的浏览器与用户能交互,为了在数据库中寻找一个名词, 提供你写入的评论,或者从一个表单中选择几个条目并且能得到一个明确的回答. 如果你曾经遇到过在web上填表或进行搜索, 你就是用的CGI脚本. 你那时也许没有意识到,因为大部分工作是在服务器上运行的,你看到的只是结果。作为一个网页设计者, 你创建客户端的 CGI脚本, 服务器端的程序用来处理用户输入, 结果返回给用户。

ISAPI 扩展:互联网服务应用程序编程接口(Internet Server Application Programming Interface,简称ISAPI)是一组API函数。它是一种用来开发扩展IIS程序的强有力的方法。 “ISAPI扩展(ISAPI Extension)”是一种可以添加到IIS中以增强Web服务器功能的程序,其载体为DLL文件。通常直接负责响应HTTP请求。

根据HTTP请求要访问的资源扩展名(通过URL获取),IIS会选取特定的ISAPI扩展来处理这一请求,这一过程被称为“程序映射”。 而用于响应HTTP请求的被称为“HTTP Handler(HTTP处理程序)”。如果不是孤陋寡闻,在浏览某些网站时,你一定遇到过URL地址栏的结尾是一个脚本目录下的DLL文件,就像下面的这个假设的URL地址:

 

这些DLL文件可以干什么呢?这些DLL是使用ISAPI(Internet Server API)建立的。ISAPI是一种比CGI更有优势的技术。虽然使用CGI脚本开发出的新网站功能确实令人惊讶,但是ISAPI DLL有CGI所不具备的新功能。

CGI扩展和ISAPI扩展与IIS Input 漏洞

IIS环境有一个公认的漏洞:IIS Input 漏洞。该漏洞利用的过程不复杂,可以直接PUT文件,上传shell,进而控制整台服务器。

但是 IIS Input 漏洞也不是任何情况下都可以被利用的,它取决于IIS的某些设置是否得当,而 CGI 扩展和 ISAPI 扩展的设置将直接影响到该漏洞能否被成功利用。

iis put漏洞的利用,首先CGI扩展和ISAPI扩展要设置为允许(默认是禁止),当然最重要的是WebDAV要开启。

CGI扩展和ISAPI扩展要设置为允许

CGI扩展和ISAPI扩展要设置为允许

但是,无论其他设置是怎样,只要当CGI扩展和ISAPI扩展要设置为允许后,利用OPTIONS获取权限就可以看到如下图所示的权限。

利用OPTIONS获取权限

利用OPTIONS获取权限

至于能不能传文件上去,就必须要开起WebDAV、写入、脚本资源访问,参考《IIS脚本资源访问要关闭 以免漏洞被利用》,《安全提示:IIS不要开启“WebDAV”扩展》。

扩展阅读

利用IIS写权限漏洞、IIS6.0文件名解析漏洞上传shell

1、写权限用两张图做说明:

图1:禁止写入

图1:禁止写入

图1禁止写入,HTTP header方法POST、PUT请求的响应,403 Forbidden。

图2:允许写入

图2:允许写入

图2允许写入,不允许脚本资源访问。PUT请求,如果PUT的对象是非脚本资源,响应201 Created。但是如果PUT的对象是脚本Shell,403 Forbidden。

脚本资源访问:用户可以对网站目录的脚本文件有操作的权限,前提是开启读取或者写入权限,开启读取权限就有读取脚本文件(源代码)的权限,开启写入权限就有写入脚本文件的权限。

读取:用户可以访问网站的文件,建立网站的时候默认开启读取权限。

写入:用户可以写入文件到网站目录,也就是我们所说的写权限漏洞。

如果开启写入权限不开启脚本资源访问权限,则只有上传普通文件的权限,没有修改为脚本文件后缀的权限。

目录浏览:用户可以查看网站目录的所有文件和目录。前提是开启读取权限。

2、写权限的利用

利用的过程不复杂,但也不是直接PUT方法,上传shell那么简单。

IIS PUT漏洞扫描

IIS PUT漏洞扫描

IIS PUT漏洞扫描

如果你能够PUT一个test.txt到目标服务器。

1)你打算PUT一个shell脚本,却没有成功。

PUT一个shell脚本

PUT一个shell脚本

原因是IIS支持的文件类型,都会被拒绝。你可以使用MOVE方法,将test.txt剪切到其他位置并重新命名。

2)如果MOVE还是不能成功,你可以试试利用IIS6.0的文件名解析漏洞。

MOVE不成功

MOVE不成功

总结 

IIS写权限漏洞 (HTTP PUT方法利用),该漏洞的产生原因来源于服务器配置不当造成,利用IIS PUT Scaner扫描有漏洞的iis,此漏洞主要是因为服务器开启了webdav的组件导致的可以扫描到当前的操作,具体操作其实是通过webdav的OPTION来查询是否支持PUT。因此,禁止webdav即可有效防止该漏洞被利用。

标签: IIS