mobile-android
Skill1 starsChanged 11 days agoMITView on GitHub
Android application security testing for authorized engagements: APK decompilation and static analysis, certificate pinning bypass, exported content provider abuse, intent-based attack surface. Keywords: Android, APK, decompile, smali, Frida, certificate pinning, content provider, intent, deep link, jadx, mobsf. Do NOT use for iOS (see mobile-ios), or for a backend API the app merely talks to — once an endpoint is identified, hand it to standard web/API testing skills; this skill covers the client binary and on-device attack surface only.
1 other project uses a version of this.
Adopted by
Most recently taken up by
- wrsilva/reis-mobiletheir own version, first seen Nov 8, 2026
Other versions1 project uses a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 1
- wrsilva/reis-mobile★ 8same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository124 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- ai-agent-reconSkill
- ai-supply-chainSkill
- exfiltration-via-aiSkill
- indirect-injectionSkill
- llm-fuzzingSkill
- prompt-injectionSkill
- rag-poisoningSkill
- tool-abuseSkill
- chain-analysisSkill
- chain-auth-to-takeoverSkill
- chain-customSkill
- chain-graph-walkSkill
- chain-idor-to-mass-dataSkill
- chain-info-to-exploitSkill
- chain-multi-appSkill
- chain-ssrf-to-cloudSkill
- chain-web-to-rceSkill
- chain-xss-to-account-takeoverSkill
- email-securitySkill
- engagement-flowSkill
- finding-disciplineSkill
- http-headers-securitySkill
- oob-interactionsSkill
- opsec-disciplineSkill
- research-firstSkill
- scope-disciplineSkill
- scope-importSkill
- session-contextSkill
- 2fa-bypassSkill
- api-abuseSkill
- auth-bypassSkill
- broken-access-controlSkill
- business-logicSkill
- cache-poisoningSkill
- clickjackingSkill
- corsSkill
- credential-testingSkill
- crlf-injectionSkill
- cryptographic-oracleSkill
- csrfSkill
- css-injectionSkill
- data-exfiltration-testSkill
- deserializationSkill
- email-injectionSkill
- file-uploadSkill
- fuzzingSkill
- graphqlSkill
- grpcSkill
- host-headerSkill
- http-smugglingSkill
- idorSkill
- info-disclosureSkill
- jwtSkill
- lateral-movementSkill
- lfi-rfiSkill
- mass-assignmentSkill
- oauthSkill
- open-redirectSkill
- parameter-pollutionSkill
- The first 60 shown.
The file
Files
Signals
.apkfile provided in scope, or app downloadable from Play Store/APK mirror for an in-scope target.- App makes API calls to an in-scope backend (identify via static strings / dynamic traffic capture).
- App exports activities/providers/services (
exported="true"in manifest) or registers deep link schemes.
Prerequisites
- Written authorization naming the specific app package/bundle ID in scope.
- Rooted Android device or emulator (AVD with root, or Magisk-rooted physical device/Genymotion),
adbaccess. jadx,apktool,frida+frida-serveron device,objection,MobSF(for automated static baseline),drozer.
Methodology
1. Static analysis — decompile and read the manifest
apktool d target.apk -o target_apktool
jadx -d target_jadx target.apk
cat target_apktool/AndroidManifest.xml | grep -i "exported\|permission\|scheme"
# Automated baseline (SAST + known weaknesses)
# upload target.apk to a local MobSF instance: http://localhost:80002. Identify exported attack surface
grep -A2 'exported="true"' target_apktool/AndroidManifest.xml
# List installed app's exported components live on device
drozer console connect
dz> run app.package.attacksurface com.target.app
dz> run app.activity.info -a com.target.app
dz> run app.provider.info -a com.target.app3. Content provider abuse (SQL injection / path traversal / data leak)
dz> run app.provider.query content://com.target.app.provider/users --vertical
dz> run scanner.provider.injection -a com.target.app
dz> run scanner.provider.traversal -a com.target.app
# Direct query via adb
adb shell content query --uri content://com.target.app.provider/users4. Intent / deep link abuse
# Launch an exported activity directly, bypassing intended flow (e.g. auth bypass)
adb shell am start -n com.target.app/.AdminActivity
# Deep link fuzzing
adb shell am start -W -a android.intent.action.VIEW -d "targetapp://reset-password?token=../../admin" com.target.app5. Certificate pinning bypass (needed before intercepting HTTPS traffic)
frida-server & # on rooted device
objection -g com.target.app explore
# Inside objection
android sslpinning disable
# Or a universal Frida script
frida -U -f com.target.app -l frida-scripts/android-ssl-bypass.js --no-pause6. Dynamic traffic capture through Burp
# Set device proxy to Burp, install Burp CA, then run with pinning disabled
adb shell settings put global http_proxy 10.10.10.5:8080
# After pinning bypass, traffic flows through Burp for normal web/API testing7. Runtime manipulation / root & debug detection bypass
objection -g com.target.app explore
android root disable
android hooking list classes
android hooking search methods com.target.app isRootDetected8. Local data storage review
adb shell run-as com.target.app ls -la /data/data/com.target.app/
adb shell run-as com.target.app cat /data/data/com.target.app/shared_prefs/auth.xml
adb shell run-as com.target.app sqlite3 /data/data/com.target.app/databases/app.db ".dump"Tooling
jadx, apktool, Frida+frida-server, objection, drozer, MobSF, adb, Burp Suite.
Validation Gate
- Content provider/intent findings must show an actual data leak or state change achieved from an unprivileged app context (e.g. a second test app invoking the exported component), not just "exported=true in manifest."
- Pinning bypass success must be confirmed by observing decrypted traffic in Burp, not just "the Frida script ran without error."
- Capture the exact
adb/drozer/objectioncommand and output as evidence.
Gotchas
exported="true"on an activity/provider is sometimes intentional (e.g. share intents, deep links meant to be public) — confirm actual sensitive-data exposure before flagging.- Root detection and SSL pinning often layer multiple checks (native code, root cloaking checks) — a single bypass script may not defeat all of them; check
logcatfor crash/kill signals. - Testing against the Play Store production build vs. a client-provided debug build can yield very different results (ProGuard/R8 obfuscation, debuggable flag) — confirm which build is in scope.
- Modifying
adb shell settings put global http_proxypersists after testing — reset it when done.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

