OWASP 的 ZAP 的结果对于消除我网站的易受攻击部分非常有用。
但是,我发现了很多我根本无法修复的结果。例如,它已放入javascript:alert(1);
变量的 get 参数之一。这个变量然后由 PHP 在隐藏元素的value
属性中输出。所以最终的 HTML 看起来像:
<input type="hidden" name="someName" id="someID" value="javascript:alert(1);"/>
此值通常用于使用 JavaScript 填充下拉列表。如果为 1,则显示可选的搜索过滤器,如果为 0,则不显示任何内容。所以它只用于失败的字符串比较。
我认为没有办法利用这一点,警报不会像 ZAP 向我展示的其他攻击那样运行。输出经过编码,因此它们无法通过"/>
像以前发现的攻击一样提前结束引号或元素来注入 HTML,因为这些字符成为它们的 HTML 实体对应物。
这是否只是 ZAP 与页面源中的输入字符串匹配的误报,因为编码javascript:alert(1);
仍然等于完全相同javascript:alert(1);
?