这是我参与「第四届青训营 」笔记创作活动的的第9天。
假如你是一个hacker
攻击篇
一、Cross-Site Scripting(XSS)
XSS 主要利用了
XSS 的一些特点
⭐ 通常难以从 UI 上感知 (暗地执行脚本)
⭐ 窃取用户信息 (cookie/token)
⭐ 绘制UI (例如弹窗),诱骗用户点击/填写表单
XSS 的种类
Stored XSS
⭐ 恶意脚本被存在数据库中
⭐ 访问页面 → 读数据 = 被攻击
⭐ 危害最大,对全部用户可见
Reflected XSS
⭐ 不涉及数据库
⭐ 从 URL 上攻击
DOM-based XSS
⭐ 不需要服务器的参与
⭐ 恶意攻击的发起 + 执行,全在浏览器完成
Mutation-based XSS
⭐ 利用了浏览器渲染DOM的特性 (独特优化)
⭐ 不同浏览器,会有区别 (按浏览器进行攻击)
二、Cross-site request forgery(CSRF)
⭐ 在用户不知情的前提下
⭐ 利用用户权限 (cookie)
⭐ 改造指定HTTP请求,窃取或修改用户敏感信息
三、Injection
SQL Injection
- 读取请求字段
- 直接以字符串的形式拼接SQL语句
Injection 不止于 SQL
⭐ CLI
⭐ OS command
⭐ Server-Side Request Forgery (SSRF),服务端伪造请求。严格而言,SSRF 不是injection,但是原理类似。
四 Denial of Service(DOS)
❓ DOS:通过某种方式(构造特定请求),导致服务器资源被显著消耗,来不及响应更多请求,导致请求挤压,进而雪崩效应。
插播:正则表达式——贪婪模式
⭐ 重复匹配时「?」vs 「no ?」:满足一个即可 vs 尽量多
ReDos:基于正则表达式的Dos
贪婪:n次不行?n - 1 次在试试? —— 回溯
⭐ 导致响应时间大大延长,接口吞吐量明显降低。
Logical Dos
⭐ 耗时的同步操作
⭐ 数据库写入
⭐ SQL join
⭐ 文件备份
⭐ 循环执行逻辑
Distributed Dos(DDos)
❓ DDos:短时间内,来自大量僵尸设备的请求流量,服务器不能及时完成全部请求,导致请求堆积,进而请求堆积,进而雪崩效应,无法响应新请求。(不搞复杂的,量大就完事了) ⭐ 直接访问 IP
⭐ 任意 API
⭐ 消耗大量带宽 (耗尽)
中间人攻击
⭐ 明文传输
⭐ 信息篡改不可知
⭐ 对方身份为验证