web安全实践系列主要是对《黑客web应用安全机密与解决方案(第二版)》的内容做的实践研究和部分编程实现。所以如果您能完全理解那本书可以跳过本文章。 另外我需要更多的像我一样的人来参与这项工作。 废话还是少说的好,我们进入今天的正题。 正文 昨天由于太累了,没把剩下的内容写完,今天继续。主要内容是代理和防火墙的探测。 如果代理服务器对外就表现为一个Web服务器,外部网络就可以简单把它当作一个标准的Web服务器而不需要特定的配置。不同之处在于,这个服务器没有保存任何网页的真实数据,所有的静态网页或者CGI程序,都保存在内部的Web服务器上。因此对反向代理服务器的并不会使得网页信息遭到,这样就增强了Web服务器的安全性。我们的主要目的是检测目标服务器是否通过代理服务器来响应请求,以免我们丢失目标。 (1)Trace请求。当我们像web服务器发送一个Trace请求之后,服务器会回显接收到的请求。如果正常情况下,返回的请求应该就是我们发送的请求。但是如果我们的请求是先到达一个代理服务器然后真正的web服务器接收到的就应该是代理服务器的请求,也是就是返回的信息也应该是代理服务器的请求信息而不是我们最初发送的请求。说着有点迷糊,下面看一个实际的例子。不过由于一些服务器在处理trace请求存在跨站漏洞,很多网站是不支持trace请求的。 X-AspNet-Version: 2.0.50727Cache-Control: privateContent-Type: text/html; charset=utf-8Content-Length: 3432.....titlePath trace is forbidden./title (2)Connect标准测试. 一般情况下HTTP代理服务都会支持HTTP CONNECT的方法,利用他能建立一个TCP连接来绕过一般的应用层功能。一般,HTTP CONNECT方法都用来通过HTTP代理来建立HTTPS连接。 利用Connect测试的方法就是向一个已知站点发送Connect,观察响应信息来确定是否来自代理。 (1)连续的具有入侵特征的连接。 如果有防火墙它会你的连接。对于服务器的入侵扫描一般都会遭到防火墙的。其实我们现在可以肯定的是几乎所有的正规网站都会有防火墙的。我们面临的难题应该是对方使用的是什么类型的防火墙而不是用没用防火墙的问题。 (2)防火墙类型的诊断。 其实这和http指纹研究一样也应该是个统计学的问题。判断的思想应该是向服务器发送各种类型的非法请求,并判断出是否是防火墙作出的回应,回应的特征是什么。总结过程该是各个有机会接触防火墙配置的人。这项工作的研究目前还不是十分完善。我的条件也不允许我做这这个实验,我还是希望得到更多的人关于这方面的反馈。 观察的方面: 响应信息 TerosWeb 应用防火墙技术会对trace请求作出500响应,提示:Invalid method code。F5TrafficShield会返回400错误,并提示:The Server could not anderstand your request。Your error ID is: Netcontinuum对任何非法请求都返回404错误。 SecureIIs会返回406错误。 特殊的cookie Teros对每次响应都要使用同一个名st8id。 TrafficShield会使用cookie名为ASINFO。 特殊的错误情况 URLScan如果接收一个Path长度大于260个字符的请求,就返回404错误,而且如果在请求中添加如ranslate,if,Lock-Token,Transfer-Encoding等头部,就会请求。 SecureIIs 默认头部最大长度为1024个字符。 那么就说明这个目录的写权限是开着的,反之,如果返回的是一个403错误,那么写权限就是没有开起来,如果需要你认证,并且返回一个 401(权限) 的响应的话,说明是开了写权限,但是匿名用户不允许。如果一个目录同时开了写和脚本和可执行程序的话,那么web用户就可以上传一个程序并且执行它。今天做了一天的实验,发现这部分知识总体上技术都不成熟,有待发展。其实这是矛盾的,技术成熟了对现有网站的也就大了。但从技术的角度讲我希望得到相关专家的帮助。 明天的内容按计划应该是简单的http编程实践。 |