我没有找到 shellshock bash错误的根本原因,例如CVE-2014-6271。
据我所知,如果应用程序包头内有恶意代码,就会发生shellshock。
例如,如果HTTP标头包含 http-header [Cookie] =(){:; }; ping 192.168.0.1 然后它ping到192.168.0.1。
但是,HTTP标头只需要设置字符串变量。为什么Apache运行bash脚本?
Apache HTTP头解析器是否由bash shell脚本组成?
谢谢! :)
答案 0 :(得分:2)
用于执行任意外部命令的C system()
函数将其参数传递给/bin/sh
进行解析。 (这由POSIX指定。)
/bin/sh
通常是/bin/bash
的符号链接。
如果Apache通过system()
调用任何外部程序,并且攻击者能够将恶意代码插入任何环境变量,则会将其传递给/bin/bash
。