【发布时间】:2017-04-03 22:10:29
【问题描述】:
我们的客户要求我们针对我们的 Web 应用程序(ASP.NET 4.5.2、Webforms)运行 OWASP ZAP 工具,我们不能在报告中包含任何高优先级的发现。
我们已经完成了分析,OWASP ZAP 报告了两个最有可能是“误报”的漏洞:
- 远程操作系统命令执行
- SQL 注入
远程操作系统命令执行似乎是虚假的,因为我们没有在任何地方执行任何操作系统命令 - 那么任何攻击者如何获取我们的代码以在远程机器上执行他的命令?
而且 SQL 注入似乎非常虚假,因为我们使用的是实体框架 everywhere,它使用正确的参数化查询,这是针对任何 SQL 注入的黄金标准 ....
其他人是否对 OWASP ZAP 有过此类“误报”?是否有任何“已知问题”记录在任何地方,我们可以用来证明 工具 是错误的——不是我们的代码?
【问题讨论】:
-
即使使用 EF,您仍然可以运行任意查询并实现结果。不久前,我在一个经过检查的应用程序中发现了这样的问题。确保 zap 没有在您自己的代码中找到您不相信的内容。
-
@WiktorZychla:你是对的——但我们在你的 EF 代码中没有任何“任意 SQL”——这是绝对肯定的。
-
我认为告诉您的客户您查看了代码,并且您使用的是没有自定义 SQL 代码的 EF,因此它不会受到 SQLi 的攻击,应该足够了。如果他们坚持,您也许可以向他们展示部分源代码,但如果您以书面形式提供上述内容,则没有必要这样做。操作系统命令注入可能更有趣,可能有一些微妙的方法,但 ZAP 确实有时会产生很多误报,因此也很容易成为其中之一。
-
但是该报告的外观如何?它只是在没有任何参数\澄清的情况下报告漏洞?
-
@Evk:报告列出了几个据称易受攻击的文件和“目标”——例如 ASP.NET 隐藏字段
__SCROLLPOSITIONY或__VIEWSTATEGENERATOR——但没有太多关于为什么这些被视为易受攻击的解释.....这些都不能用于执行远程操作系统命令,例如......
标签: c# asp.net-4.5 owasp false-positive zap