1 SQL Injection
最常见的 Injection 注入攻击是 SQL Injection
- ① 读取请求字段
- ② 直接以字符串的形式拼接 SQL 语句
Injection 不止于 SQL
-
CLI(命令行)
-
OS command(系统命令)
-
Server-Side Request Forgery(SSRF) ,服务端伪造请求
- 严格而言 SSRF 不是 injection,但是原理类似
2.Denial of Service(Dos 服务拒绝)
通过某种方式(构造特定请求),导致服务器资源被显著消耗,来不及响应更多请求,导致请求挤压,进而雪崩效应。
4.1 ReDos:基于正则表达式的 Dos
存在贪婪匹配的模式,那么就有可能存在 如果n次满足不了?n-1次再试试?— 回溯行为
4.2 Distributed Dos(DDoS)
DDoS是最常见的Dos攻击
短时间内,来自大量僵尸设备的请求流量,服务器不能及时完成全部请求,导致请求堆积,进而雪崩效应,无法响应新请求。
简单的说就是不搞复杂的,量大就完事儿了
DDoS 攻击特点
- 直接访问 IP
- 任意 API
- 消耗大量带宽(耗尽)
举个例子:最常见的洪水攻击 SYN Flood
TCP有三次握手。攻击者会构造大量的TCP请求,发送大量的SYN给我们的服务器,然后我们的服务器非常的规范,返回ACK + SYN,但攻击者此时不会返回第三次ACK,也就是导致了整个三次握手没有完成,连接数不能被释放,很快的服务器达到最大连接次数,所有新请求统统不能被响应。这也就完成了一次洪水攻击。
3 传输层的攻击方式 —— 中间人攻击
中间人攻击方式
最主要最常见的是中间人攻击方式
这种方式就是在浏览器和服务器中间插一杠子。
-
浏览器觉得自己在和服务器进行交互,服务器觉得自己在给浏览器返回数据,实际上他们都是在跟一个中间人进行沟通。
-
中间人可以窃取信息,可以修改请求、返回结果。
-
这里的中间人可以有以下角色扮演:一个恶意的浏览器,你家买的一个便宜的路由器,甚至是一些服务提供商,也就是运营商...
-
为什么中间人攻击的形式可能会发生呢?
-
① 明文传输
我们所有的传输都是明文传输,也就是大家都能看得见,都知道传的是什么
-
信息篡改不可知
当我们传输的信息被篡改的时候,服务器和浏览器都不知道
-
对方身份未验证
服务器和浏览器都没有对对方的身份进行任何验证,导致了中间人可以在中间存在
-