{{#include ../../banners/hacktricks-training.md}} **Αυτή είναι μια περίληψη της ανάρτησης [https://census-labs.com/news/2021/04/14/whatsapp-mitd-remote-exploitation-CVE-2021-24027/](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 ``` ### 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 PoC ``` {{#include ../../banners/hacktricks-training.md}}