这是我参与「第五届青训营 」伴学笔记创作活动的第 12 天
Cross-Site Scripting(XSS)
跨站脚本攻击:攻击者通过某种攻击方式将恶意脚本注入进网页,当用户访问页面时,恶意脚本就会被运行,即被攻击,造成的后果可能是泄漏用户信息或者用户机器被当“肉鸡”。
- 通常难以从UI上感知(暗地执行脚本)
- 窃取用户信息(cookie/token)
- 绘制UI(例如弹窗),诱骗用户点击/填写表单
盲目信任提交的内容,并将string转成了Dom
Stored XSS 存储型
- 恶意脚本被存在数据库中
- 访问页面>读数据=被攻击
- 危害最大,对全部用户可见
Reflected XSS 反射型
- 不涉及数据库
- 从URL上攻击
DOM-based XSS 基于DOM
-不需要服务器的参与 -恶意攻击的发起+执行,全在浏览器完成
Mutation-baseed XSS 区别浏览器
- 利用了浏览器渲染DOM的特性(独特优化)
- 不同浏览器,会有区别(按浏览器进行攻击)
Cross-site request forgery(CSRF):跨站伪造请求
- 在用户不知情的前提下
- 利用用户权限(cookie)
- 构造指定HTTP请求,窃取或修改用户敏感信息
最常见的CSRF是GET,点击标签或加载图片发送请求就是一次攻击;
Injection 注入攻击
SQL Injection
- 读取请求字段
- 直接以字符串的形式拼接SQL 语句
Denial of Service(DoS) 服务拒绝
通过某种方式(构造特定请求),导致服务器资源被显著消耗,来不及响应更多请求,导致请求挤压,进而雪崩效应。
ReDoS:基于正则表达式的DoS
贪婪:n次不行?n-1次再试试?——回溯
利用回溯的复杂度;假如服务器端写了一个贪婪的正则表达式,攻击者则可以生成一段容易产生回溯的字符串来进行攻击:使得服务器的响应时间会大大延长,接口吞吐量明显降低,响应用户请求次数明显减少;
Distributed DoS(DDoS)
短时间内,来自大量僵尸设备的请求流量,服务器不能及时完成全部请求,导致请求堆积,进而雪崩效应,无法响应新请求。 主要消耗带宽。
洪水攻击:利用TCP三次握手,攻击者故意不返回第三次握手的ACK,导致连接数量堆积,无法接受新的请求;
基于传输层的攻击方式
中间人攻击
在浏览器和服务器之间掺入了第三方中间人。
发生原因:
- 明文传输
- 信息篡改不可知
- 方身份未验证