谁能告诉我为什么/这个XSS向量在浏览器中如何工作?

时间:2011-09-15 11:48:40

标签: xss security

我的网站遭受过多次XSS攻击。以下HTML片段是攻击者注入的XSS向量:

<a href="mailto:">
<a href=\"http://www.google.com onmouseover=alert(/hacked/); \" target=\"_blank\">
<img src="http://www.google.com onmouseover=alert(/hacked/);" alt="" /> </a></a>

看起来脚本不应该执行,但是使用IE9的开发工具,我能够看到浏览器将HTML转换为以下内容:

<a href="mailto:"/>
<a onmouseover="alert(/hacked/);" href="\"http://www.google.com" target="\"_blank\"" \?="">
</a/>

经过一些测试,结果证明“使”onmouseover“属性”生效“,但我不知道为什么。有谁知道为什么这个向量成功了?

1 个答案:

答案 0 :(得分:5)

总结评论: 在引号前粘贴一个字符,将引号转换为属性值的一部分,而不是标记值的开头和结尾。 这也适用:

href=a"http://www.google.com onmouseover=alert(/hacked/); \"

HTML允许无引号属性,因此它成为具有给定值的两个属性。