javascript - XSS 通过 img 标签,多余的分号?

标签 javascript html security xss

我正在查看 WebGoat 练习,有一个问题要求您使用 img 标签创建一个 JavaScript 警报。

他们的解决方案是:

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

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

最佳答案

事实上,分号不是必需的,我只是在 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 不佳并在事件范围之外执行警报???)

关于javascript - XSS 通过 img 标签,多余的分号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6457014/

相关文章:

javascript - 确定其他作者的 Javascript 安全性,例如

java - 如何请求需要客户端证书进行身份验证的 URL

javascript - 更新 js 模板文本中的变量

php - 如何在PHP中安全实现 "Remember me"按钮(持久登录)

javascript - 如何维护对正确对象的引用?

java - 我们可以通过编程方式配置 Chrome 吗?

javascript - 迭代匹配元素来控制自定义光滑轮播

javascript - React-Redux 中的倒计时功能

php - 使用 PHP 转换所有类型的智能引号

html - 使用纯 css 动画 html 选项卡内容以像轮播一样移入/移出