这是我参与「第四届青训营 」笔记创作活动的第4天
跨站脚本攻击(XSS)
开发维克页面中,攻击者注入恶意脚本,用户访问页面时运行恶意脚本。
XSS利用了两大步:
XSS特点
- 通常难以从UI上感知(暗地里执行脚本)
- 窃取用户信息(cookie/token)
- 绘制UI(例如弹窗),诱导用户点击/填写表单
XSS Demo
- 两个接口:submit(写数据)和render(读数据),提交到服务器端
- 恶意攻击者可以提交一个script标签作为content字段,服务端渲染的时候将会导致插入一个script标签
XSS攻击的分类
1. 存储型XSS攻击
攻击将会被存储到数据库中(所有用户被攻击)
2. 反射型XSS攻击
- 不涉及数据库
- 从URL中攻击
3. 基于DOM的XSS攻击
- 不需要服务器参与
- 攻击的发起、攻击在浏览器中执行
比较反射型和基于DOM的XSS攻击
- 反射型:攻击在服务器端注入
- 基于DOM:完全由浏览器执行
3. 基于Mutation的XSS攻击
- 利用了浏览器渲染DOM的特性(独特优化)
- 不同浏览器会有区别(按浏览器进行攻击)
浏览器中渲染时,noscript标签后面的片段将会作为一个正常的标签(img ),触发onerror(最难防范)。