課程介紹
Shellshock,又稱Bashdoor,是在Unix中廣泛使用的Bash shell中的一個安全漏洞,首次于2014年9月24日公開。許多互聯網守護進程,如網頁服務器,使用bash來處理某些命令,從而允許攻擊者在易受攻擊的Bash版本上執行任意代碼。這可使攻擊者在未授權的情況下訪問計算機系統。
漏洞原因:?目前的Bash使用的環境變量是通過函數名稱來調用的,導致漏洞出問題是以“() {”開頭定義的環境變量在命令ENV中解析成函數后,Bash執行并未退出,而是繼續解析并執行shell命令。而其核心的原因在于在輸入的過濾中沒有嚴格限制邊界,也沒有做出合法化的參數判斷。
驗證方法
目前的Bash腳本是以通過導出環境變量的方式支持自定義函數,也可將自定義的Bash函數傳遞給子相關進程。一般函數體內的代碼不會被執行,但此漏洞會錯誤的將“{}”花括號外的命令進行執行。當執行CGI 時會調用Bash將Referer、host、UserAgent、header等作為環境變量進行處理。
本地檢測
在Bash Shell下執行以下代碼:
env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
如果輸出:
vulnerable
this is a test
表示存在漏洞。 |