Hack en 60 secondes ou folie de quarantaine

Une petite histoire sur un client inadéquat et la découverte d'une vulnérabilité sur un site en 1 minute .

image

Je ne m'attendais pas à ce que cette histoire particulière soit mon premier article sur Habré. J'écris pendant qu'il fait chaud!

Tout ce que vous lisez plus loin n'est pas un appel à l'action ou une tentative de «compromettre» qui que ce soit.

5 avril 2020.
J'ai vu un message dans linkedin : «Bonjour. Nous recherchons un développeur pour finaliser le projet sur yii2 ... tel: + 79 ... whatsapp ”

Publié dans whatsapp :“ Bonjour. Je viens de linkedin, envoyez des savoirs traditionnels, le cas échéant. "
En réponse, il a reçu un énorme message avec des liens vers le site, une planche en trello et un petit TK.

image

A étudié trello . Selon le conseil d'administration, au moins 4 développeurs ont travaillé sur le projet.

6 avril 2020

En raison de la quarantaine, à mon avis, les gens commencent à devenir fous. Voici ce que j'ai vu dans WhatsApp quand je me suis réveillé:

image

Tout semble n'être rien, lu et oublié. Mais quelque chose à l'intérieur ne donnait pas de repos, il y avait un sentiment d'incomplétude, dont je voulais vraiment me débarrasser.

Il ne restait plus qu'à entrer dans le projet du «délinquant» et à se débarrasser des sensations désagréables à l'intérieur: D.

Le compte à rebours a commencé.

00:00

J'ouvre le site.

Je vois le formulaire de recherche et j'essaie de vérifier l' injection SQL que je connaissais précédemment :

' UNION SELECT
1,group_concat(username,0x7c,password),3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31
fRom user-- -

Comme prévu - cela ne fonctionne pas , mais cela valait la peine d'essayer.

00:20

Le site a la possibilité de s'inscrire de deux manières: en tant qu'utilisateur et en tant qu'entreprise .

Sur la base des captures d'écran vues dans trello , j'ai décidé de m'inscrire et de travailler avec le compte personnel de la société .

Remplissez les champs où l'avant permet les lignes

SELECT * FROM users;

Juste pour améliorer "l'effet de présence" des développeurs lorsqu'ils regardent dans la base de données.

00:40

Après une inscription réussie, nous serons redirigés vers la page de profil de l' entreprise .
Ouvrez l'élément de menu «Charger les documents» (très pratique, n'est-ce pas: D) et essayez de charger le fichier php .

image

J'ai d'abord téléchargé adminer.php , tel qu'il était à portée de main. Le fichier a été téléchargé avec succès et les développeurs ont soigneusement préparé pour moi une redirection vers la page avec un lien vers le fichier.

image

Il s'est ouvert par le lien: /upload/certified/15861775921.phpet a fonctionné correctement.

C'était le début de la fin!

1:00

Ensuite, chargez le plus simple php-web-shell via le même formulaire.

Vous devez d'abord comprendre qui nous sommes et où nous sommes:

pwd && whoami

image

Voyons la liste des fichiers du répertoire du site:

ls /var/www/admin/data/www/_/

image

Nous voyons la structure standard du framework Yii2 , à laquelle nous nous attendions.

Nous avons accès à la base de données, qui peut être entrée dans le adminer.php précédemment chargé :

cat /var/www/admin/data/www/_/config/db.php

image

En fait, j'ai été surpris que de telles vulnérabilités existent toujours. Et encore plus parce qu'ils peuvent être trouvés si facilement et rapidement.

Soit dit en passant, il s'agissait d'un projet d'une entreprise des Émirats arabes unis, qui fournit des produits de forage et des produits industriels pour les industries du pétrole, du gaz et du forage.

J'ai été ajouté à la liste noire dans WhatsApp après le dernier message et je ne pouvais pas parler de la vulnérabilité, j'ai donc laissé les œufs de Pâques sur le serveur pour les développeurs.

N'oubliez pas de faire une vérification du type de fichier côté serveur, et faites généralement plus attention à la sécurité de votre code!

All Articles