iOS UIActivity Sharing
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Από το iOS 6 και μετά, οι εφαρμογές τρίτων έχουν ενεργοποιηθεί να μοιράζονται δεδομένα όπως κείμενο, διευθύνσεις URL ή εικόνες χρησιμοποιώντας μηχανισμούς όπως το AirDrop, όπως περιγράφεται στον οδηγό Επικοινωνίας Μεταξύ Εφαρμογών της Apple. Αυτή η δυνατότητα εκδηλώνεται μέσω ενός συστήματος sheet δραστηριότητας κοινής χρήσης που εμφανίζεται κατά την αλληλεπίδραση με το κουμπί "Κοινή Χρήση".
Μια ολοκληρωμένη απαρίθμηση όλων των ενσωματωμένων επιλογών κοινής χρήσης είναι διαθέσιμη στο UIActivity.ActivityType. Οι προγραμματιστές μπορεί να επιλέξουν να αποκλείσουν συγκεκριμένες επιλογές κοινής χρήσης αν τις θεωρούν ακατάλληλες για την εφαρμογή τους.
Πρέπει να δοθεί προσοχή σε:
Τη φύση των δεδομένων που μοιράζονται.
Την ένταξη προσαρμοσμένων δραστηριοτήτων.
Τον αποκλεισμό ορισμένων τύπων δραστηριότητας.
Η κοινή χρήση διευκολύνεται μέσω της δημιουργίας ενός UIActivityViewController
, στον οποίο περνιούνται τα αντικείμενα που προορίζονται για κοινή χρήση. Αυτό επιτυγχάνεται καλώντας:
Οι προγραμματιστές θα πρέπει να εξετάσουν προσεκτικά το UIActivityViewController
για τις δραστηριότητες και τις προσαρμοσμένες δραστηριότητες με τις οποίες αρχικοποιείται, καθώς και για οποιουσδήποτε καθορισμένους excludedActivityTypes
.
Τα παρακάτω στοιχεία είναι κρίσιμα κατά την λήψη δεδομένων:
Η δήλωση προσαρμοσμένων τύπων εγγράφων.
Η καθορισμένη τύποι εγγράφων που μπορεί να ανοίξει η εφαρμογή.
Η επαλήθευση της ακεραιότητας των ληφθέντων δεδομένων.
Χωρίς πρόσβαση στον πηγαίο κώδικα, μπορεί κανείς να εξετάσει το Info.plist
για κλειδιά όπως UTExportedTypeDeclarations
, UTImportedTypeDeclarations
και CFBundleDocumentTypes
για να κατανοήσει τους τύπους εγγράφων που μπορεί να χειριστεί και να δηλώσει μια εφαρμογή.
Ένας συνοπτικός οδηγός για αυτά τα κλειδιά είναι διαθέσιμος στο Stackoverflow, τονίζοντας τη σημασία του καθορισμού και της εισαγωγής UTIs για αναγνώριση σε επίπεδο συστήματος και της συσχέτισης τύπων εγγράφων με την εφαρμογή σας για ενσωμάτωση στο διάλογο "Άνοιγμα με".
Για να δοκιμάσετε την αποστολή δραστηριοτήτων, μπορεί κανείς να:
Συνδέσει τη μέθοδο init(activityItems:applicationActivities:)
για να καταγράψει τα στοιχεία και τις δραστηριότητες που κοινοποιούνται.
Εντοπίσει τις αποκλεισμένες δραστηριότητες παρεμβαίνοντας στην ιδιότητα excludedActivityTypes
.
Για τη λήψη στοιχείων, περιλαμβάνει:
Κοινοποίηση ενός αρχείου με την εφαρμογή από άλλη πηγή (π.χ., AirDrop, email) που προκαλεί το διάλογο "Άνοιγμα με...".
Συνδέοντας application:openURL:options:
μεταξύ άλλων μεθόδων που εντοπίστηκαν κατά τη διάρκεια της στατικής ανάλυσης για να παρατηρήσετε την αντίδραση της εφαρμογής.
Χρησιμοποιώντας κακώς διαμορφωμένα αρχεία ή τεχνικές fuzzing για να αξιολογήσετε την ανθεκτικότητα της εφαρμογής.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)