服务器被黑,apache2 日志包含使用 bash 命令获取

Server hacked, apache2 log contains get with a bash command

今天,我在 access.log 中看到了这一行:

xxx.xxx.xxx.xx - - (10/Dec/2016:xx:xx:xx +xxxx] "GET / HTTP/1.0" 200 XXXXX "-" "() { :;}; /bin/bash ... "

我不明白这是如何工作的,什么是“() { :;}; /bin/bash ...”访问日志子字符串?这不是 get 参数吗?黑客是如何在get请求中注入这个字符串的?

我想重现一个类似的get来检查/bin/bash是否已经执行,例如:

xxx.xxx.xxx.xx - - (10/Dec/2016:xx:xx:xx +xxxx] "GET / HTTP/1.0" 200 XXXXX "-" "() { :;}; /bin/bash -c \"touch /tmp/foo.txt \""

这看起来像 shellshock/bashdoor 错误。