跨站脚本攻击介绍 | 青训营笔记

133 阅读1分钟

这是我参与「第四届青训营 」笔记创作活动的第4天

跨站脚本攻击(XSS)

开发维克页面中,攻击者注入恶意脚本,用户访问页面时运行恶意脚本。

XSS利用了两大步:

image.png

XSS特点

  • 通常难以从UI上感知(暗地里执行脚本)
  • 窃取用户信息(cookie/token)
  • 绘制UI(例如弹窗),诱导用户点击/填写表单

XSS Demo

image.png

  • 两个接口:submit(写数据)和render(读数据),提交到服务器端

image.png

  • 恶意攻击者可以提交一个script标签作为content字段,服务端渲染的时候将会导致插入一个script标签

XSS攻击的分类

1. 存储型XSS攻击

攻击将会被存储到数据库中(所有用户被攻击)

image.png

2. 反射型XSS攻击

  • 不涉及数据库
  • 从URL中攻击

image.png

3. 基于DOM的XSS攻击

  • 不需要服务器参与
  • 攻击的发起、攻击在浏览器中执行

image.png

比较反射型和基于DOM的XSS攻击

image.png

  • 反射型:攻击在服务器端注入
  • 基于DOM:完全由浏览器执行

3. 基于Mutation的XSS攻击

  • 利用了浏览器渲染DOM的特性(独特优化)
  • 不同浏览器会有区别(按浏览器进行攻击)

image.png

浏览器中渲染时,noscript标签后面的片段将会作为一个正常的标签(img ),触发onerror(最难防范)。