OWASP的ZAP的结果对于消除我网站的易受攻击的部分非常有用。
然而,我发现了很多我根本无法修复的结果。例如,其中一个get参数将javascript:alert(1);放入到变量中。然后,PHP在隐藏元素的value属性中输出这个变量。因此,最终的HTML如下所示:
<input type="hidden" name="someName" id="someID" value="javascript:alert(1);"/>该值通常用于填充带有JavaScript的下拉列表。如果为1,则显示可选的搜索过滤器;如果为0,则不显示任何内容。所以它只用于失败的字符串比较。
我认为没有办法利用这一点,警报不会像ZAP向我展示的其他攻击那样运行。输出经过编码,因此它们不能像以前发现的攻击那样通过以"/>结束引号或元素来注入超文本标记语言,因为这些字符将成为其超文本标记语言实体的对应物。
这是否仅仅是ZAP与页面源代码中的输入字符串匹配的误报,因为编码javascript:alert(1);仍然与javascript:alert(1);完全相同
发布于 2015-03-04 16:17:33
该漏洞意味着ZAP设法将任意代码插入到该输入字段中。这意味着你很可能没有在应用程序中的某个地方验证用户输入。
在生成输入字段时应该更加小心,并确保用于生成该字段GET参数得到了相应的验证。
记住,最好是安全的,而不是道歉(也就是说,你的应用程序被破坏了)。
发布于 2015-03-01 20:45:45
是的,OWASP的ZAP试图找到你网站上的漏洞,它会自动工作。
如果它成功地将任何部分代码添加到您的网站中,则该网站自动被视为易受攻击。
如果您的网站只接受"0“或"1”作为隐藏输入的值,并且不在任何地方保存或提示值(甚至不是cookie),这不是安全漏洞,您是安全的。
发布于 2017-03-20 13:29:08
你的HTML在我看来是安全的。然而,考虑一个类似的案例:
<a href="javascript:alert(1);">test</a>这将产生一个执行JavaScript的链接。这可能是因为ZAP正在格外小心,以便像这样的案例被发现。
对于这种特定情况,您应该将用户提供的链接中允许的URL方案列入白名单。例如,只允许http、https、mailto等。
https://stackoverflow.com/questions/16612521
复制相似问题