XSS通过img标签,冗余分号?

时间:2011-06-23 15:53:58

标签: javascript html security xss

我正在查看WebGoat练习,并且针对一个问题,他们要求您使用img标记创建JavaScript警报。

他们的解决方案是:

<img src=x onerror=;;alert('XSS') />

看看他们的解决方案,我想知道为什么在实际警报之前需要两个(而不是一个)分号?

1 个答案:

答案 0 :(得分:1)

确实分号不是必需的我只测试了相同的标签,而不是FF5和Chrome上的分号,他们都发送了警告

<img src=x onerror=;;alert('XSS') />
<img src=x onerror=alert('XSS') />
<img src="x" onerror="alert('XSS')" />

我认为他们正试图在第一个分号中停止onerror事件,然后在警报中输出虚假代码

我试过这个

<img src=x onerror=alert('eventfire');;alert('XSS') />

它包含事件内的两个警报,因此它不会在事件范围之外运行第二个警报。

答案?似乎是用分号做同样的事情(也许那些旧的浏览器解析html很差并在事件范围之外执行警报???)