这是我参与「第五届青训营 」伴学笔记创作活动的第 11 天
课程介绍
- 在网络时代下,Web 安全随处可见并且危害极大,Web 安全问题也越来越受到重视。基于此背景,本节课将从安全问题中「攻击者」的角色出发,讲解目前存在哪些技术手段将危害到 Web 安全。
- 面临错综复杂的网络环境,在了解哪些手段会造成 Web 安全事故之后,本节课将通过第二种「防御者」角色的视角,剖析不同攻击手段的技术细节,帮助大家逐个击破安全漏洞,更好地维护 Web 安全。
课程重点
- Cross-Site Scripting(XSS)
- Cross-site request forgery(CSRF)
- Injection
- Denial of Service(DoS)
- Distributed DoS(DDoS)
- 中间人攻击
- XSS 的防御
- 防御 CSRF 的正确姿势
- 防御 DoS
- 防御 Injection
- 防御中间人
两个角度看Web安全
- 假如你是一个hacker---攻击
- 假如你是一个开发者---防御
攻击篇
Cross-Site Scripting(XSS)
XSS主要利用了
XSS的一些特点行脚本)
- 通常难以从UI上感知(暗地执行脚本)
- 窃取用户信息(cookie/token)
- 绘制UI(例如弹窗),诱骗用户点击/填写表单
XSS demo
可以直接提交恶意脚本
Stored XSS
Stored XSS
- 恶意脚本被存在数据库中
- 访问页面→读数据≡被攻击
- 危害最大,对全部用户可见
Reflected XSS
Reflected
- 不涉及数据库
- 从URL上攻击
Reflected XSS Demo
DOM-based XSS
DOM-based XSS
- 不需要服务器的参与
- 恶意攻击的发起+执行,全在浏览器完成
DOM-based XSS Demo
Reflected vs Demo-based
完成注入脚本的地方
Mutation-based XSS
Mutation-based XSS
- 利用了浏览器渲染DOM的特性(独特优化)
- 不同浏览器,会有区别(按浏览器进行攻击)
没人比我更懂浏览器
Cross-site request forgery(CSRF)
- 在用户不知情的前提下
- 利用用户权限(cookie)
- 构造指定HTTP请求,窃取或修改用户敏感信息
CSRF demo
- 用户没有访问银行页面
- 银行页面中的特定接口被请求
- 请求执行成功