host头
- 如果后端从host取值来判断是否是本地就可以通过此方法进行绕过:
1 | host: 127.0.0.1 |
X-Forwarded-For
- X-Forwarded-For(XFF)是用来识别通过HTTP代理或负载均衡方式连接到Web服务器的客户端最原始的IP地址的HTTP请求头字段。Squid 缓存代理服务器的开发人员最早引入了这一HTTP头字段,并由IETF在HTTP头字段标准化草案中正式提出.
1 | X-Forwarded-For: 127.0.0.1 |
X-Real-IP
- 主要用于反向代理服务器中,表示原始请求的客户端 IP 地址。
1 | X-Real-IP: 127.0.0.1 |
Client-Ip
- Client-Ip是用于识别客户端与反向代理之间的真实IP地址。
1 | Client-Ip: 127.0.0.1 |
Referer
- 上一次请求的访问内容,绕过方式:
1 | Referer: 127.0.0.1 |
Priority
- u 表示 urgency(紧急程度), urgency的值越小,表示优先级越高。例如,u=0表示最高优先级,u=7表示最低优先级。
1 | Priority: u=0 |
ctf中的请求头伪造
- 在 CTF 竞赛中,IP 伪造是常见的题目类型,通常用于绕过服务器对客户端 IP 的限制(例如限制仅允许本地访问或特定 IP 访问)。以下是您列出的 HTTP 请求头字段的解释及其在 IP 伪造中的作用:
- 核心原理
服务器可能通过以下方式获取客户端 IP: - 默认从
REMOTE_ADDR(TCP 连接的真实 IP,无法伪造)。
- 默认从
- 从某些 HTTP 请求头中读取 IP(可被客户端伪造)。
- 攻击者通过伪造这些请求头,欺骗服务器误认为请求来自合法 IP(如
127.0.0.1)。
常见伪造字段
- 代理/CDN 相关
1 | X-Forwarded-For (XFF) |
- 最常用的代理转发字段,格式为逗号分隔的 IP 列表(如
X-Forwarded-For: client, proxy1, proxy2)。 - 漏洞点:服务器可能直接取第一个或最后一个 IP 作为客户端 IP,未验证代理链真实性。
1 | X-Real-IP |
- Nginx 等反向代理常用字段,用于传递客户端真实 IP(需配合可信代理配置)。
CF-Connecting-IP
Cloudflare CDN 专用字段,表示原始客户端 IP。
Fastly-Client-Ip
Fastly CDN 专用字段。
Ali-CDN-Real-IP
阿里云 CDN 专用字段。
- 旧版或非标准字段
Forwarded-For/Forwarded
RFC 7239 标准字段,但部分旧系统可能使用非标准写法(如Forwarded-For)。Client-IP/X-Client-IP
一些旧框架或自定义代码可能读取此字段。X-Cluster-Client-IP
Kubernetes 或集群环境中可能使用。
- 特定框架/中间件
WL-Proxy-Client-IP/Proxy-Client-IP
WebLogic 或旧版 Apache 代理可能使用。X-Originating-IP
某些邮件服务器或 Exchange 使用。
- 自定义或混淆字段
X-Custom-IP-Authorization
开发者可能自定义字段用于 IP 校验逻辑。X-Host
可能被用于覆盖 Host 头或传递 IP。
ctf请求头ip伪造
1 | ctf 请求头ip伪造: |
CTF 利用场景
1. 绕过本地限制
若题目要求请求必须来自
127.0.0.1,可尝试在请求头中伪造X-Forwarded-For: 127.0.0.1或其他字段。2. SSRF 或接口滥用
某些内部 API 可能仅允许特定 IP 访问,伪造 IP 可绕过限制。
3. 权限提升
结合其他漏洞(如 JWT 篡改),伪造 IP 可能触发管理员权限逻辑。
防御措施
1. 不信任客户端输入
避免直接从请求头读取 IP,优先使用
REMOTE_ADDR。2. 配置可信代理链
在反向代理(如 Nginx)中设置
set_real_ip_from和real_ip_header,仅接受可信代理的 IP 传递。3. 多字段校验
若必须使用请求头字段,应校验多个字段的一致性(如
X-Forwarded-For和X-Real-IP)。4. 白名单过滤
对关键接口实施 IP 白名单机制(基于
REMOTE_ADDR)。
工具与测试方法
- Burp Suite:通过 Repeater 模块修改请求头重放测试。
- Python 脚本:使用
requests库自定义请求头。 - 自动化枚举:编写脚本批量测试所有可能的 IP 头字段。
总结
- 在 CTF 中,IP 伪造的关键是枚举所有可能的请求头字段,并观察服务器响应变化。而在实际开发中,需严格遵循“不信任客户端输入”原则,避免此类漏洞。
评论区
欢迎你留下宝贵的意见