Web - authentification javascript, obfuscation et code natif. Résolution de problèmes avec r0ot-mi Web - Client. Partie 1

image

Cet article contient des solutions de travail qui couvrent l'authentification javascript, l'obfuscation javascript et le code natif javascript.

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 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.

Éléments désactivés HTML


image

Sur la page, nous voyons un formulaire verrouillé.

image

Nous devons le déverrouiller et l'utiliser. Pour ce faire, ouvrez le panneau développeur (dans mon cas, dans le navigateur Firefox).

image

Nous observons deux éléments de formulaire dans lesquels le paramètre désactivé est présent. Il vous suffit de le supprimer.

image

Maintenant, nous envoyons du texte dans le formulaire et obtenons un drapeau.

image

Authentification Javascript


image

Nous allons à la page, observons le formulaire où vous devez entrer le login et le mot de passe.

image

Lorsque vous essayez d'envoyer des lignes, une alerte affiche un message concernant des données incorrectes.

image

Ouvrons le code source. Lorsque vous cliquez sur le bouton de connexion, js appelle la fonction Login ().

image

Passons au panneau développeur, onglet Débogueur. Dans la fenêtre de gauche de Source, sélectionnez notre site et regardez le code source dans le fichier login.js. Il y a des informations de connexion.

image

Nous passons à la tâche suivante.

image

Nous ouvrons la page, nous sommes accueillis par la fenêtre de saisie de mot de passe familière.

image

Ouvrez le code source, prenez le mot de passe.

image

Allez-y.

image

Par analogie avec les tâches précédentes, ouvrez le panneau développeur, l'onglet Débogueur. Une chaîne est extraite de la liste, un deux-points est divisé en parties. La première partie est la connexion, la seconde est le mot de passe.

image

Obfuscation Javascript


image

Ouvrez le code source, on y retrouve la variable pass.

image

Notre mot de passe est encodé en URL. Passons au panneau développeur, l'onglet Console. Décode en utilisant la fonction js decodeURI ().

image

Allez-y ...

image

Encore une fois, regardez la source. Le passage variable est mentionné.

image

Accédez à la console et affichez la variable pass.

image

Il ressemble au code js. Pour l'exécuter, passez pass comme argument à la fonction eval ().

image

Codez encore et encore eval ().

image

Code natif Javascript


image

Nous ouvrons la page. Nous sommes à nouveau accueillis par la fenêtre de saisie du mot de passe.

image

Ouvrez le fichier et voyez le code natif javascript.

image

Il existe deux méthodes génériques dans js: toString () et toSource (), applicables aux objets. À la toute fin du code, nous observons «()», c'est-à-dire qu'il est précédé d'une fonction. Dans la console, supprimez «()» et ajoutez «.toSource ()».

image

Nous avons obtenu la fonction de vérification du mot de passe, où nous pouvons voir le mot de passe lui-même.

image

Ouvrez la source, obtenez js.

image

Une chaîne est transmise à la fonction par le type de la variable passe - codes de caractères séparés par une virgule. À la toute fin, une fonction avec une chaîne est appelée. Décodons la chaîne et traduisons les nombres en caractères.

image

Nous obtenons le mot de passe.

De plus en plus compliqué ... Vous pouvez nous rejoindre sur Telegram . Là, vous pouvez proposer vos propres sujets et voter sur le choix des sujets pour les articles suivants.

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


All Articles