我正在查看WebGoat练习,并且针对一个问题,他们要求您使用img标记创建JavaScript警报。
他们的解决方案是:
<img src=x onerror=;;alert('XSS') />
看看他们的解决方案,我想知道为什么在实际警报之前需要两个(而不是一个)分号?
答案 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很差并在事件范围之外执行警报???)