Résolution de problèmes avec pwnable.kr 01 - fd. Descripteurs et processus de fichiers

image

Dans cet article, nous analyserons: qu'est-ce qu'un descripteur de fichier, comment les processus accèdent-ils à certains flux d'entrée / sortie et résolvent la première tâche à partir du site pwnable.kr .

Information organisationnelle
Surtout 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 les 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.

Descripteurs de fichiers


Un descripteur de fichier est un nombre non négatif qui identifie un flux d'entrée / sortie qui peut être associé à des fichiers, des répertoires ou des sockets.

image

La table des fichiers système (SFT - System File Table) et la table des inodes (INode Table) contiennent les informations nécessaires au processus pour accéder aux données du fichier. Si plusieurs processus demandent l'accès au même fichier, chacun de ces processus recevra son propre élément de la table de fichiers système, malgré le fait qu'ils fonctionneront avec le même fichier.

Le noyau fournit le descripteur de fichier pour le processus lorsqu'il accède au fichier. Nous pouvons dire qu'un descripteur de fichier est un index d'un tableau de fichiers ouverts qui est unique à chaque processus. Mais les trois premiers indices sont fermement fixés:

  • 0 - entrĂ©e standard (stdin);
  • 1 - sortie standard (sortie standard);
  • 2 - flux d'erreur standard (stderr).

Ainsi, les fonctions gets () et printf () de la bibliothèque standard C utilisent stdin et stdout, ce qui permet aux shells de rediriger correctement l'entrée et la sortie des processus.

Solution d'emploi FD


Nous cliquons sur la première icône avec la signature fd, et on nous dit que nous devons nous connecter via SSH avec le mot de passe guest.

image

Une fois connecté, nous voyons la bannière correspondante.

image

Voyons quels fichiers se trouvent sur le serveur, ainsi que les droits dont nous disposons.

ls -l 

image

Ainsi, nous pouvons lire le code source du programme, car il y a un droit de lecture pour tout le monde, et exécuter le programme fd avec les droits du propriétaire (le bit collant est défini). Regardons le code source.

image

Il résulte du code que le programme prend un nombre comme paramètre, en soustrait 0x1234 et l'utilise comme descripteur pour obtenir une chaîne qui devrait être égale à "LETMEWIN".

image

Ainsi, nous devons envoyer au programme la chaîne «LETMEWIN» via le flux d'entrée standard (stdin). Pour cela, le descripteur transmis à la fonction read () doit être 0. Autrement dit, le nombre 0x1234 doit être utilisé comme paramètre de programme. Convertissez-le en décimal.

image

Exécutez maintenant le programme avec le paramètre 4660, déposez la ligne souhaitée et décrochez le drapeau.

image

En conséquence, nous obtenons le premier point.

image

Pwnable.kr commence par une tâche aussi simple, grâce à laquelle il était nécessaire de traiter des descripteurs. Rendez-vous dans les articles suivants!

Nous sommes dans un canal de télégramme: un canal dans Telegram .

Source: https://habr.com/ru/post/fr458346/


All Articles