Web安全测试之自动化扫描

1. 为什么要使用自动化漏洞扫描工具?

几乎每个安全测试项目都需要遵循严格的日程
在很短的时间内执行单个应用上的多个测试
尽可能在排期内识别最多漏洞
渗透越来越难, 成本越来越高
以下我们用两款自动化扫描工具Nikto 和Wapiti 来举例说明如果使用。

2. 使用Nikto 扫描

每个测试者的工具库中必定含有的工具就是Nikto,它可能是世界上使用最广泛的自由扫描器。就像它的网站(https://cirt.net/Nikto2)上所说的那样:
Nikto 是开源(GPL)的 Web 服务器扫描器,它对 Web 服务器执行综合扫描。
包含超过6700 个潜在的危险文件或程序,检查超过 1250 个服务器的过期版本,以及超过 270 个服务器上的特定问题。
它也会检查服务器配置项,例如多个首页文件的存在,HTTP 服务器选项,也会尝试识别安装的 Web 服务器和软件。
扫描的项目和插件也会经常更新,并可以自动更新。

这个秘籍中,我们会使用Nikto 来搜索 Web 服务器中的漏洞并分析结果、
操作步骤

Nikto 是个命令行工具,所以我们打开终端。
我们会扫描Peruggia 漏洞应用,并导出结果到 HTML 报告:
nikto -h http://192.168.29.10/dvwa/ -o /var/www/html/result.html
Web安全测试之自动化扫描_第1张图片
-host 选项告诉 Nikto 扫描哪个主机,-o选项告诉在哪里存放输出,文件的扩展名决定了接受的格式。

这里,我们使用.html来获得HTML 格式的结果报告。输出也可以以 CSV、TXT 或 XML 格式。

它需要一些时间来完成扫描。完成之后,我么可以打开result.html文件:
Web安全测试之自动化扫描_第2张图片
工作原理

这个秘籍中,我们使用Nikto 来扫描应用并生成 HTML 报告。这个工具拥有一些更多的选项,用于执行特定扫描或生成特定输出格式。一些最实用的选项是:
+
· -H:这会显示Nikto 的帮助。
· -config :在扫描中用自定义的配置文件。
· -update:更新插件数据库。
· -Format :这定义了输出格式,可以为CSV、HTML、NBE(Nessus)、SQL、TXT 或 XML。例如 CSV、XML 和 NBE 的格式在我们打算将其用于其它工具的输入时非常实用。
· -evasion :这使用一些编码技巧来帮助避免Web 应用防火墙和入侵检测系统的检测。
· -list-plugins:查看可用的测试插件。
· -Plugins :选择在扫描中使用哪个插件(默认为全部)。
· -port :如果服务器使用非标准端口(80,443),我们可能会以这个选项来使用 Nikto。

配合nmap 使用, Nikto 扫描 多主机
Web安全测试之自动化扫描_第3张图片

3. 使用 Wapiti 发现漏洞

Wapiti 是另一个基于终端的 Web 漏洞扫描器,它发送 GET 和 POST 请求给目标站点,来寻找下列漏洞():
l 文件泄露
l 数据库注入
l XSS
l 命令执行检测
l CRLF 注入
l XXE(XML 外部实体)注入
l 已知潜在危险文件的使用
l 可被绕过的.htaccess弱配置
l 提供敏感信息的备份文件(源码泄露)
这个秘籍中,我们使用Wapiti 来发现我们的测试应用上的漏洞,并生成扫描报告。

操作步骤
我们可以从终端窗口打开Wapiti,例如:
wapiti http://192.168.56.102/peruggia/ -o wapiti_result -f html -m “-blindsql”

我们会扫描vulnerable_vm 中的 Peruggia 应用,将输出保存为 HTML 格式,保存到wapiti_result目录中,并跳过SQL 盲注检测。
如果我们打开了报告目录,和index.html文件,我们会看到一些这样的东西:
Web安全测试之自动化扫描_第4张图片
这里,我们可以看到Wapiti 发现了 12 个 XSS 和 20 个文件处理漏洞。

  1. 现在点击Cross Site Scripting(跨站脚本)。
  2. 选项某个漏洞并点击HTTP Request。我们选择第二个,选中并复制请求的URL 部分。
    Web安全测试之自动化扫描_第5张图片
  3. 现在,我们将URL 粘贴到浏览器中,像这样:http://192.168.56.102/ peruggia/index.php?action=comment&pic_id=%3E%3C%2Fform%3E%3Cscr ipt%3Ealert%28%27wxs0lvms89%27%29%3C%2Fscript%3E。
    Web安全测试之自动化扫描_第6张图片
    我们确实发现了XSS 漏洞。

4、工作原理

这个秘籍中,我们跳过了SQL 盲注检测(-m “-blindsql”),因为这个应用存在这个漏洞。

它会触发超时错误,使Wapiti 在扫描完成之前关闭,因为 Wapiti 通过输入 sleep()命令来测试多次,直到服务器超过了超时门槛。

同时,我们为输出选择了HTML 格式(-o html),wapiti_result作为报告的目标目录,我们也可以选择其他格式,例如,JSON、OpenVAS、TXT 或 XML。

Wapiti 拥有一些其它的有趣的选项,它们是:
· -x :从扫描中排除特定的URL,对于登出和密码修改 URL 很实用。
· -i :从XML 文件中恢复之前保存的扫描。文件名称是可选的,因为如果忽略的话 Wapiti 从scan文件夹中读取文件。
· -a :为HTTP 登录使用特定的证书。
· --auth-method :为-a选项定义授权方式,可以为basic,digest,kerberos 或 ntlm。
· -s :定义要扫描的URL。
· -p :使用HTTP 或 HTTPS 代理。

你可能感兴趣的:(行业知识,安全,软件测试)