Heim >Betrieb und Instandhaltung >Sicherheit >So führen Sie autorisierte APK-Penetrationstests durch
Dieser Artikel soll einige Testideen für Anfänger liefern, denen es auch an Erfahrung mit Penetrationstests mangelt. Der Inhalt kann relativ einfach sein, Cousins, bitte verzeihen Sie mir. Nachdem Sie die APK entpackt und die APK erhalten haben, entpacken Sie sie direkt mit 7-Zip, um mehrere Ordner, eine AndroidManifest.xml-Datei und eine Dex-Datei zu erhalten. Verwenden Sie dex2jar https://sourceforge.net/projects/dex2jar/, um diese Dex-Datei zu dekomprimieren, um eine JAR-Datei zu generieren, und verwenden Sie dann jd-gui, um den Java-Quellcode anzuzeigen. Während es möglich ist, durch einen Blick auf den Quellcode nach Code-Schwachstellen zu suchen, kommt es häufig zu Verschleierungen, die hier nicht näher erläutert werden. Die oben erwähnte XML-Datei darf vorher nicht verteilt werden. Sie umfasst viele wichtige Konfigurationselemente, wie zum Beispiel: - android:debuggable ist in der Datei AndroidManifest.xml wahr. Die App kann beliebig debuggt werden – android:allowBackup ist in der Datei AndroidManifest.xml true. App-Daten können gesichert und exportiert werden. - Warten Sie ... Es gibt noch einen weiteren Punkt, der während des eigentlichen Tests verwendet werden kann: Nach dem Dekomprimieren der APK können Sie versuchen, die DB-Datei in Powershell zu durchsuchen. Möglicherweise sind vertrauliche Informationen vorhanden (warum sagen Sie das, weil ich einmal darauf gestoßen bin). ...)
for /r F:\source-code %i in (*.db) do echo %i
APK-Sicherheitsanalyse und -Erkennung:
Experiment: APK-Sicherheitsanalyse und -Erkennung (Hetian Network Security Laboratory)
Experimente durchführen Erfahren Sie, wie Sie das APK-Sicherheitsanalyse- und -erkennungsprogramm ausführen und damit eine Sicherheitsanalyse und -erkennung für die APK durchführen und potenzielle Bedrohungen entdecken. )
Der einfachste Fall der Aufzählung von Benutzernamen besteht darin, dass das System antwortet, wenn Sie einen Benutzernamen eingeben und sich anmelden, dass der Benutzername nicht existiert. Diesmal ist mir aufgefallen, dass für die Anmeldung kein Passwort erforderlich ist, sondern ein registrierter Benutzername eingegeben werden muss. Anschließend wird ein Bestätigungscode basierend auf dem Benutzernamen gesendet Es kann nicht innerhalb von 120 Sekunden erneut gesendet werden und der Bestätigungscode ist 120 Sekunden lang gültig. Derzeit scheint es, dass wir mit dem Bestätigungscode nichts tun können, aber während des eigentlichen Testvorgangs haben wir Folgendes festgestellt: 1. Wenn wir das vorhandene Konto eingeben, wird angezeigt, dass der Versand erfolgreich war. 2. Wenn wir senden Wenn es wiederholt wird, antworten wir, dass es nicht innerhalb von 120 Sekunden erneut gesendet werden kann. 3. Geben Sie ein. Wenn kein Benutzer vorhanden ist, wird eine Meldung angezeigt, dass das Senden fehlgeschlagen ist. Selbst wenn ein Zeitlimit festgelegt ist, kann die Benutzernamenaufzählung die Existenz des Benutzernamens durch Sprengen überprüfen, allein auf der Grundlage der vom Server zurückgegebenen Informationen.
Moment mal, da wir die Handynummer nicht kennen und das Passwort zum Einloggen nicht eingeben dürfen, auch wenn wir es bekommen Der Benutzername zum Generieren des Social-Engineering-Wörterbuchs wird nicht verwendet. Was nützt es dann, den Benutzernamen zu erhalten? Natürlich ist es nützlich, aber es hängt vom jeweiligen Szenario ab. Im folgenden Fall kann beispielsweise jeder Bestätigungscode umgangen werden. Wenn wir uns anmelden, sendet der Server einen SMS-Bestätigungscode an die mit dem Konto verknüpfte Mobiltelefonnummer . Wir geben eine im vorherigen Schritt erhaltene Kontonummer ein und geben nach der Anmeldung den Bestätigungscode ein. Die Anmeldung ist fehlgeschlagen und es wurden zwei Codefelder in der Antwort gefunden 🎜#
Versuchen Sie es zu ändern:
Es funktioniert! 🎜# (Beherrschen Sie die Prinzipien der Umgehung gängiger Verifizierungscodes sowie der Umgehungsmethoden und des Schutzes vor Schwachstellen) #🎜🎜 #Nachdem Sie sich erfolgreich auf der Funktionsseite angemeldet haben, klicken Sie auf jede Funktion und auf der Seite mit den persönlichen Informationen wird eine Abfrage angezeigt. Bei der Echtzeit-Online-Nummernfunktion wird in dieser Spalte nur die Anzahl der Personen angezeigt, und es gibt keine Der Pfeil daneben war riesig, das Laden hat lange gedauert, ich habe einfach zurückgeklickt und hatte das Gefühl, dass hier nichts war. Nach dem Betreten kann ich die Informationen aller Personen sehen, die sich angemeldet haben .
Nachdem ich verschiedene Benutzer ausprobiert hatte, stellte ich fest, dass die Benutzerinformationen hier keinen Berechtigungseinschränkungen unterliegen, was bedeutet, dass sie offensichtlich für alle sichtbar sind. Die Berechtigungen sind vorhanden falsch konfiguriert. Die Anwendung verfügt außerdem über mehrere Abfragefunktionen. Das BURP-Tool zeigt an, dass das Format der zurückgegebenen Datenpakete JSON ist es überall Es hat nicht viel geholfen, weil ich nicht viel Erfahrung hatte. Vorne steht ein weiterer Parameter, versuchen Sie es?
Es gibt Drama! Probieren Sie xss aus Wenn Sie es erfolgreich in den Browser einfügen, erscheint ein Popup!Das obige ist der detaillierte Inhalt vonSo führen Sie autorisierte APK-Penetrationstests durch. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!