Cet article vise à fournir quelques idées de tests aux débutants qui manquent également d'expérience en matière de tests d'intrusion. Le contenu impliqué est peut-être relativement basique, cousins, pardonnez-moi s'il vous plaît. Après avoir décompressé l'APK et obtenu l'apk, utilisez 7-Zip pour le décompresser directement afin d'obtenir plusieurs dossiers, un fichier AndroidManifest.xml et un fichier dex. Utilisez dex2jar https://sourceforge.net/projects/dex2jar/ pour décompresser ce fichier dex afin de générer un fichier jar, puis utilisez jd-gui pour afficher le code source Java. Bien qu'il soit possible de rechercher des vulnérabilités dans le code en examinant le code source, des obscurcissements se produisent souvent et ne seront pas abordés en profondeur ici. Le fichier xml mentionné ci-dessus ne doit pas être distribué auparavant. Il implique de nombreux éléments de configuration importants, tels que : - android:debuggable est vrai dans le fichier AndroidManifest.xml. L'application peut être déboguée arbitrairement - Android : allowBackup est vrai dans le fichier AndroidManifest.xml. Les données de l'application peuvent être sauvegardées et exportées. - Attendez... Il y a un autre point qui peut être utilisé lors des tests réels : après avoir décompressé l'apk, vous pouvez essayer de rechercher le fichier db dans PowerShell. Il peut y avoir des informations sensibles (pourquoi dites-vous cela, car je l'ai rencontré une fois). ...)
for /r F:\source-code %i in (*.db) do echo %i
analyse et détection de sécurité apk :
Expérience : analyse et détection de sécurité apk (Hetian Network Security Laboratory)
mener des expériences Découvrez comment exécuter le programme d'analyse et de détection de sécurité apk, et utilisez-le pour effectuer une analyse et une détection de sécurité sur l'apk et découvrir les menaces potentielles. )
Le cas le plus simple d'énumération des noms d'utilisateur est que lorsque vous entrez un nom d'utilisateur et que vous vous connectez, le système répondra que le nom d'utilisateur n'existe pas. Ce que j'ai rencontré cette fois, c'est que la connexion ne nécessite pas de mot de passe, mais que vous devez saisir un nom d'utilisateur enregistré. Ensuite, un code de vérification sera envoyé au téléphone mobile correspondant en fonction du nom d'utilisateur. En même temps, il est défini. il ne peut pas être renvoyé dans les 120 secondes et le code de vérification est valable pendant 120 secondes. Pour le moment, il semble que nous ne puissions rien faire via le code de vérification, mais pendant le processus de test proprement dit, nous avons constaté que 1. Lorsque nous entrons dans le compte existant, il nous indique que l'envoi est réussi 2. Si nous envoyons ; à plusieurs reprises, nous vous répondrons qu'il ne peut pas être renvoyé dans les 120 secondes ; 3. Entrez S'il n'y a pas d'utilisateur, il vous indiquera que l'envoi a échoué. Même si une limite de temps est fixée, l'énumération du nom d'utilisateur peut toujours vérifier l'existence du nom d'utilisateur par dynamitage, uniquement sur la base des informations renvoyées par le serveur.
Attendez une minute, car nous ne connaissons pas le numéro de téléphone portable et ne sommes pas autorisés à saisir le mot de passe pour nous connecter, même si nous obtenons le nom d'utilisateur pour générer le dictionnaire d'ingénierie sociale, il ne sera pas utilisé, alors à quoi ça sert d'obtenir le nom d'utilisateur ? Bien sûr, c'est utile, mais cela dépend du scénario spécifique. Par exemple, dans le cas suivant, tout code de vérification peut être contourné. Lorsque nous nous connectons, le serveur envoie un code de vérification par SMS au numéro de téléphone mobile lié au compte. . Nous entrons un numéro de compte obtenu à l'étape précédente et entrons le code de vérification avec désinvolture. Cliquez pour capturer le paquet après la connexion. La connexion a échoué et nous avons constaté qu'il y avait deux champs de code dans la réponse
#🎜. 🎜#
Essayez de le changer : Cela fonctionne ! 🎜# (Maîtrisez les principes communs de contournement du code de vérification, ainsi que les méthodes de contournement et la protection contre les vulnérabilités) #🎜🎜 #Après vous être connecté avec succès à la page de fonction, cliquez sur chaque fonction et il y a une requête sur la page d'informations personnelles. Pour la fonction de numéro en ligne en temps réel, cette colonne affiche uniquement le nombre de personnes, et il n'y a pas flèche à côté. C'était énorme, ça a pris du temps à charger, j'ai juste cliqué en arrière, et ça m'a donné l'impression qu'il n'y avait rien ici). Après avoir entré, je peux voir les informations de toutes les personnes qui se sont connectées. .
Après avoir essayé différents utilisateurs, j'ai découvert que les informations utilisateur ici n'ont aucune restriction d'autorisation, ce qui signifie qu'elles sont visibles par tout le monde, évidemment les autorisations sont mal configuré. L'application dispose également de plusieurs fonctions de requête. L'outil BURP montre que le format des paquets de données renvoyés est JSON
Essayez d'injecter JSON et essayez XXE. partout. Cela ne m'a pas beaucoup aidé car je n'avais pas beaucoup d'expérience. Il y a un autre paramètre devant, essayez-le ? Il y a du drame ! Essayez xss Mettez-le dans le navigateur et faites-le apparaître avec succès !Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!