Dans cet article, nous allons résoudre la 25e tâche à partir du site
pwnable.kr .
Information organisationnelleSurtout pour ceux qui veulent apprendre quelque chose de nouveau et se développer dans l'un des domaines de l'information et de la sécurité informatique, j'écrirai et parlerai des catégories suivantes:
- PWN;
- cryptographie (Crypto);
- technologies de réseau (réseau);
- reverse (Reverse Engineering);
- stéganographie (Stegano);
- recherche et exploitation des vulnérabilités WEB.
En plus de cela, je partagerai mon expérience en criminalistique informatique, analyse de logiciels malveillants et micrologiciels, attaques sur les réseaux sans fil et réseaux locaux, réalisation de pentests et écriture d'exploits.
Afin que vous puissiez vous renseigner sur les nouveaux articles, logiciels et autres informations, j'ai créé une
chaîne dans Telegram et un
groupe pour discuter de tout problème dans le domaine de l'ICD. Aussi, je considérerai personnellement vos demandes, questions, suggestions et recommandations
personnelles et répondrai à tout le monde .
Toutes les informations sont fournies à des fins éducatives uniquement. L'auteur de ce document n'assume aucune responsabilité pour tout dommage causé à quelqu'un du fait de l'utilisation des connaissances et des méthodes obtenues à la suite de l'étude de ce document.
Otp job solution
Nous continuons la deuxième section. Je dirai tout de suite que c'est plus difficile que le premier, mais cette fois ils nous fournissent le code source du programme. N'oubliez pas la discussion ici (https://t.me/RalfHackerPublicChat) et ici (https://t.me/RalfHackerChannel). Commençons.
Cliquez sur l'icône avec la signature otp. On nous donne l'adresse et le port de connexion.

Nous nous connectons et regardons autour du serveur.

Un drapeau que nous ne pouvons pas lire, un programme et son code source. Voyons la source.

Analysons-le. Le programme prend un mot de passe comme argument.

Ensuite, 16 octets aléatoires sont stockés dans la variable otp.

Un fichier avec un nom aléatoire (les 8 premiers octets d'otp) est créé dans le dossier tmp et 8 octets aléatoires (les 8 derniers octets d'otp) y sont écrits.

Pour une raison quelconque, le fichier créé lit la valeur et la compare avec le mot de passe entré.

C'est là que se trouve la vulnérabilité. Il consiste dans le stockage intermédiaire du numéro généré dans un fichier. Nous pouvons limiter la taille du fichier, par exemple, à 0, puis lors de l'écriture et de la lecture avec le mot de passe 0, cela sera comparé.

Exécutez maintenant le programme.

Nous obtenons une erreur. Cela n'a pas d'importance, car il peut être traité en utilisant le même python.
python -c "import os, signal; signal.signal(signal.SIGXFSZ, signal.SIG_IGN); os.system('./otp 0')"

Nous obtenons le drapeau et nos poumons 100 points. Et nous continuons: dans le prochain article, nous toucherons le Web. Vous pouvez nous rejoindre sur
Telegram .