如第3章所述,除标准的GET与POST方法外,HTTP请求还使其他各种方法。许多这类方法主要于完成不常见与特殊的任务。如果低权限可以访问这些方法,他们就能够以此向应程序实施有效攻击。以下是一些值得注意的方法:

PUT,向指定的目录上传附加文件;

DELETE,删除指定的资源;

COPY,将指定的资源复制到Destination消息头指定的位置;

MOVE,将指定的资源移动到Destination消息头指定的位置;

SEARCH,在一个目录路径中搜索资源。

PROPFIND,获取与指定资源有关的信息,如作者、大小与内容类型。

TRACE,在响应中返回服务器收到的原始请求。可以使这种方法避开阻止跨站点脚本的防御(请参阅第12章了解相关内容)。

其中几个方法属于HTTP协议的WebDAV(Web-based Distributed Authoring and Versioning,Web分布式创作与版本控制)扩展,通过它们可对Web服务器内容进行集中编辑与管理。

可以使OPTIONS方法列出某个特定目录允许的HTTP方法。例如:

 

这个响应表示,上面列出的几个强大的方法可以在目录中使。然而,实际上,使这些方法需要通过身份验证,或取决于其他限制。

其中,PUT方法特别危险。如果能够上传Web根目录中的任意文件,就可以在服务器上创建新脚本,从而完全控制应程序,甚至是Web服务器本身。如果PUT方法存在且被激活,就可以通过以下方式证实这一点:

 

注解 旧版的IIS 5包含一个漏洞,通过它,使WebDAV SEARCH方法可获得Web根目录及所有子目录的列表。欲知详情,请访问 www.securityfocus.com/bid/1756

渗透测试步骤

使OPTIONS方法列出服务器使的HTTP方法。注意,不同目录中激活的方法可能各不相同。

许多时候,被告知一些方法有效,但实际上它们并不能使。有时,即使OPTIONS请求返回的响应中没有列出某个方法,但该方法仍然可。手动测试每一个方法,确认其是否可。Paros之类的扫描器可在扫描过程中对每个发现的目录测试PUT方法

如果发现一些WebDAV方法被激活,使激活WebDAV的客户进行深入调查,如 Microsoft FrontPage或Internet Explorer中的Open asWebFolder(以Web文件夹打开)选项。