這篇文章主要介紹了Jenkins任意文件讀取漏洞的示例分析,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
建網站原本是網站策劃師、網絡程序員、網頁設計師等,應用各種網絡程序開發技術和網頁設計技術配合操作的協同工作。創新互聯專業提供做網站、網站建設,網頁設計,網站制作(企業站、自適應網站建設、電商門戶網站)等服務,從網站深度策劃、搜索引擎友好度優化到用戶體驗的提升,我們力求做到極致!
漏洞編號:CVE-2018-1999002
漏洞等級:高危
Jenkins 7 月 18 日的安全通告修復了多個漏洞,其中 SECURITY-914 是由 Orange 挖出的 Jenkins 未授權任意文件讀取漏洞。
騰訊安全云鼎實驗室安全研究人員對該漏洞進行分析發現,利用這個漏洞,攻擊者可以讀取 Windows 服務器上的任意文件,對于 Linux,在特定條件下也可以進行文件讀取。利用文件讀取漏洞,攻擊者可以獲取到 Jenkins 的憑證信息,從而造成敏感信息泄露。另外,在很多時候,Jenkins 的部分憑證和其內用戶的帳號密碼相同,獲取到憑證信息后也可以直接登錄 Jenkins 進行命令執行操作等。
Jenkins 在處理請求的時候是通過 Stapler 進行處理的,Stapler 是一個 Java Web 框架。查看 web.xml 可知,Stapler 攔截了所有請求:
單步跟入 hudson.util.PluginServletFilter,最后會跟到 jenkins\core\src\main\java\hudson\Plugin.java 的 doDynamic 方法:
可以發現,Jenkins 在 serve /plugin/SHORTNAME 這個 URL 的時候,調用的是 StaplerResponse 的 serveLocalizedFile 方法處理靜態文件的,繼續跟入這個方法:
其中 request.getLocale() 是 jetty-server-9.4.5.v20170502-sources.jar!\org\eclipse\jetty\server\Request.java 內的,其實現為:
非常明顯,Jetty 在獲取 Locale 的時候直接從 HTTP Headers 里取出 Accept-Language 頭,用 - 分割后返回了一個 Locale 對象。也就是我傳入Accept-Language: ../../../aaaa-bbbbbb 時,那么我將會得到一個 Locale("../../../aaaa", "BBBBBB")對象。
最后到跟入stapler-1.254-sources.jar!\org\kohsuke\stapler\Stapler.java:
我們可以發現,Stapler 首先將后綴名單獨取出,接著將 Jenkins 目錄和傳入的 locale 的 language 以及后綴名拼接,然后打開這個路徑。那么攻擊者只需要構造出如下 HTTP 請求即可造成文件讀取:
最后 URL 拼接的現場為:
在 Windows 下,不存在的目錄可以通過 ../ 遍歷過去的,而對于 Linux 則不行。那么這個漏洞在 Windows 下是可以任意文件讀取的,而在 Linux 下則需要在 Jenkins plugins 目錄下存在一個名字中存在 _ 的目錄才可以。
一般來說,文件讀取漏洞很難轉化為命令執行,對于 Jenkins 也是如此。不過 Jenkins 有一個 Credentials 模塊,這個模塊儲存了 Jenkins 的一些憑證信息,很多時候,其憑證的帳號密碼是和 Jenkins 的帳號密碼相同的。無論如何,在成功利用文件讀取漏洞后,都要將憑證信息讀取并解密,以收集更多的信息。
如果我們想獲取 Jenkins 的憑證信息的話,需要以下幾個文件:
· credentials.xml
· secrets/hudson.util.Secret
· secrets/master.key
很幸運的是這幾個文件我們都可以利用文件讀取漏洞讀取出來。在 Shodan 上嘗試獲取國外 real world 的 Jenkins 的帳號密碼:
當然,獲取到的帳號密碼是不能直接登錄的,但是稍微修改一下用戶名就可以成功的登錄進去了:
雖然這個漏洞危害較大,但是不必太過擔心,因為默認安裝 Jenkins 的時候匿名用戶是沒有可讀權限的。并且此漏洞在 Linux 上被利用的可能性較小。以下為推薦的修復方案:
?針對此高危漏洞利用,騰訊云網站管家 WAF AI 引擎可檢測并攔截,如果需要,可在騰訊云官網進一步了解
?在全局安全配置中將匿名用戶的可讀權限去掉
?升級到最新版本的 Jenkins(2.121.2)
?使用 Linux
感謝你能夠認真閱讀完這篇文章,希望小編分享的“Jenkins任意文件讀取漏洞的示例分析”這篇文章對大家有幫助,同時也希望大家多多支持創新互聯,關注創新互聯行業資訊頻道,更多相關知識等著你來學習!
當前題目:Jenkins任意文件讀取漏洞的示例分析
網站路徑:http://vcdvsql.cn/article46/gjighg.html
成都網站建設公司_創新互聯,為您提供網站內鏈、動態網站、網站排名、用戶體驗、網站收錄、品牌網站設計
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯