iOS UIActivity Sharing
Reading time: 4 minutes
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
- Ελέγξτε τα σχέδια συνδρομής!
- Εγγραφείτε στην 💬 ομάδα Discord ή στην ομάδα telegram ή ακολουθήστε μας στο Twitter 🐦 @hacktricks_live.
- Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα HackTricks και HackTricks Cloud github repos.
UIActivity Sharing Simplified
Από το iOS 6 και μετά, οι εφαρμογές τρίτων έχουν τη δυνατότητα να μοιράζονται δεδομένα όπως κείμενα, URLs ή εικόνες χρησιμοποιώντας μηχανισμούς όπως το AirDrop, όπως περιγράφεται στον οδηγό Inter-App Communication της Apple. Αυτή η δυνατότητα εκδηλώνεται μέσω ενός sheet δραστηριότητας κοινής χρήσης που εμφανίζεται κατά την αλληλεπίδραση με το κουμπί "Κοινή χρήση".
Μια ολοκληρωμένη απαρίθμηση όλων των ενσωματωμένων επιλογών κοινής χρήσης είναι διαθέσιμη στο UIActivity.ActivityType. Οι προγραμματιστές μπορούν να επιλέξουν να αποκλείσουν συγκεκριμένες επιλογές κοινής χρήσης αν τις θεωρούν ακατάλληλες για την εφαρμογή τους.
How to Share Data
Πρέπει να δοθεί προσοχή σε:
- Τη φύση των δεδομένων που μοιράζονται.
- Την ένταξη προσαρμοσμένων δραστηριοτήτων.
- Τον αποκλεισμό ορισμένων τύπων δραστηριοτήτων.
Η κοινή χρήση διευκολύνεται μέσω της δημιουργίας ενός UIActivityViewController
, στον οποίο περνιούνται τα αντικείμενα που προορίζονται για κοινή χρήση. Αυτό επιτυγχάνεται καλώντας:
$ rabin2 -zq Telegram\ X.app/Telegram\ X | grep -i activityItems
0x1000df034 45 44 initWithActivityItems:applicationActivities:
Οι προγραμματιστές θα πρέπει να εξετάσουν προσεκτικά το UIActivityViewController
για τις δραστηριότητες και τις προσαρμοσμένες δραστηριότητες με τις οποίες έχει αρχικοποιηθεί, καθώς και για οποιουσδήποτε καθορισμένους excludedActivityTypes
.
Πώς να Λάβετε Δεδομένα
Τα παρακάτω στοιχεία είναι κρίσιμα κατά την λήψη δεδομένων:
- Η δήλωση προσαρμοσμένων τύπων εγγράφων.
- Η καθορισμένη τύποι εγγράφων που μπορεί να ανοίξει η εφαρμογή.
- Η επαλήθευση της ακεραιότητας των ληφθέντων δεδομένων.
Χωρίς πρόσβαση στον πηγαίο κώδικα, μπορεί κανείς να εξετάσει το Info.plist
για κλειδιά όπως UTExportedTypeDeclarations
, UTImportedTypeDeclarations
, και CFBundleDocumentTypes
για να κατανοήσει τους τύπους εγγράφων που μπορεί να χειριστεί και να δηλώσει μια εφαρμογή.
Ένας συνοπτικός οδηγός για αυτά τα κλειδιά είναι διαθέσιμος στο Stackoverflow, τονίζοντας τη σημασία του καθορισμού και της εισαγωγής UTIs για αναγνώριση σε επίπεδο συστήματος και της συσχέτισης τύπων εγγράφων με την εφαρμογή σας για ενσωμάτωση στο διάλογο "Άνοιγμα με...".
Προσέγγιση Δυναμικής Δοκιμής
Για να δοκιμάσετε την αποστολή δραστηριοτήτων, μπορείτε να:
- Συνδέσετε τη μέθοδο
init(activityItems:applicationActivities:)
για να καταγράψετε τα στοιχεία και τις δραστηριότητες που κοινοποιούνται. - Εντοπίσετε τις αποκλεισμένες δραστηριότητες παρεμβαίνοντας στην ιδιότητα
excludedActivityTypes
.
Για λήψη στοιχείων, περιλαμβάνει:
- Κοινοποίηση ενός αρχείου με την εφαρμογή από άλλη πηγή (π.χ., AirDrop, email) που προκαλεί το διάλογο "Άνοιγμα με...".
- Συνδέοντας
application:openURL:options:
μεταξύ άλλων μεθόδων που εντοπίστηκαν κατά τη διάρκεια της στατικής ανάλυσης για να παρατηρήσετε την αντίδραση της εφαρμογής. - Χρησιμοποιώντας κακώς διαμορφωμένα αρχεία ή τεχνικές fuzzing για να αξιολογήσετε την ανθεκτικότητα της εφαρμογής.
Αναφορές
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
- Ελέγξτε τα σχέδια συνδρομής!
- Εγγραφείτε στην 💬 ομάδα Discord ή στην ομάδα telegram ή ακολουθήστε μας στο Twitter 🐦 @hacktricks_live.
- Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα HackTricks και HackTricks Cloud github repos.