9 月 19 日,腾讯云安全中心监测到 Apache Tomcat 修复了2个严重级别的漏洞, 分别为: 信息泄露漏洞(CVE-2017-12616)、远程代码执行漏洞(CVE-2017-12615
9 月 19 日,騰訊云安全中心監(jiān)測(cè)到 ?Apache Tomcat 修復(fù)了2個(gè)嚴(yán)重級(jí)別的漏洞, 分別為: 信息泄露漏洞(CVE-2017-12616)、遠(yuǎn)程代碼執(zhí)行漏洞(CVE-2017-12615),在某些場(chǎng)景下,攻擊者將分別能通過這兩個(gè)漏洞,獲取用戶服務(wù)器上 JSP 文件的源代碼,或是通過精心構(gòu)造的攻擊請(qǐng)求,向用戶服務(wù)器上傳惡意 JSP 文件,通過上傳的 JSP 文件 ,可在用戶服務(wù)器上執(zhí)行任意代碼。 ? ??
?
云鼎實(shí)驗(yàn)室通過對(duì)于漏洞描述,搭建漏洞環(huán)境,并對(duì)其進(jìn)行復(fù)現(xiàn)。此漏洞為高危漏洞,即使是非默認(rèn)配置,但是一旦存在漏洞,那么攻擊者可以成功上傳 webshell,并控制服務(wù)器。
?
復(fù)現(xiàn)
?
根據(jù)描述,在 Windows 服務(wù)器下,將 readonly 參數(shù)設(shè)置為 false 時(shí),即可通過 PUT 方式創(chuàng)建一個(gè) JSP 文件,并可以執(zhí)行任意代碼。 ??
通過閱讀 conf/web.xml 文件,可以發(fā)現(xiàn): ?
?
默認(rèn) readonly 為 true,當(dāng) readonly 設(shè)置為 false 時(shí),可以通過 PUT / DELETE 進(jìn)行文件操控。 ?
配置 readonly 為 false:
?
啟動(dòng) Tomcat,利用 PUT 請(qǐng)求創(chuàng)建文件:
?
提示 404。通過描述中的 Windows 受影響,可以結(jié)合 Windows 的特性。其一是 NTFS 文件流,其二是文件名的相關(guān)限制(如 Windows 中文件名不能以空格結(jié)尾)來(lái)繞過限制:?
?
?
?
訪問發(fā)現(xiàn)可以正常輸出:?
?
?
分析
Tomcat 的 Servlet 是在 conf/web.xml 配置的,通過配置文件可知,當(dāng)后綴名為 .jsp 和 .jspx 的時(shí)候,是通過JspServlet處理請(qǐng)求的: ?
?
可以得知,“1.jsp ”(末尾有一個(gè)和空格)并不能匹配到?JspServlet,而是會(huì)交由DefaultServlet去處理。當(dāng)處理 PUT 請(qǐng)求時(shí):
?
會(huì)調(diào)用resources.rebind:
?
dirContext?為FileDirContext:
?
調(diào)用?rebind創(chuàng)建文件:
?
又由于 Windows 不允許“ ”作為文件名結(jié)尾,所以會(huì)創(chuàng)建一個(gè)?.jsp 文件,導(dǎo)致代碼執(zhí)行。
?
Bypass 分析
?
然而,經(jīng)過黑盒測(cè)試,當(dāng) PUT 地址為/1.jsp/時(shí),仍然會(huì)創(chuàng)建 JSP,會(huì)影響 Linux 和 Windows 服務(wù)器,并且 Bypass 了之前的補(bǔ)丁,分析如下。?
?
在進(jìn)入 bind 函數(shù)時(shí),會(huì)聲明一個(gè) File 變量:
?
進(jìn)入 File 后,會(huì)對(duì) name 進(jìn)行 normalize
?
最后得到的 path 就是沒有最后?/?的 path 了:
?
?
影響?
?
由于存在去掉最后的 / 的特性,那么這個(gè)漏洞自然影響 Linux 以及 Windows 版本。而且經(jīng)過測(cè)試,這個(gè)漏洞影響全部的 Tomcat 版本,從 5.x 到 9.x 無(wú)不中槍。目前來(lái)說(shuō),最好的解決方式是將 conf/web.xml 中對(duì)于 DefaultServlet 的 readonly 設(shè)置為 true,才能防止漏洞。
?
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的9 月 19 日,腾讯云安全中心监测到 Apache Tomcat 修复了2个严重级别的漏洞, 分别为: 信息泄露漏洞(CVE-2017-12616)、远程代码执行漏洞(CVE-2017-12615的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: EasyJoyStick使用以及两种操作
- 下一篇: Unity3D 自动打包整个项目(以As