为什么/如何`value ="javascript:alert(1)"`被认为是OWASP的ZAP工具中的XSS漏洞?

Mat*_*ern 7 javascript php xss owasp

OWASP的ZAP的结果对于消除我网站的易受攻击的部分非常有用.

但是,我发现了很多我无法修复的结果.例如,它已将一个get参数放入javascript:alert(1);变量中.然后,PHP在隐藏元素的value属性中输出此变量.所以最终的HTML看起来像:

<input type="hidden" name="someName" id="someID" value="javascript:alert(1);"/>
Run Code Online (Sandbox Code Playgroud)

此值通常用于使用JavaScript填充下拉列表.如果它为1则显示可选搜索过滤器,如果为0则不显示任何内容.所以它只用于失败的字符串比较.

我认为没有办法利用它,警报不像ZAP向我展示的其他攻击那样运行.输出被编码,因此它们不能通过"/>像先前发现的攻击那样提前结束引号或元素来注入HTML ,因为这些字符成为它们的HTML实体对应物.

这只是ZAP匹配页面源中输入字符串的误报,因为编码javascript:alert(1);仍然等于完全相同javascript:alert(1);吗?

Eda*_*190 2

是的,OWASP 的 ZAP 会尝试查找您网站上的漏洞,并且它会自动工作。

如果成功地将任何部分代码添加到您的网站中,该网站就会自动被视为易受攻击。

如果您的网站只接受“0”或“1”作为隐藏输入的值,并且不在任何地方保存或提示该值(甚至不保存到 cookie),那么这不是安全漏洞,您是安全的。