iOS Universal Links
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)
Універсальні посилання пропонують безшовний редирект для користувачів, безпосередньо відкриваючи контент в додатку, обходячи необхідність редиректу через Safari. Ці посилання є унікальними та безпечними, оскільки їх не можуть вимагати інші додатки. Це забезпечується розміщенням файлу apple-app-site-association
у кореневому каталозі вебсайту, встановлюючи перевіряємий зв'язок між вебсайтом та додатком. У випадках, коли додаток не встановлено, Safari візьме на себе управління і перенаправить користувача на вебсторінку, зберігаючи присутність додатку.
Для тестувальників на проникнення файл apple-app-site-association
є особливим інтересом, оскільки він може розкрити чутливі шляхи, потенційно включаючи ті, що стосуються не випущених функцій.
Розробники активують універсальні посилання, налаштовуючи Асоційовані домени у вкладці можливостей Xcode або перевіряючи файл .entitlements
. Кожен домен має префікс applinks:
. Наприклад, конфігурація Telegram може виглядати наступним чином:
Для більш детальної інформації зверніться до архівної документації розробника Apple.
Якщо ви працюєте з скомпільованим додатком, права доступу можна витягти, як описано в цьому посібнику.
Файл apple-app-site-association
слід отримати з сервера, використовуючи домени, зазначені в правах доступу. Переконайтеся, що файл доступний через HTTPS безпосередньо за адресою https://<domain>/apple-app-site-association
. Інструменти, такі як Apple App Site Association (AASA) Validator, можуть допомогти в цьому процесі.
Додаток повинен реалізувати специфічні методи для правильної обробки універсальних посилань. Основний метод, на який слід звернути увагу, це application:continueUserActivity:restorationHandler:
. Важливо, щоб схема URL, що обробляються, була HTTP або HTTPS, оскільки інші не підтримуються.
Коли універсальне посилання відкриває додаток, об'єкт NSUserActivity
передається додатку з URL. Перед обробкою цього URL важливо валідувати та очищати його, щоб запобігти ризикам безпеки. Ось приклад на Swift, який демонструє цей процес:
URLs слід ретельно аналізувати та перевіряти, особливо якщо вони містять параметри, щоб захиститися від потенційного спуфінгу або неправильно сформованих даних. API NSURLComponents
корисний для цієї мети, як показано нижче:
Через дбайливу конфігурацію та валідацію розробники можуть забезпечити, що універсальні посилання покращують користувацький досвід, зберігаючи при цьому стандарти безпеки та конфіденційності.
GetUniversal.link: Допомагає спростити тестування та управління універсальними посиланнями вашого додатку та файлом AASA. Просто введіть свій домен, щоб перевірити цілісність файлу AASA, або використовуйте спеціальну панель для легкого тестування поведінки посилань. Цей інструмент також допомагає визначити, коли Apple наступного разу проіндексує ваш файл AASA.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)