[译]w3af指南(三)

原文地址:http://resources.infosecinstitute.com/w3af-tutorial-3/

本文将继续介绍前文剩下的插件。本文继续使用前文使用的Web Security Dojo虚拟机,下载地址: http://sourceforge.net/projects/websecuritydojo/files/

1)Brute force - Brute force 插件可以用于暴力破解登录表单和http-auth login。当discovery插件发现基于表单的输入或http-auth输入时,如果配置了适当的暴力破解插件,它会自动创建暴力破解。然而,暴力破解可以作为一个单独的模块运行用以攻击某一个含有login表单的url。配置暴力破解插件的参数很重要。由于暴力破解很花时间,所以自己定夺。

建议使用自定义的username和passwd字典。不管怎样,w3af有一套自己包含的默认username和passwd字典。同时注意查看其他选项。useProfiling使用通过passwordProfiling插件生成的密码作为字典。passwordProfiling插件是grep插件中的一个,用于通过检查相应和计算最有可能的单词而生成一系列可能的密码。profilingNumber指明用于暴力破解的来自passwordProfiling生成的密码个数。useLeetPasswd使用leet密码来进行破解。一个leet密码的例子是l33t(对应leet)。另一个可配的参数是useMails。这个参数是使用w3af(或许是grep插件)发现的邮箱作为login表单user域。一个username的例子是[email protected],w3af将会尝试使用example作为username。这是另一个w3af内部交互的例子。
本例中我们将使用暴力破解插件来破解如下url。

设定login表单的url,使用formAuthBrute插件,根据你的需要配置参数,开始攻击。

从输出可以看到w3af发现了username和password为admin/1234

然而,通常的暴力破解不是这样的。w3af以及许多其他的工具可能会有误报。不同的工具使用不同的方法来确认一次破解是否成功。一些工具通过查抄特定的字符串诸如“successful”或者“logged in”等来决定破解是否成功。然而一些工具根据相应码来确定。这些通常都会导致误报,因为有些web程序无论登录是否成功都会返回HTTP Status Code 200.一些web程序使用200作为一个标准所以会产生误报。web程序的应答中的细微差异就可以决定他们是登录成功。例如把DVWA配置为Security Level “High”的话,登录成功与否的区别就是返回的字符串的长度不一样(BurpSuite)。

即使返回登录成功与否返回的http stataus code一样。所以不要在乎工具说的登录成功。相反我们应该调查这两种情景,查找他们的去别。
2)Grep-grep插件用来查找请求/应答中的有价值的信息,例如email账户,可以上传文件的表单,哈希,信用卡号,email地址等。可以通过设置适当的插件类来获取感兴趣的信息。由于grep插件只是分析请求/应答,所以需要discover插件配合它工作。否则grep插件毫无用处。grep插件获得的信息可以被其他插件使用,例如通过passwordProfiling获得的信息可以被bruteForce使用。
做一个grep插件的简单实验。从测试环境中,我们设定给w3af设定一个含有信用卡号的url,如下图所示。从grep插件列表,选择creditCards,开始运行。

从下图可以看到,我们找到了信用卡号

下面介绍一些重要的插件
a)Code Disclosure-这个插件检查代码泄漏漏洞。它通过检查表达式以及<%.*%> 这些可能泄漏服务器端诸如php之类的代码。下图显示了一个代码泄漏的漏洞。

然而,确认结果是否是误报也很重要。分析导致某一个漏洞的请求和应答很重要。如下图所以,有一个代码泄漏漏洞。

b)DOM Based XSS-DOM based XSS插件用于帮助寻找XSS漏洞。当user输入作为DOM里面的输出数据是这种情况就会发生。如下图所示,通过查找参数名,然后输出那个参数名。然而,我们可以从代码里面看到,那个参数并不合法。所以这是一个DOM Based XSS。

当我们选择这个插件并且开始测试的时候,我们可以看到w3af发现了DOM based XSS漏洞

再次强调,检查请求/应答来确定是否是误报很重要。

c)findComments- findComments插件用于检查应答中的有价值的注释。例如字符串中含有“password”字样的将会标记为有价值的信息,并且输出。
d)getMails-这是一个非常重要的grep插件。他在每一个页面里面搜索Email地址。这些信息可以被暴力破解插件使用。在渗透测试中收集邮件是信息收集中一个重要的组成部分。
e)fileUpload-这个插件查找每一个页面是否有上传文件的功能,然后可以用于文件上传漏洞。下图显示在一个有文件上传功能的页面运行fileUpload插件的结果。

3)Evasion- Evasion插件被用于修改请求用来绕过WAF或IPS等。它通过特定的方法修改请求来使IPS无法检测它的数字签名。下面是Andres Riancho(w3af的作者)的话:
使用evasion插件时,我推荐一次仅适用一个插件。并且只有当你十分了解你在做什么的时候再使用,因为他们可能破坏扫描,使扫描不稳定
我们来看看一些Evasion插件如何工作。
a)backSpaceBetweenDots-这个插件用于绕过对'..'的过滤。它通过在一个"."后面加一个字符然后再在后面加一个退格字符(%8)来实现的。这样退格字符可以删除"."后面的字符,所以剩下的只有".."。这个插件可以用于本地文件包含或远程文件包含漏洞。
b)ShiftOutShiftInBetweenDots – 这个插件类似backSpaceBetweenDots,并且用于绕过“..”过滤。它通过shift-in (%0E)和shift-out (%0F)删除不必要的字符。
c)rndHexEncode – 这个插件通过在url中使用随机十六进制编码来增加WAF/IPS识别的难度
4)Mangle - 这个插件用于根据正则表达式来修改请求或应答。有三个主要参数,Expressions, fixContentLen 和priority。在表达式选项中,我们声明请求/应答修改的规则。下图显示了两个使用Stream editing表达式的例子。

下图所示,把w3af配置为把应答中的google替换成Poogle。

5)Output-output插件用于帮我们生成各种输出格式的报告。w3af支持控制台,邮件,html,xml,text等格式的报告。可以设置文件名,verbosity等。在下图我在htmlFile插件中设置verbose为True因为我想得到一份详细的测试报告。

6)Auth-auth插件是w3af里面非常重要的一个插件。所以及时更新版本很重要,因为每一次release可能有bug修复和性能增加。w3af中的auth插件的主要用途是当爬虫一个web程序时,处理一个login表单。作为一个优秀的扫描器,应该可以自动提交表单信息从而进一步扫描信息。通过使用这个插件,我们可以使用预先知道的username/password,这样当w3af遇到表单时会自动填充表单,我们需要设置插件的所有参数才能是它正常工作。
下图是使用w3af成功登录dvwa

猜你喜欢

转载自j4s0nh4ck.iteye.com/blog/2119791
AF