渗透测试步骤

要测试服务器如何处理不同的HTTP方法,需要使用某种工具,如Burp Repeater,渗透测试员可以使用该工具发送任意请求,并完全控制消息头和消息主体。

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

(2)许多时候,一些方法被告知有效,但实际上它们并不能使用。有时,即使OPTIONS请求返回的响应中没有列出某个方法,但该方法仍然可用。因此,应手动测试每一个方法,确认其是否可用。

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

(a)尝试使用PUT方法上传一个良性文件,如文本文件。

(b)如果上传成功,尝试使用PUT上传一个后门脚本。

(c)如果运行脚本所需的扩展名受到阻止,尝试以.txt扩展名上传该文件,并使用MOVE方法将其移动到采用新扩展名的文件中。

(d)如果以上方法均无效,尝试上传一个JAR文件,或一个浏览器会将其内容显示为HTML的文件。

(e)使用davtest.pl之类的工具遍历所有目录。

18.1.5 Web服务器作为代理服务器

Web服务器有时被配置为转发或反向HTTP代理服务器(请参阅第3章了解相关内容)。如果一台服务器被配置为转发代理服务器,那么根据它的配置,可以利用该服务器执行以下各种攻击。

img002 攻击者可以使用该服务器攻击因特网上的第三方系统,对攻击目标而言,恶意流量似乎是来自易受攻击的代理服务器。

img002 攻击者可以使用代理服务器连接组织内部网络中的任意主机,攻击从因特网无法直接访问的目标。

img002 攻击者可以使用代理服务器反向连接代理服务器主机上运行的其他服务,突破防火墙限制,并利用信任关系避开身份验证。

可以使用两种主要的技巧让转发代理服务器进行正向连接(onward connection)。第一种方法是,发送一个包含完整URL的HTTP请求,该URL中包括一个主机名称与一个端口号(可选)。例如:

img526a

如果配置服务器将请求转发到指定的主机,那么它将返回那台主机的内容。但是,一定记得核实返回的内容不是来自最初的服务器。大多数Web服务器接受包含完整URL的请求;许多服务器则完全忽略在URL中指定的主机,从它们自己的Web根目录中返回被请求的资源。

第二种利用代理服务器的方法是使用CONNECT方法指定到目标主机与端口号。例如:

img526b

如果服务器以这种方式做出响应,就表示它正在代理该连接。通常,第二种技巧的功能更强大,因为现在代理服务器将转发传送到指定主机以及由该主机送出的所有流量,允许穿透连接中的其他协议,攻击非HTTP服务。然而,大多数代理服务器对通过CONNECT方法可到达的端口实施严格的限制,通常只允许连接端口443。

利用这种攻击的技巧已经在10.4.1节详细介绍过了。