Identify application entry points (OWASP-IG-003) 识别应用程序的注入点
什么是注入点?
简而言之,就是可以被渗透进入的点。
对要攻击的应用程序有了初步的认识后,攻击者会试图定位由人为构造的输入而产生的错误信息。
通过一个拦截代理服务器( intercepting proxy )或者类似的工具可以方便地识别页面跳转和其他一些可预测的隐藏错误,而任何一个返回错误的参数都有可能存在注入点。而在单独测试每个参数过程中,必须保证其他参数都是有效的,因为需要避免除注入以外任何其他可能的原因所导致的错误影响了判断结果。
在测试进行前枚举应用程序和它的攻击面非常关键,因为它允许测试者定位大概的脆弱点。本节的目的是,在枚举和映射完成之后,能够确定应用程序的大概脆弱点。
测试开始之前,获得对应用系统的较好认识。然后,遍历所有的应用,尤其注意所有的 HTTP 请求,同样包括提交应用的各个参数。另外,注意传递请求给应用系统的时间
请注意,要看到 POST 请求发送的参数,您需要使用诸如拦截代理服务器(例如, OWASP 的的 WebScarab )或浏览器插件等工具。在 POST 请求中,注意任何以隐藏的形式被传递到应用系统的信息,因为这些信息通常包含敏感信息,如状态信息等 ,开发者不打算给您查看或修改的一些信息。用拦截代理服务器,能够跟踪应用的每一个请求和响应。
关于拦截代理服务器
这里有的下:http://www.owasp.org/index.php/Category:OWASP_WebGoat_Project
安装很简单,使用很方便。
安装方法:
Linux: java -jar ./webscarab -selfcontained-[numbers].jar
Windows: 双击 the installer jar file
这一部分要采集的信息整理如下:
REQUEST请求部分:
1,识别 GETs 和 POSTs 在哪里被使用
2,识别在 POST 请求中使用的所有参数
3,特别注意 POST 请求中隐藏的参数。隐藏的参数直接看不到,除非你看的是代理或者 HTML 源代码
4,识别在 GET 请求中的所有参数,特别是查询字符串
5,识别在查询字符串中的所有参数
6,特别注意当一个字符串中或 POST 请求中有多个参数时,可能其中某些参数就可以执行攻击。您需要确定所有参数(即使被编码或加密),并确定哪些是由应用程序处理。本指南后面的章节将确定如何测试这些参数
7,同时留意任何额外的或自定义类型的 header ,(比如 debug=False )
RESPONSE响应部分:
1,识别新 cookie 在什么位置被设置、被修改、被添加的
2,识别任何转向的链接, 400 ,尤其是 403 ,还有常见的 500 内部服务器错误。
还有一些 特别的 header 要注意,比如说 "Server: BIG-IP" ,就表明网站使用了负载均衡。如果一个网站使用了负载均衡,但是其中一台服务器未被正确配置,那么可能可以制造大量的请求访问脆弱服务器,这取决于负载均衡的类型。
一些个工具:
Intercepting Proxy:拦截代理
- OWASP: Webscarab
- Dafydd Stuttard: Burp proxy - http://portswigger.net/proxy/
- MileSCAN: Paros Proxy - http://www.parosproxy.org/download.shtml
paros的使用可以参考我的一篇文章http://blog.csdn.net/tingirl/archive/2009/12/29/5096093.aspx
Browser Plug-in:浏览器插件
- "TamperIE" for Internet Explorer - http://www.bayden.com/TamperIE/
Adam Judson: "Tamper Data" for Firefox - https://addons.mozilla.org/en-US/firefox/addon/966