听团里说WordPress又爆跨站漏洞了:“ XSS漏洞在Jetpack和二十五默认主题影响百万WordPress用户 ”,分析发现原来是jQuery老版本的DOM XSS漏洞【错误#9521】。
11年dmethvin提交jQuery 1.6.1版本的Ticket#9521,其原因是由$() | jQuery()预选的CSS选择器在其他情况下可用于创建HTML元素,如果编码不当(事实上很多编码不当的情况),将会导致产生DomXSS漏洞。
示例(jQuery 1.6.1)
- <html>
- <head>
- <title>jQuery DomXSS test</title>
- <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script>
- <script>
- $(location.hash);
- </script>
- </head>
- <body>
- Hello, jQuery.
- </body>
- </html>
WordPress默认主题二十一个例子
example.html 297-299行:
- // set permalink
- var permalink = cssclass.split(' genericon-')[1];
- window.location.hash = permalink;