iOS Universal Links

Вивчайте хакінг AWS від нуля до героя з htARTE (HackTricks AWS Red Team Expert)!

Інші способи підтримки HackTricks:

Вступ

Універсальні посилання пропонують безшовний досвід перенаправлення для користувачів, відкриваючи вміст безпосередньо в додатку, обходячи потребу у перенаправленні Safari. Ці посилання є унікальними та безпечними, оскільки їх не можуть використовувати інші додатки. Це забезпечується шляхом розміщення файлу JSON apple-app-site-association в кореневому каталозі веб-сайту, встановлюючи перевірене посилання між веб-сайтом та додатком. У випадках, коли додаток не встановлено, Safari бере на себе керування та направляє користувача на веб-сторінку, зберігаючи присутність додатка.

Для тестувальників на проникнення файл apple-app-site-association є особливо цікавим, оскільки він може розкрити чутливі шляхи, можливо, пов'язані з невипущеними функціями.

Аналіз Пов'язаних Доменів Уповноважень

Розробники активують Універсальні Посилання, налаштовуючи Пов'язані Домени во вкладці Можливості Xcode або інспектуючи файл .entitlements. Кожен домен починається з applinks:. Наприклад, конфігурація Telegram може виглядати наступним чином:

<key>com.apple.developer.associated-domains</key>
<array>
<string>applinks:telegram.me</string>
<string>applinks:t.me</string>
</array>

Для отримання більш детальної інформації, звертайтеся до архівної документації розробника Apple.

Якщо ви працюєте з скомпільованим додатком, entitlements можна видобути, як описано в цьому керівництві.

Отримання файлу Apple App Site Association

Файл apple-app-site-association слід отримати з сервера, використовуючи домени, вказані в entitlements. Переконайтеся, що файл доступний через HTTPS безпосередньо за адресою https://<domain>/apple-app-site-association. Інструменти, такі як Apple App Site Association (AASA) Validator, можуть допомогти у цьому процесі.

Обробка універсальних посилань у додатку

Додаток повинен реалізувати конкретні методи для правильної обробки універсальних посилань. Основний метод, на який варто звернути увагу, - application:continueUserActivity:restorationHandler:. Важливо, щоб схема URL, яку обробляється, була HTTP або HTTPS, оскільки інші не підтримуються.

Перевірка методу обробки даних

Коли універсальне посилання відкриває додаток, об'єкт NSUserActivity передається додатку разом з URL. Перед обробкою цього URL важливо перевірити та очистити його для запобігання ризикам безпеки. Ось приклад на Swift, який демонструє цей процес:

func application(_ application: UIApplication, continue userActivity: NSUserActivity,
restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool {
// Check for web browsing activity and valid URL
if userActivity.activityType == NSUserActivityTypeBrowsingWeb, let url = userActivity.webpageURL {
application.open(url, options: [:], completionHandler: nil)
}

return true
}

URL-адреси слід ретельно аналізувати та перевіряти, особливо якщо вони містять параметри, щоб захиститися від можливого підроблення або некоректних даних. API NSURLComponents корисний для цієї цілі, як показано нижче:

func application(_ application: UIApplication,
continue userActivity: NSUserActivity,
restorationHandler: @escaping ([Any]?) -> Void) -> Bool {
guard userActivity.activityType == NSUserActivityTypeBrowsingWeb,
let incomingURL = userActivity.webpageURL,
let components = NSURLComponents(url: incomingURL, resolvingAgainstBaseURL: true),
let path = components.path,
let params = components.queryItems else {
return false
}

if let albumName = params.first(where: { $0.name == "albumname" })?.value,
let photoIndex = params.first(where: { $0.name == "index" })?.value {
// Process the URL with album name and photo index

return true

} else {
// Handle invalid or missing parameters

return false
}
}

Через ділову конфігурацію та перевірку, розробники можуть забезпечити, що універсальні посилання покращують користувацький досвід, зберігаючи стандарти безпеки та конфіденційності.

Посилання

Вивчайте хакінг AWS від нуля до героя з htARTE (HackTricks AWS Red Team Expert)!

Інші способи підтримки HackTricks:

Last updated