hacktricks/mobile-pentesting/ios-pentesting/ios-universal-links.md
2024-02-11 02:13:58 +00:00

7 KiB

iOS Universal Links

Jifunze kuhusu kudukua AWS kutoka mwanzo hadi kuwa bingwa na htARTE (HackTricks AWS Red Team Expert)!

Njia nyingine za kusaidia HackTricks:

Utangulizi

Viungo vya kawaida hutoa uzoefu wa kuhamisha moja kwa moja kwa watumiaji kwa kufungua maudhui kwenye programu, bila haja ya kuhamishiwa kwa Safari. Viungo hivi ni pekee na salama, kwani haviwezi kudaiwa na programu nyingine. Hii inahakikishwa kwa kuweka faili ya JSON ya apple-app-site-association kwenye saraka ya mizizi ya wavuti, ikithibitisha kiunga kinachoweza kuthibitishwa kati ya wavuti na programu. Katika hali ambapo programu haijasanidiwa, Safari itachukua na kumwongoza mtumiaji kwenye ukurasa wa wavuti, ikiendeleza uwepo wa programu.

Kwa wataalamu wa uchunguzi wa kuingilia, faili ya apple-app-site-association ni ya kipekee kwani inaweza kufichua njia nyeti, ikiwa ni pamoja na zile zinazohusiana na vipengele visivyotolewa.

Uchambuzi wa Uhalali wa Kikoa Kinachohusishwa

Wabunifu huruhusu Viungo vya Kawaida kwa kusanidi Vikoa Vinavyohusiana katika kichupo cha Uwezo cha Xcode au kwa kuchunguza faili ya .entitlements. Kila kikoa kinafungwa na applinks:. Kwa mfano, usanidi wa Telegram unaweza kuonekana kama ifuatavyo:

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

Kwa ufahamu kamili zaidi, tazama Hati za Maendeleo ya Apple zilizohifadhiwa.

Ikiwa unafanya kazi na programu iliyopangwa, ruhusu zinaweza kuchimbwa kama ilivyoelezwa katika mwongozo huu.

Kupata Faili ya Apple App Site Association

Faili ya apple-app-site-association inapaswa kupatikana kutoka kwenye seva kwa kutumia kikoa kilichotajwa katika ruhusu. Hakikisha faili inapatikana kupitia HTTPS moja kwa moja kwenye https://<kikoa>/apple-app-site-association. Zana kama Apple App Site Association (AASA) Validator inaweza kusaidia katika mchakato huu.

Kushughulikia Viungo vya Universal katika Programu

Programu lazima iwekeze njia maalum za kushughulikia viungo vya universal kwa usahihi. Njia kuu ya kutafuta ni application:continueUserActivity:restorationHandler:. Ni muhimu kwamba mpango wa URL unaoshughulikiwa ni HTTP au HTTPS, kwani vinginevyo hautasaidiwa.

Kuhalalisha Njia ya Kukabiliana na Data

Wakati kiungo cha universal kinapofungua programu, kitu cha NSUserActivity kinapitishwa kwenye programu na URL. Kabla ya kusindika URL hii, ni muhimu kuhalalisha na kusafisha ili kuzuia hatari za usalama. Hapa kuna mfano katika Swift unaoonyesha mchakato huu:

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
}

URLs zinapaswa kuchambuliwa na kuthibitishwa kwa uangalifu, haswa ikiwa zina vigezo, ili kujilinda dhidi ya uwezekano wa udanganyifu au data iliyo na kasoro. API ya NSURLComponents ni muhimu kwa kusudi hili, kama inavyoonyeshwa hapa chini:

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
}
}

Kupitia usanidinuru na uthibitisho wa bidii, watengenezaji wanaweza kuhakikisha kuwa viungo vya kawaida vinaboresha uzoefu wa mtumiaji wakati wa kudumisha viwango vya usalama na faragha.

Marejeo

Jifunze kuhusu kudukua AWS kutoka sifuri hadi shujaa na htARTE (HackTricks AWS Red Team Expert)!

Njia nyingine za kusaidia HackTricks: