如何查找Web应用程序漏洞:比较八种流行的扫描仪

Web应用程序扫描程序是当今相当流行的软件类别。 有付费扫描仪,有免费扫描仪。 它们每个都有自己的一组可能检测到的参数和漏洞。 有些只限于OWASP十大(开放Web应用程序安全性项目)中发布的那些,有些则在其黑盒测试中走得更远。



在这篇文章中,我们收集了八种流行的扫描仪,对其进行了更详细的检查并进行了尝试。 选择了两个平台(.NET和php)上的独立点作为培训目标: premium.pgabank.comphp.testsparker.com

OWASP ZAP


顾名思义,我们在引言中提到的OWASP组织负责OWASP ZAP的发布。 这是用于渗透测试和查找Web应用程序中漏洞的免费工具。

OWASP ZAP的主要功能:

  • 中间人代理
  • 传统蜘蛛和AJAX蜘蛛
  • 自动扫描仪
  • 被动式扫描仪
  • 强制浏览
  • 模糊器

附加功能
  • 动态SSL证书
  • 智能卡和客户端数字证书支持
  • Web套接字支持
  • 支持多种脚本语言
  • 即插即用支持
  • 身份验证和会话支持
  • 强大的基于REST的API
  • 自动更新选项
  • 集成的不断增长的附加市场

程序界面已翻译成俄语,对某些用户来说很方便。 OWASP ZAP工作区由几个窗口组成。 底部的选项卡包含当前任务及其执行过程,左侧是站点树,您还可以在请求和响应窗口的右侧显示。



在市场上,您可以稍微扩展扫描仪的功能。



程序的每个组件都有许多可自定义的参数。 例如,我们可以配置传入矢量进行主动扫描,生成动态SSL证书,添加HTTP会话标识符等。



让我们继续进行测试。 扫描站点php.testsparker.com时 ,发现了盲SQL注入。 关键漏洞就是在这里结束的。

OWASP ZAP的完整结果在php.testsparker.com
H:高级SQL注入-和基于布尔的盲注-WHERE或HAVING子句
M:未设置X-Frame-Options标头
L:缺少X-Content-Type-Options标头
L:未启用Web浏览器XSS保护

premium.bgabank.com上,我们看到了更有趣的结果:发现了服务器端包含(SSI)和反映跨站点脚本功能。

完整的OWASP ZAP结果在premium.bgabank.com
H:服务器端包含
H:反映的跨站点脚本
M:未设置X-Frame-Options标头
M:应用程序错误披露
M:目录浏览
M:安全页面包含混合内容(包括脚本)
L:缺少X-Content-Type-Options标头
L:未启用Web浏览器XSS保护
L:跨域JavaScript源文件包含
L:不完整或没有缓存控制和Pragma HTTP标头设置
L:Cookie没有HttpOnly标志
L:不带安全标志的Cookie
L:缺少内容类型标题
L:私有IP披露
I:图像公开位置或隐私数据

所有扫描结果都可以导出到报告中(支持* .pdf,* .html,* .xml,* .json)。 该报告详细描述了漏洞,发现的媒介以及“关闭”漏洞的方法。



总的来说,我们喜欢使用OWASP ZAP。 Pentest Web应用程序具有所有必要的工具,简单直观的界面,快速的一键式扫描。 同时,灵活,深入的设置可以进行更详细的扫描,可以作为进一步手动搜索漏洞的起点。 下面我们还将讨论Burp Suite Pro扫描仪,它与OWASP ZAP有很多共同点。 根据发现的漏洞的数量和质量,我们检查的第一台扫描仪显示出很好的结果。 建议用于工作中。

W9scan


W9scan是一个免费的控制台漏洞扫描程序,适用于具有1200多个内置插件的网站,可以检测网页,端口的指纹,分析网站的结构,查找各种流行的漏洞,扫描SQL Injection,XSS等。

W9scan功能的更完整列表
-指纹检测

  • 可以识别常见的网站CMS指纹(超过300个)
  • 可识别的通用网站框架
  • 识别通用端口服务指纹
  • 检测网站脚本语言
  • 检测操作系统类型
  • 检测网站防火墙(WAF)

-攻击参数

  • SQL注入(基于搜寻器)
  • XSS注入(基于爬行动物)
  • 大量的Fuzz参数扫描
  • CVE漏洞
  • struts漏洞收集(包括自动检测)
  • Shellshock CGI测试
  • 心跳出血心脏
  • IIS解析漏洞
  • IIS Put漏洞

-暴力破解

  • 备份文件和目录(基于搜寻器)
  • 备份文件和目录(基于域名)
  • 通用目录
  • 普通文件
  • 子域暴力分析
  • fckeditorPath枚举
  • 通用的mdbdatabase枚举
  • git svn泄漏识别
  • TOMCAT web.xml让路

-收集消息

  • 电子邮件(基于爬行动物)
  • 专用IP(基于爬行动物)
  • 电子邮件(基于爬行动物)
  • 检测警告,致命错误,...
  • PHP版本识别
  • IIS信息公开
  • IP地址归属
  • 集成的Wappalyzer识别脚本
  • robots.txt分析
  • 在标头中检测不安全的标头
  • 检测Cookie中的不安全因素


W9scan会自动生成HTML格式的扫描结果报告。 要开始扫描,您只需要指定站点URL和将使用的插件。 您可以通过添加“全部”一次选择所有内容。



扫描php.testsparker.com时, W9scan发现svn和可能的有效负载下载路径。 从不太重要的服务中,我确定了所使用服务的版本,进行XXE,XXS攻击的可能载体,找到了服务器配置文件并搜索了子域。

premium.bgabank.com上没有发现任何关键事件 。 但是扫描程序确定了可能的攻击媒介,定义的服务版本,目录和子域。

根据扫描结果,W9scan自动生成HTML报告文件。



W9scan扫描程序适合于通过单个命令快速启动,我们建议将其用作确定服务版本以及潜在攻击媒介的辅助工具

Wapiti


另一个好的控制台扫描仪 。 与W9scan一样,它可以在一个命令中启动,同时具有更多不同的扫描设置。



Wapiti搜索以下漏洞:

  • 文件公开(本地和远程include / require,fopen,readfile ...)
  • 数据库注入(PHP / JSP / ASP SQL注入和XPath注入)
  • XSS(跨站点脚本)注入(反映的和永久的)
  • 命令执行检测(eval(),system(),passtru()...)
  • CRLF注入(HTTP响应拆分,会话固定...)
  • XXE(XML外部实体)注入
  • SSRF(服务器端请求伪造)
  • 使用已知的潜在危险文件
  • 可以绕开的.htaccess弱配置
  • 存在提供敏感信息的备份文件
  • 贝壳冲击

除上述所有功能外,还支持代理(HTTP,HTTP和SOCKS5),各种身份验证方法(基本,摘要,Kerberos,NTLM),对SSL证书的支持,添加各种HTTP标头或用户代理设置的能力。

扫描站点php.testsparker.com时 ,发现了漏洞SQL盲注入,跨站点脚本执行,命令执行。 与其他扫描仪相比,在premium.bgabank.com上, Wapiti没有显示出如此出色的结果:仅检测到跨站点脚本。



根据扫描程序的结果,还将生成一个HTML报告,其中包含找到的漏洞的类别和数量,其描述,查询,curl命令以及有关如何关闭发现的安全漏洞的提示。

不出所料, Wapiti没有达到OWASP ZAP的水平。 尽管如此,它仍然比W9scan更好 ,尽管它没有搜索目录,子域并确定服务的版本。

阿拉奇尼




功能强大的免费处理器,用于测试Web应用程序的安全性和漏洞搜索。 它具有图形界面和强大的功能,可以在官方网站上找到更多详细信息

主动测试:

  • SQL注入-基于错误的检测
  • 使用差异分析进行盲SQL注入
  • 使用定时攻击进行盲SQL注入
  • NoSQL注入-基于错误的漏洞检测
  • 使用差异分析进行盲式NoSQL注入

完整功能列表,用于主动测试
  • CSRF检测
  • 代码注入
  • 使用定时攻击进行盲代码注入
  • LDAP注入
  • 路径遍历
  • 文件包含
  • 响应拆分
  • 操作系统命令注入
  • 使用定时攻击进行盲操作系统命令注入
  • 远程文件包含
  • 未经验证的重定向
  • 未经验证的DOM重定向
  • XPath注入
  • s
  • 路径xss
  • HTML元素的事件属性中的XSS
  • HTML标记中的XSS
  • 脚本上下文中的XSS
  • DOM XSS
  • DOM XSS脚本上下文
  • 源代码公开
  • XML外部实体


被动测试:

  • 允许的HTTP方法
  • 备份档案
  • 备份目录
  • 通用管理界面
  • 常用目录
  • 普通文件

被动测试功能的完整列表
  • HTTP PUT
  • 密码表的传输层保护不足
  • WebDAV检测(webdav)。
  • HTTP TRACE检测
  • 信用卡号码披露
  • CVS / SVN用户披露
  • 私有IP地址公开
  • 常见的后门
  • .htaccess LIMIT配置错误
  • 有趣的回应
  • HTML对象grepper
  • 电子邮件地址泄露
  • 美国社会安全号码披露
  • 强制目录列表
  • 混合资源/脚本
  • 不安全的Cookie
  • HttpOnly cookie
  • 自动完成密码表单字段。
  • 原始欺骗访问限制绕过
  • 基于表单的上传
  • localstart.asp
  • 为父域设置的Cookie
  • 缺少HTTPS站点的严格传输安全标头
  • 缺少x-frame-options标头
  • 不安全的CORS政策
  • 不安全的跨域策略
  • 不安全的跨域策略
  • 不安全的客户端访问策略


令人印象深刻,不是吗? 但这还不是全部。 网络中还包装了许多插件,例如被动代理,HTTP身份验证的字典攻击者,Cookie收集器,WAF检测器等。

扫描仪具有简洁明了的Web界面:



这就是Arachni在我们的测试站点上发现的。 Php.testsparker.com

  • 脚本上下文中的跨站点脚本(XSS)
  • 盲SQL注入(差异分析)
  • 代码注入
  • 代码注入(定时攻击)
  • 操作系统命令注入(定时攻击)
  • 操作系统命令注入

php.testsparker.com上的其他漏洞
H:文件包含
H:HTML标签中的跨站点脚本(XSS)
H:跨站脚本(XSS)
H:路径遍历
M:备份文件
M:通用目录
M:HTTP TRACE
L:缺少“ X-Frame-Options”标题
L:具有自动完成功能的密码字段
L:不安全的客户端访问策略
L:不安全的跨域策略(允许访问)
L:普通敏感文件

premium.bgabank.com上 ,仅从关键请求中发现了跨站点请求伪造(CSRF)的可能性。

Arachni在premium.bgabank.com的完整结果
H:跨站请求伪造
M:混合资源
M:HTTP TRACE
M:通用目录
M:缺少“严格运输安全”标头
L:公开专用IP地址

另外,我们注意到Arachni给我们的好报告。 支持多种格式-HTML,XML,文本,JSON,Marshal,YAML,AFR。



通常,Arachni下班后只会留下积极的印象。 我们的观点:这是任何自尊专家的必备条件

帕罗斯


另一个GUI Web漏洞扫描程序 。 默认情况下,它包含在Kali Linux发行版中,并在本地安装。 它具有一个内置代理,可通过该代理添加要分析的站点;一个内置的网络蜘蛛,可以分析站点并构建查询图。

要扫描用户的个人帐户,必须使用通过Paros代理启用流量重定向的方式登录到浏览器。 扫描程序将在扫描过程中使用授权的cookie。 活动报告可以导出为HTML。 它保存在root / paros / session / LatestScannedReport.htm文件中,随后被覆盖。 如果要保存上一次扫描的结果,则在开始下一次扫描之前,需要创建现有文件的副本。

主要功能(关注OWASP TOP 10 2017):

  • A1:注入-SQLinjection,SQLinjection指纹(可能存在SQLinj的地方)
  • 解答6:安全性配置错误-目录浏览,ISS默认文件,Tomcat源文件泄露,IBM WebSphere默认文件以及其他一些包含源代码的标准或过时文件(过时文件)等。
  • A7:XSS

附加功能:

  • 搜索启用的自动完成的密码表单。 此外,如果输入字段的属性类型=“ password”,则获得假肯定。
  • CRLF注射
  • 安全的页面浏览器缓存(在浏览器中缓存具有重要信息的页面)
  • 能够扫描用户(个人帐户)的受保护区域
  • 能够扫描本地网络上的Web应用程序



在每种类型漏洞的最终报告中,都有更详细的信息以及有关如何修复此漏洞的一些建议。



在我们的测试中,Paros的结果很差。 在php.testsparker.com上找到了:

H:SQL注入
M:XSS
M:不推荐使用的源文件
M:在具有重要信息(密码等)的表单中使用自动完成功能。
L:公开内部IP
premium.bgabank.com上甚至更少:
M:目录浏览
M:在具有重要信息(密码等)的表单中使用自动完成功能。

结果,尽管Paros扫描仪简单且易于使用,但较差的扫描结果使其放弃了

Tenable.io


付费多功能云扫描仪可以检测大量Web漏洞,几乎可以完全涵盖OWASP TOP 10 2017。

该服务具有内置的网络蜘蛛。 如果您在扫描设置中指定了授权数据(授权请求,登录名和密码,授权的cookie),则扫描程序还将检查您的个人帐户(授权用户的区域)。

除了扫描Web应用程序之外,Tenable.io还可以扫描网络-查找已知漏洞和搜索主机。 可以连接代理以扫描内部网络。 可以多种格式导出报告:* .nessus,* .csv,* .db,* .pdf。


在屏幕截图中,所有域均为“测试”


其他扫描配置文件。 本文不受影响

扫描后,可以对发现的漏洞进行统计和优先级排序-关键,高,中,低,信息



漏洞卡提供了有关此漏洞的其他信息以及一些消除建议。



扫描php.testsparker.com 。 高优先级漏洞:

H:组件漏洞
-超出PHP的支持版本
-不在Apache的支持版本中
H:代码注入
H:SQLinj
高:XSS
高:LFI
H:路径遍历

中低漏洞
M:披露有价值的数据-完整路径,备份
M:内部IP的公开
M:没有HTTPOnly标志的Cookie
M:通过HTTP发送密码
L:在具有重要信息的表单中使用自动完成功能
L:服务器对TRACE请求的响应
L:未安装Cache-Control,X-Content-Type-Options,X-Frame-Options,X-XSS-Protection标头。

现在为premium.bgabank.com 。 高优先级漏洞:

H:组件漏洞

  • 超出支持版本的PHP
  • Apache漏洞
  • 引导程序漏洞
  • jQuery漏洞

中低漏洞
M:Web服务器phpinfo()
M:共享HTTP和HTTPS
M:缺少从HTTP到HTTPS的重定向
M:目录浏览
M:找到备份文件
M:使用不安全的SSL版本
M:SSL / TLS证书过期
L:公开内部IP
L:不带HTTPOnly标志的Cookie
L:服务器对TRACE请求的响应
L:未安装严格传输安全性,缓存控制,X内容类型选项,X帧选项,X-XSS保护标头。

Tenable.io扫描仪运行良好,发现了许多漏洞 。 便捷的图形界面和数据表示简化了使用它的过程。 另一个优点是存在其他扫描配置文件,到目前为止,我们已决定不将其隐藏。 一个重要功能是云服务结构。 一方面,该服务不使用工作计算机的本地计算资源。 另一方面,它将无法扫描本地网络上的Web应用程序。

打p套件专业版


Burp Suite是一个完整的Web应用程序审阅解决方案 。 它包含各种实用程序,可以改善和加快对Web应用程序中漏洞的搜索。

Burp Suite具有以下实用程序:

  • 代理服务器-代理服务器,以中间人模式拦截通过HTTP(S)协议传递的流量。 在浏览器和目标Web应用程序之间,此实用程序使您可以拦截,检查和更改双向流量。
  • Spider是一个Web Spider,它会自动收集有关应用程序(Web资源)的内容和功能的信息。
  • 扫描仪(仅在Burp Suite Pro中)-一种扫描仪,用于自动搜索Web应用程序中的漏洞。
  • 入侵者-一种灵活的实用程序,可让您自动进行各种攻击。 例如,遍历标识符,收集重要信息等等。
  • 转发器是用于手动修改和重新发送单个HTTP请求以及分析应用程序响应的工具。
  • Sequencer是用于分析随机应用程序数据以预测生成它们的算法的功能的实用程序。
  • 解码器是用于手动或自动编码和解码应用程序数据的实用程序。
  • 比较器是一种用于查找两个数据变体之间的视觉差异的工具。
  • 扩展程序-用于向Burp Suite添加扩展的工具

“扫描程序”实用程序显示在Burp Suite程序主窗口的同名标签中。 界面是说英语的,但是现在谁能吓到呢?



“问题定义”选项卡提供了此扫描程序可以识别的所有漏洞的完整列表。 应当指出的是,这份名单令人印象深刻。



所有漏洞均分为3类:高,中,低。 还有一类信息,其中包括用于收集有关扫描资源的各种有用信息的机制。
在“扫描队列”窗口中开始扫描时,我们可以分阶段观察进度。 存在“裤子的颜色差异”。



在选项选项卡上,配置了基本扫描设置。



为方便起见,这些选项分为几类。 如有必要,您可以直接从设置窗口获取每个类别的帮助。



总体而言,Burp Suite Pro表现良好。 扫描php.testsparker.com时 ,发现并分类了足够的漏洞,以完全控制Web应用程序及其数据-这些是OS命令注入,SSTI和文件路径遍历。

Burp Suite Pro的完整结果在php.testsparker.com
H:OS命令注入
H:遍历文件路径
H:带外资源负载(HTTP)
H:服务器端模板注入
H:跨站脚本(已反映)
H:Flash跨网域政策
H:Silverlight跨域策略
H:明文提交密码
H:外部服务交互(DNS)
H:外部服务交互(HTTP)
M:SSL证书(不可信或已过期)
L:启用自动完成功能的密码字段
L:劫持表单动作(已反映)
L:未加密的通信
L:严格的运输安全性未得到执行

premium.bgabank.com上找到以下内容
H:跨站脚本(已反映)
M:未设置安全标志的SSL cookie
M:SSL证书(不可信或已过期)
L:未设置HttpOnly标志的Cookie
L:启用自动完成功能的密码字段
L:严格的运输安全性未得到执行

如果您经常将Burp Suite用于网络渗透测试 ,您喜欢它的生态系统,但又想以某种方式使搜索漏洞的过程自动化,那么此实用程序将非常适合您的武器库

Acunetix


总之-另一个非常好的商业扫描仪 。 通过广告非常积极地推广它,但是如果没有广泛的功能,Acutenix不会成功。 他可以检测到的漏洞包括所有类型的SQL注入,跨站点脚本,CRLF注入以及Web应用程序五分之一的其他乐趣。 值得注意的是,要进行高质量扫描,您需要选择正确的配置文件。

仪表板界面很好:



传统上,所有已识别的漏洞都分为四类:高,中,低。 好吧,在没有“信息”类别的地方,根据扫描仪,它包含所有有趣的数据。



在“扫描”选项卡上,我们可以观察扫描进度和其他诊断信息。



扫描完成后,在“漏洞”选项卡上,我们可以了解发现的数量和数量。 颜色区分到位。

php.testsparker.com上的测试中,扫描仪显示了不错的结果,但是对于premium.bgabank.com来说,坦率地说让我们失望了

完整的Acunetix结果
php.testsparker.com:
H:Apache 2.2.14 mod_isapi悬空指针
H:SQL盲注入
H:跨站点脚本
H:跨站点脚本(已验证)
H:目录遍历
H:文件包含
H:PHP代码注入
H:服务器端模板注入
H:找到SVN存储库
H:用户可控制的脚本源
M:找到访问数据库
M:Apache 2.x版本低于2.2.9
M:Apache httpd远程拒绝服务
M:Apache httpOnly Cookie公开
M:应用程序错误消息
M:备份文件
M:目录清单
M:没有CSRF保护的HTML表单
M:不安全的clientaccesspolicy.xml文件
M:部分用户可控制的脚本源
M:PHP暂停将特定字符串解析为浮点数
M:在用户输入上使用PHP preg_replace
M:源代码公开
M:用户凭据以明文形式发送
L:Apache 2.x版本早于2.2.10
L:Apache mod_negotiation文件名暴力破解
L:Clickjacking:缺少X-Frame-Options标头
L:登录页面密码猜测攻击
L:可能的相对路径覆盖
L:可能的敏感目录
L:可能的敏感文件
L:启用TRACE方法

premium.bgabank.com:
L:Clickjacking:缺少X-Frame-Options标头


Acunetix具有强大的功能, 如果您正在寻找一个独立的解决方案 ,它是合适的 。 Web界面简单明了,信息图表和报告看起来很容易理解。在扫描过程中可能会发生失火,但正如托尼·史塔克(Tony Stark)所说:“这发生在男人身上。不经常。五分之一。”

一般结果


现在得出所有经过测试的扫描仪的结论。

  • 我们喜欢OWASP ZAP。推荐使用。
  • 我们建议使用W9scan作为确定版本和服务以及潜在攻击媒介的辅助工具。
  • Wapiti尚未达到OWASP ZAP,但我们的工作比W9scan更好。
  • Arachni只是必需品。
  • Paros的扫描效果不佳,我们不建议这样做。
  • Tenable.io很好,它发现了许多漏洞。但是值得考虑的是它是阴天。
  • Burp Suite Pro我们建议那些喜欢Burp Suite生态系统但缺乏自动化的人。
  • Acunetix适用于那些希望将扫描仪作为独立应用程序使用的人。

Source: https://habr.com/ru/post/zh-CN456892/


All Articles