
Android-Deeplink-, Intent- und WebView-Bridge-Bewertungshelfer für ethisches Hacken
Android-Bewertungshelfer für Deeplinks, Intents und WebView-Brücken
apk-interceptor ist eine portable Android-Test-APK für autorisierte Anwendungssicherheitsbewertungen. Sie hilft Sicherheitsingenieuren zu überprüfen, wie eine Android-App externe Einstiegspunkte wie benutzerdefinierte URI-Schemata, Deeplinks, exportierte Activities und WebView-JavaScript-Brücken verarbeitet.
Das Tool ist absichtlich eingeschränkt:
android.permission.INTERNETcontent://-Payload-Datei bereitBei der Sicherheitsbewertung von Android-Anwendungen müssen viele Erkenntnisse aus der statischen Analyse dennoch durch einen kleinen Proof of Concept auf dem Gerät bestätigt werden, bevor sie als bestätigt gelten können: Registrierung eines benutzerdefinierten URI-Schemas, Senden eines expliziten Intents, Bereitstellen einer lokalen content://-Payload oder Überprüfung, ob JavaScript eine WebView-Brücke erreichen kann.
Das Erstellen einer neuen Wegwerf-Test-App für jeden Fall ist wiederholt und fehleranfällig. Kleine Unterschiede in Manifesteinträgen, Authorities, URI-Grants, Paketnamen oder Intent-Konstruktion können die Verifizierung verlangsamen und die Reproduzierbarkeit der Ergebnisse erschweren.
apk-interceptor wurde erstellt, um diesen Bestätigungsschritt wiederholbar zu machen. Statt für jede Bewertung eine neue PoC-APK zu schreiben, bauen Sie dieses Tool mit dem autorisierten Schema oder der Anwendungs-ID, die Sie benötigen, führen den Test auf dem Gerät durch und halten den Workflow bewusst eingeschränkt: keine INTERNET-Berechtigung, keine externe Datenübertragung, keine Shell-Ausführung und keine Root-Abhängigkeit.
apk-interceptor ist für diese Bewertungsaufgaben nützlich:
| Szenario | Modul | Was es zu überprüfen hilft |
|---|---|---|
| Hijacking benutzerdefinierter URI-Schemata | Interceptor | Ob eine andere App dasselbe benutzerdefinierte Schema registrieren und Links empfangen kann |
| Deeplink-Parameterverarbeitung | Sender | Ob die bewertete App unsichere Query-/Path-Parameter akzeptiert |
| Exposition exportierter Activities | Sender | Ob eine exportierte Activity direkt von einer anderen App gestartet werden kann |
WebView-Brücken-Exposition über content:// | Payload + Sender | Ob eine lokale HTML-Payload eine WebView-JavaScript-Brücke erreichen kann |
| Syntaxprüfung lokaler Payloads | Payload | Ob Ihre HTML/JS-Payload im Selbsttest-WebView läuft |
Detaillierte Schwachstellen-Durchgänge:
content://Die App führt ein In-Memory-Bewertungsprotokoll für gesendete Intents, empfangene Deeplinks, Bridge-Callbacks, JavaScript-Ergebnisse und Fehler. Protokolle verschwinden, wenn der App-Prozess beendet wird. Da Protokolle nicht dauerhaft gespeichert werden, erfassen Sie Beweise mit Screenshots oder Bildschirmaufnahmen während der Arbeit.
apk-interceptor ist ein Bestätigungs-Tool, kein Entdeckungs- oder Exploit-Framework. Es setzt voraus, dass Sie bereits wissen, was zu testen ist (Schema, Activity-Klasse, Bridge-Name) aus der statischen Analyse, und bietet eine sichere, geräteseitige Möglichkeit, die Erreichbarkeit zu überprüfen und Beweise zu sammeln. Es ist dazu gebaut, auf einem Bewertungsgerät installiert und sogar mit einem Kunden geteilt zu werden, daher enthält es keine INTERNET-Berechtigung, keine Shell-Ausführung, keine Datenexfiltration und keine Root-Anforderung.
Wo es neben den üblichen Android-Tools steht:
| Tool | Rolle | Wie apk-interceptor sich unterscheidet |
|---|---|---|
| jadx / MobSF / QARK / Semgrep | Finden anfälliger Einstiegspunkte (statisch) | apk-interceptor scannt oder dekompiliert nicht; es bestätigt einen bereits vorhandenen Befund |
deep-C / NSdeepLink / adb am start | Deeplinks auflisten und senden | apk-interceptor kann auch senden, aber sein Unterscheidungsmerkmal ist das Empfangen eines gekaperten Schemas und die genaue Anzeige von URI und Parametern |
| drozer | Allgemeines On-Device-Angriffsframework (Agent + oft Root) | apk-interceptor ist eine einzelne leichte APK mit bewussten Sicherheitsvorkehrungen, engerem Umfang und einfacherer, kundensicherer Verteilung |
| Metasploit / Frida | Bewaffnen oder Haken (z. B. addJavascriptInterface RCE) | apk-interceptor prüft nur die Erreichbarkeit der Brücke mit einer harmlosen Payload; es exfiltriert nie oder führt keine Shell-Befehle aus |
Die beiden Bereiche, in denen apk-interceptor den deutlichsten Vorteil gegenüber den Alternativen hat:
adb/statische Analyse nicht zeigen kann.content:// → WebView-Brückenverifikation: Ein nicht exportierter, einzelner Dateianbieter, dessen Payload nur durch eine temporäre Intent-Leseberechtigung zugestellt wird, plus ein lokaler Selbsttest-WebView zur Vorabvalidierung der Payload-Syntax.apk-interceptor behandelt Senden und Abfangen unterschiedlich, und dies ist das Wichtigste, das Sie vor der Nutzung verstehen müssen:
| Aktion | Modul | Benutzerdefiniertes Schema zur Build-Zeit nötig? |
|---|---|---|
| Senden eines Intents oder Deeplinks an eine andere App | Sender | Nein, geben Sie zur Laufzeit eine beliebige URI, Paket oder Activity ein |
| Abfangen (Empfangen) eines Deeplinks für ein benutzerdefiniertes Schema | Interceptor | Ja, das Schema wird zur Build-Zeit in die APK eingebaut |
Um einen maßgeschneiderten Deeplink an die bewertete App zu senden, müssen Sie nicht neu bauen: Verwenden Sie den Implicit Deeplink-Modus des Sender-Tabs und geben Sie eine beliebige URI ein.
Um einen Deeplink abzufangen, das heißt, Android dazu zu bringen, ein benutzerdefiniertes Schema an apk-interceptor weiterzuleiten, damit Sie einen möglichen Schema-Hijack beobachten können, müssen Sie die APK mit diesem Schema über --scheme bauen. Das Schema wird absichtlich zur Build-Zeit festgelegt (eine Design-Schutzmaßnahme); apk-interceptor registriert niemals beliebige Schemata zur Laufzeit. Wenn Sie das zu bewertende Schema ändern, bauen Sie neu und installieren Sie erneut.
adb für Geräteinstallation und optionale BefehlszeilentestsBauen Sie die APK mit dem benutzerdefinierten URI-Schema, das Sie zu bewerten berechtigt sind:
./build-interceptor.sh --scheme <authorized_custom_scheme>
adb install ./out/apk-interceptor-<authorized_custom_scheme>-debug.apk
Optionale Build-Flags:
./build-interceptor.sh \
--scheme <authorized_custom_scheme> \
--app-id <custom.application.id> \
--output ./out