[翻译]web代理链

原文地址: http://resources.infosecinstitute.com/chaining-web-proxies-to-overcome-limitations/
现在有很多web代理,它们可以无缝隙的工作。但是由于某些功能不支持,或含有某个bug,所以存在局限性。因此我们可以使用两个代理来绕过这些局限。每个代理都有一个叫"代理链"的特性,我们可以利用这个特点来克服局限性。
问题
当我们做评估的时候,ZAP的一个问题是面临"401 Unauthorized"响应。这时的web程序需要NTLM认证,客户端需要发送域名,username和password到服务器。NTLM是Windows认证协议。 http://msdn.microsoft.com/en-us/library/windows/desktop/aa378749%28v=vs.85%29.aspx
尽管我们提供了Windows口令,但是服务器仍然响应'401 Unauthorized',所以我们无法进行fuzz参数。

此时,除了使用其他的代理外,我们没有其他的选择了。我们使用WebScarab来提供Windows认证,方法是Tools-> Credentials

然后我们试图捕获请求应答,成功。接下来我们想fuzz一个url的参数。我们需要右击在summary标签中任何一个请求,选择Use as a fuzz template来把它发送到Fuzz标签。问题来了即使webscarab可以进行Windows认证,但是在Fuzz标签中,不显示参数。

现在的问题是:
当进行fuzz的时候,即使我们提供了Windows口令,ZAP仍然发送未认证的错误
当fuzz的时候,webscarab不显示要fuzzing的参数
代理链
我们将使用现有的工具来克服上面的限制,代理链工作如下
1. 客户端(浏览器)会把请求转发到代理1(ZAP)
2. 代理1将会把请求转发到代理2
3. 代理2会把请求发送到服务器
因此这需要:
1. 浏览器将会设置连接到代理1(ZAP),比如8880
2. 在代理1(ZAP)中我们将会使用ZAP的proxy chaining选项,来把请求转发到代理2(Webscarab)
3. 把代理1(ZAP)转发的端口设为代理2(Webscarab)运行的端口
4. 代理2会自动把请求转到服务器
如下图所示

设置ZAP中代理链选项:
在ZAP中,Tools-> Options-> Connection-> Use an outgoing proxy server然后指定地址127.0.0.1和端口8008

8008是下一个代理(Webscarab)运行的端口.我们不需要在Webscarab中设置它,因为这个端口是Webscarab的默认端口。
试着在浏览器中访问url。浏览器将会把请求转发到ZAP的8880端口,ZAP将会把它转到Webscarab,Webscarab运行在8008端口。代理链现在完成了。
现在我们看看当我们试图fuzz时的响应。成功,我们可以成功fuzz参数而不用得到"401 Unauthorized"响应。我们现在得到200响应。



猜你喜欢

转载自j4s0nh4ck.iteye.com/blog/2151042