- 本文主要根据道哥《白帽子讲web安全》的跨站脚本攻击(XSS)一章总结而来。
0X01 原理
不法分子通过“HTML”注入篡改了网页,插入了恶意的脚本,从而在用户浏览网页时,控制用户浏览器的一种攻击。(本质是一种“HTML”注入,用户的数据被当成了HTML代码的一部分来执行,从而混淆了原本的语义,产生了新的语义。)
0X02 类型
- 反射型XSS
简单地把用户输入的数据“反射”给浏览器
//反射型特例:DOM Based XSS:通过修改页面的DOM节点形成的XSS。 - 存储型XSS
把用户输入的数据“存储”在服务器端
0X03 XSS payload
通过读取浏览器的cookies对象,从而发起“cookie劫持攻击”
//javascript 脚本识别浏览器版本:alert(navigator.userAgent);
Flash的system.capabilities对象能查询对象客户端电脑中的硬件信息;
可通过java applet的接口获取客户端的本地IP地址。
0X04 XSS攻击平台
Attack API
BeEF
xss-proxy
0X05 XSS Worm攻击
用户间发生交互行为的页面,如果存在存储型XSS,则比较容易发起XSS Worm攻击。
0X06 XSS构造技巧
- 利用字符编码
- 绕过长度限制
- 使用
标签
//base标签:定义页面上的所有使用“相对路径”标签的hosting地址,可以出现在页面的任何地方,并作用于该标签之后的所有标签 - window.name妙用
- mission impossible
- Flash XSS