Accueil Solution du CTF JIS-CTF: VulnUpload de VulnHub
Post
Annuler

Solution du CTF JIS-CTF: VulnUpload de VulnHub

Le CTF JIS-CTF: VulnUpload se présente comme un CTF pour débutants sur lequel il faut récupérer 5 flags.

L’auteur indique qu’il faut en moyenne une heure et demi pour récupérer tous les flags. On met le chrono et c’est parti :)

Fast and furious

Deux ports ouverts et de nombreux indices dans un robots.txt :

1
2
3
4
5
6
7
8
9
10
11
22/tcp open  ssh     OpenSSH 7.2p2 Ubuntu 4ubuntu2.1 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
|   2048 af:b9:68:38:77:7c:40:f6:bf:98:09:ff:d9:5f:73:ec (RSA)
|_  256 b9:df:60:1e:6d:6f:d7:f6:24:fd:ae:f8:e3:cf:16:ac (ECDSA)
80/tcp open  http    Apache httpd 2.4.18 ((Ubuntu))
| http-robots.txt: 8 disallowed entries
| / /backup /admin /admin_area /r00t /uploads
|_/uploaded_files /flag
|_http-server-header: Apache/2.4.18 (Ubuntu)
| http-title: Sign-Up/Login Form
|_Requested resource was login.php

A l’adresse /admin_area/ on trouve des identifiants pour la page de login (l’index du site en fait) :

1
2
3
4
<!--	username : admin
	password : 3v1l_H@ck3r
	The 2nd flag is : {7412574125871236547895214}
-->

A l’adresse /flag se trouve le permier flag :

The 1st flag is : {8734509128730458630012095}

Une bonne partie des dossiers indiqué dans le robots.txt n’est pas présent. Il y a toutefois le uploaded_files qui est valide, et comme le nom du CTF laisse entendre la présence d’un script d’upload c’est utile.

Effectivement une fois connecté avec les identifiants on arrive directement sur le formulaire d’upload. J’envoie une backdoor PHP sans y croire une seconde avec l’extension .php en me disant qu’il faudra sans doute tricher sur le content-type ou autre… mais en fait ça passe et la backdoor se retrouve dans uploaded_files :p

Python n’est pas présent sur le système mais perl y est. Avec dc.pl j’abandonne ma backdoor PHP pour un reverse shell cradot mais interactif.

Dans /var/www/html il y a un flag qu’on ne peut pas lire :

1
-rw-r----- 1 technawi technawi 132 Apr 21  2017 flag.txt

Cet utilisateur a l’air intéressant, fouillons dans les pages du site :

1
2
3
$ grep -r technawi * 2> /dev/null
hint.txt:try to find user technawi password to read the flag.txt file, you can find it in a hidden file ;)
index.php:            <a class="tzine" href="http://www.technawi.net">Powered by : Technawi[dot]net</a>

dans ce même fichier hint.txt un autre flag :

The 3rd flag is : {7645110034526579012345670}

Toujours autour du même user :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$ find / -user technawi 2> /dev/null
/etc/mysql/conf.d/credentials.txt
/var/www/html/flag.txt
/home/technawi
/home/technawi/.cache
/home/technawi/.bash_history
/home/technawi/.sudo_as_admin_successful
/home/technawi/.profile
/home/technawi/.bashrc
/home/technawi/.bash_logout
$ cat /etc/mysql/conf.d/credentials.txt
The 4th flag is : {7845658974123568974185412}

username : technawi
password : 3vilH@ksor

Ces identifiants permettent d’avoir un accès SSH :)

On peut enfin accéder au flag qui nous restait :

1
2
3
4
5
The 5th flag is : {5473215946785213456975249}

Good job :)

You find 5 flags and got their points and finish the first scenario....

That’s it ! L’utilisateur peut sudo en root donc pas besoin de chercher plus loin.

Gone in 20 minutes

Voilà c’était vraiment du basique mais on était prévenu.

Published March 16 2018 at 12:04

Cet article est sous licence CC BY 4.0 par l'auteur.