XFF漏洞利用([SWPUCTF 2021 新赛]Do_you_know_http)

原理

常见的存在HTTP头注入的参数

User-Agent:使得服务器能够识别客户使用的操作系统,浏览器版本等.(很多数据量大的网站中会记录客户使用的操作系统或浏览器版本等存入数据库中)

Cookie:网站为了辨别用户身份进行session跟踪,并储存在用户本地终端上的数据(通常经过加密)

X-Forwarded-For:简称XFF头,代表了HTTP的请求端真实的IP。它被认为是客户端通过HTTP代理或者负载均衡器连接到web服务端获取源ip地址的一个标准(通常一些网站的防注入功能会记录请求端真实IP地址并写入数据库或某文件通过修改XXF头可以实现伪造IP)。

Rerferer:浏览器向 WEB 服务器表明自己的页面来源。

Host:客户端指定自己想访问的WEB服务器的域名/IP 地址和端口号。

XFF注入概念

X-Forwarded-For 是一个 HTTP 扩展头部。HTTP/1.1(RFC 2616)协议并没有对它的定义,它最开始是由 Squid 这个缓存代理软件引入,用来表示 HTTP 请求端真实 IP。如今它已经成为事实上的标准,被各大 HTTP 代理、负载均衡等转发服务广泛使用,并被写入 RFC 7239(Forwarded HTTP Extension)标准之中。

X-Forwarded-For 请求头格式非常简单,就这样:

复制代码
X-Forwarded-For: client, proxy1, proxy2

可以看到,XFF 的内容由「英文逗号 + 空格」隔开的多个部分组成,最开始的是离服务端最远的设备 IP,然后是每一级代理设备的 IP。

如果一个 HTTP 请求到达服务器之前,经过了三个代理 Proxy1、Proxy2、Proxy3,IP 分别为 IP1、IP2、IP3,用户真实 IP 为 IP0,那么按照 XFF 标准,服务端最终会收到以下信息:

复制代码
X-Forwarded-For: IP0, IP1, IP2

Proxy3 直连服务器,它会给 XFF 追加 IP2,表示它是在帮 Proxy2 转发请求。列表中并没有 IP3,IP3 可以在服务端通过 Remote Address 字段获得。我们知道 HTTP 连接基于 TCP 连接,HTTP 协议中没有 IP 的概念,Remote Address 来自 TCP 连接,表示与服务端建立 TCP 连接的设备 IP,在这个例子里就是 IP3。

Remote Address 无法伪造,因为建立 TCP 连接需要三次握手,如果伪造了源 IP,无法建立 TCP 连接,更不会有后面的 HTTP 请求。不同语言获取 Remote Address 的方式不一样,例如 php 是 $_SERVER"REMOTE_ADDR",Node.js 是 req.connection.remoteAddress,但原理都一样。

例题

1.打开环境,发现让使用WLLM浏览器,使用bp抓包,然后进行修改

修改User-Agent头如下

2.访问成功,在Location位置发现a.php,进行访问

3.发现只有本地地址才能访问,进行伪造

复制代码
X-Forwarded-For: 127.0.0.1

4.在Location位置同样发现secretttt.php,继续访问

得到答案!

相关推荐
ESDWAN7 小时前
跨境网络丢包怎么定位?用MTR和Traceroute分析链路问题
网络
武天旭7 小时前
AI安全--AI大模型的隐私保护与法律法规
人工智能·安全
学逆向的8 小时前
C 枚举变量
c语言·开发语言·网络安全
砺星Leetx8 小时前
工业总线选型与对接实战:PROFINET、EtherCAT、EtherNet/IP、PROFIBUS、Modbus-TCP 与 CC-Link
网络·网络协议·tcp/ip·控制器·国产拧紧系统
2401_868534788 小时前
软考网络规划设计师SSL协议知识点详解
服务器·网络
Escalating_xu8 小时前
【Linux 网络编程】手写序列化与反序列化:从 x op y 到能校验的文本协议
linux·运维·网络
POMAGTOR11 小时前
【磁吸式连接器选型工程解析:结构原理、应用场景与选型可靠性要点】
网络·嵌入式硬件
2601_9672127214 小时前
高防护轨道式插座安全结构与工程适配技术说明
大数据·经验分享·安全
Lsetea14 小时前
curl访问HTTPS报47 Too many redirects:重定向循环与max-redirs排查
linux·http·https·ssl证书·curl
阿文和她的Key14 小时前
PHP2Shell事故四层拆解:AI找洞是小时级,披露协调还是邮件级
网络·人工智能·架构·php