PHP、Go、Python等开启CGI(Client)模式的脚本语言
在CGI(RFC 3875)的模式的时候,server 会把请求中的 Header, 加上 HTTP_ 前缀, 注册为环境变量,且重名变量会被覆盖污染,若该变量被脚本调用,即可利用,该漏洞在15年前在LWP中已被发现并修复http://www.nntp.perl.org/group/perl.libwww/2001/03/msg2249.html。
如控制 HTTPHOST 进行 URL 跳转,或者直接控制 HTTP_PROXY 让流量到代理服务器中转,将 HTTP 控制进入环境变量进行shellshock攻击等,所以,所有 HTTP_ 开头的环境变量在CGI模式下都是不可信不安全的。
最为有效的方式就是在脚本调用变量之前及时阻断或者限制内部调用时的可信变量
Nginx在配置中加入
fastcgi_param HTTP_PROXY "";
欢迎光临 Discuz! Board (http://123.59.83.120:8080/) | Powered by Discuz! X3.2 |