Fork me on GitHub

XSS基础知识

  • 本文主要根据道哥《白帽子讲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