You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

HTTPoxy原理及CGI环境变量转换疑问:自定义Proxy头是否转为HTTP_PROXY?

关于HTTPoxy漏洞中自定义Proxy请求头的疑问解答

嘿,我刚好对HTTPoxy漏洞这块挺熟悉的,来给你捋清楚这个问题!

首先得说,你对CGI程序处理HTTP请求头的理解完全正确——CGI规范里确实会把请求头转换成带HTTP_前缀的环境变量,比如请求头里的PATH,就会被转成HTTP_PATH环境变量,这个逻辑没毛病。

至于你问的核心问题:**非标准请求头Proxy会不会被转换为HTTP_PROXY环境变量?**答案是肯定的,这正是HTTPoxy漏洞的核心触发点!

CGI的转换规则其实很直白:

  • 不管是标准还是非标准的合法请求头名称(由字母、数字、连字符组成),都会先转成大写
  • 把请求头里的连字符替换成下划线
  • 最后加上HTTP_前缀作为环境变量名

所以当请求里带Proxy: 攻击者指定地址这个请求头时,CGI程序会直接把它转换成HTTP_PROXY环境变量,并且把请求头的值赋值给这个变量。

而问题就出在很多编程语言的HTTP客户端库上——比如Python早期的urllib、部分PHP的HTTP工具,会默认读取系统的HTTP_PROXY环境变量作为请求代理。如果你的后端CGI代码刚好在用这类库发起请求,就会乖乖把请求转发到攻击者指定的代理地址,导致请求被劫持、数据泄露,这就是HTTPoxy漏洞的完整触发链。

内容的提问来源于stack exchange,提问作者KESHAV K

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 09:36:37