Es ist sicherer, alle exportierten Attribute explizit anzugeben
Weil es möglicherweise unbeabsichtigt in einer externen Anwendung veröffentlicht wird
Wenn Sie versehentlich einen Absichtsfilter definieren, ohne exportiert anzugeben, Die Aktivität kann auch über eine externe App gestartet werden.
Darüber hinaus wird die implizite Absicht, die Aktivität zu aktivieren, auch von externen Apps empfangen.
Wenn Sie versehentlich exportiert angeben und minSdkVersion 17 oder weniger einschließen Öffentlich / privat ändert sich je nach Betriebssystemversion.
Schauen Sie sich AndroidManifest.xml an, eine App bei Google Play.
Installieren Sie die App, die Android Manifest anzeigen soll, auf Ihrem Android-Gerät
Überprüfen Sie den Paketnamen der App von Google Play
Sie können dies mit der URL der App-Seite überprüfen
https://play.google.com/store/apps/details?id=【target package name】
Überprüfen Sie den vollständigen Pfad mit dem Befehl adb
>adb shell pm list packages -f 【target package name】 package:/data/app/【target package name】-1/base.apk=【target package name】
> adb pull /data/app/【target package name】-1
Ändern Sie die Erweiterung von apk in zip ↓
Als Reißverschluss extrahieren
Konvertieren Sie AndroidManifest.xml in Zip mit AXMLPrinter2.jar AXMLPrinter2.jar
>java -jar AXMLPrinter2.jar AndroidManifest.xml > AndroidManifestConverted.xml
In dem anderen Element << activity > als android.intent.category.LAUNCHER nach der Konvertierung Suchen Sie nach Aktivitäten mit exported = "true" oder nach Aktivitäten, für die der Intent-Filter ohne Beschreibung von exported definiert ist. Ich bin der Meinung, dass es in Apps mit geringer Erfahrung und Bewertung leicht zu finden ist </ font>
Versuchen Sie, von einer anderen App aus anzurufen
MainActivity.kt
val targetPackageName : String = "【target package name】"
val targetActivityName : String = "【target activity name】"
val intent : Intent = Intent()
intent.setClassName( targetPackageName, targetActivityName )
startActivity( intent )
Auch hier möglich
adb am start -n 【target package name】/.【target activity name】
Dann beginnt die Aktivität normal
Wenn angenommen wird, dass diese Aktivität nur von einem bestimmten Prozess desselben Pakets aufgerufen wird, kann
der erwartete Prozess übersprungen und ausgeführt werden.
Das Wissen ist hier geschrieben [Secure Design / Secure Coding Guide für Android Apps] ](https://www.jssec.org/dl/android_securecoding.pdf) Tatsächlich ist es nicht realistisch, alles in einer Überprüfung zu überprüfen, und es ist realistisch, ein Tool zu verwenden, da es Auslassungen gibt. Wie viel Geld Sie für Sicherheit ausgeben können, hängt von der App ab, die Sie erstellen.
Recommended Posts