0

我没有得到诸如 CVE-2014-6271之类的shellshock bash 错误的根本原因。
据我了解,如果应用程序数据包标头中存在恶意代码,则会发生 shellshock。
例如,如果 HTTP 标头包含http-header[Cookie] = () { :; }; ping 192.168.0.1然后 ping 到 192.168.0.1。
但是,HTTP 标头只需要设置字符串变量。为什么 Apache 会运行 bash 脚本?
Apache HTTP 标头解析器是由 bash shell 脚本组成的吗?
谢谢!:)

4

1 回答 1

2

C 的system()函数,用于执行任意外部命令,将其参数传递给/bin/sh进行解析。(这是由 POSIX 指定的。)

/bin/sh,在 Linux 系统上,通常是指向/bin/bash.

如果 Apache 通过 调用任何外部程序system(),并且攻击者已经能够将恶意代码插入到任何环境变量中,它将被传递到/bin/bash.

于 2014-09-29T22:59:32.133 回答