Testa tīmekļa ievainojamību pārbaude, izmantojot sasodīti ievainojamo tīmekļa lietotni

Satura rādītājs

Mērķis ir tas, ka gan iesācēji, gan profesionāli lietotāji, kurus interesē drošības problēmu analīze un risināšana, var pārbaudīt savas zināšanas, prasmes un rīkus simulētā vidē. rīki ir ļoti noderīgi tīmekļa izstrādātājiem Viņi var saprast lietojumprogrammas vai vietnes problēmas un uzlabot programmēšanu vai meklēt ievainojamības.

Lai gan lielākā daļa izstrādātāju ir veikuši piesardzības pasākumus pret iespējamām ievainojamībām, daudzas ievainojamības, piemēram, Vairāku vietņu skripti (XSS) vai SQL injekcijas, kas ietekmē daudzu vietņu un līdz ar to arī lietotāju drošību.

Šajā apmācībā mēs gatavojamies instalējiet un konfigurējiet vietni, lai to izmantotu kā pārbaudes laboratoriju tīmekļa drošības auditu veikšanai, kur mēs atradīsim dažādas ievainojamības, vēl biežāk, piedāvājot dažādas grūtības pakāpes ievainojamībās, kuras pēc tam var analizēt.

Mēs izmantosim sasodīto ievainojamības tīmekļa lietojumprogrammu (DVWA), tā ir vietne, kas jāinstalē jebkurā mūsu serverī, ieskaitot vietējo, lai varētu veikt pentestēšanas testus. Mēs to varam lejupielādēt no tās oficiālās vietnes.

Pēc tā lejupielādes mums ir nepieciešams tīmekļa serveris vai vietējais serveris, kā norādīts apmācībās:

  • Kā instalēt Xampp, lai datoru pārvērstu par tīmekļa serveri
  • Pārnēsājams Easyphp tīmekļa serveris

Tagad pēc Damn Vulnerabilty Web Application (DVWA) zip faila lejupielādes mēs to izpakojam un nokopējam uz mūsu tīmekļa servera mapi, tādā gadījumā Linux mēs izmantojam Xampp.

Tālāk mums ir jākonfigurē datu bāze, no kuras mēs dosimies no phpmyadmin.

Ja mēs vēlamies to izdarīt no termināļa loga, mēs izmantosim šādu komandu, kurai mēs varam piekļūt, izmantojot ssh:

 ssh lietotājs @ miip
Vispirms mēs piesakāmies MySQL serverī no komandrindas ar šādu komandu:
 mysql -u sakne -p
Šajā gadījumā saknes lietotājs tiek norādīts ar karodziņu -u, un pēc tam karodziņu -p izmanto, lai norādītu, ka MySQL jāpieprasa parole. Mēs ievadām piekļuves atslēgu, lai varētu pieteikties MYSQL.

Tad mēs varam izveidot datu bāzi no komandrindas:

 izveidot datu bāzi dvwa;
Tālāk mēs ejam uz konfigurācijas direktoriju un pēc tam rediģējam failu config.inc.php, šeit mēs modificējam datus, lai norādītu datu bāzes nosaukumu, lietotāju un piekļuves paroli:
 
Mēs saglabājam konfigurāciju un mums jādodas uz pārlūkprogrammu, kurā ir tīmeklis, un noklikšķiniet uz Izveidot / atiestatīt datu bāzi lai turpinātu instalēšanu.

Tālāk mēs izveidosim konfigurētās datu bāzes datus, un mēs varēsim redzēt dažus tīmekļa piedāvātos rīkus.

Pēc instalēšanas, atgriežoties tīmeklī http: // localhost / dvwa, mēs saņemsim pieteikšanās ekrānu:

Lai piekļūtu vietnei, mēs izmantosim šādus datus:

Lietotājs: admin
Atslēga: parole

Tīmekļa kreisajā kolonnā mums ir izvēlne beigās, mēs varam redzēt opciju DVWA DROŠĪBANo šejienes mēs varam konfigurēt ievainojamības grūtības pakāpi, drošības līmenis ir zems, vidējs, augsts vai neiespējams.

Drošības līmenis maina DVWA ievainojamības līmeni:

Zems drošības līmenisŠis drošības līmenis ir pilnīgi neaizsargāts un tam nav nekādu drošības pasākumu, tāpēc tas ļaus mums vieglāk pārbaudīt hakeru paņēmienus. To var izmantot kā piemēru tam, kā tīmekļa lietojumprogrammu ievainojamība izpaužas, izmantojot sliktu kodēšanas praksi, un kalpot par platformu, lai mācītu vai apgūtu pamata izmantošanas, uzlaušanas un uzlaušanas metodes.

Vidējs drošības līmenisŠis līmenis kalpo, lai parādītu ievainojamības, ja izstrādātājs nav nodrošinājis, ka kodam un izstrādei nav ievainojamību.

Augsts drošības līmenisŠī līmeņa mērķis ir visprogresīvākajiem lietotājiem saskarties ar vidējām grūtībām, un tīmekļa kodā ir sajaukta slikta programmēšanas prakse. Šeit mēs varam izmēģināt uzlabotas tehnikas.

Drošības līmenis nav iespējamsŠis līmenis ir drošākais pret visām ievainojamībām. To izmanto, lai salīdzinātu neaizsargātu avota kodu ar drošu avota kodu. Šī līmeņa mērķis ir parādīt, kā vietnei jābūt pareizi attīstītai un kā tai jāatbild pirms iespējamiem uzbrukumiem.

Mēs iestatījām zemāko līmeni, lai varētu pārbaudīt dažādas uzlaušanas metodes un ievainojamības noteikšanu.

Pārbaudiet brutālo spēku uzlauzt pieteikšanos ar savu skriptu
Mēs piekļūstam Brute Force saitei un redzam, ka ir pieteikšanās veidlapa, mēs ievadām lietotājvārdā un parolē visus datus, lai tie neizdotos un pārbaudītu, vai rodas kļūda.

Ja pieteikšanās neizdodas, mēs redzam URL ar ievadītajiem datiem, ņemot URL, kas mums parāda:
http: // localhost / dvw … see & Login = Login #,

Tāpēc mēs varam izveidot skriptu, kas pārbauda dažādas lietotāja un paroles kombinācijas, vai izmantot tādu programmu kā xHydra, kas ir Hydra grafiskais interfeiss, vai tieši no komandrindas, ja tā ir vienīgā piekļuve serverim, izmantojot SSH.

Lai instalētu Hydra, mēs izmantosim šādas komandas:

 sudo add-apt-repository ppa: pi-rho / securitysudo apt-get updates sud apt-get install hydra hydra-gtk
Pēc instalēšanas mums būs jāmeklē vai jāizveido lietotāju saraksti un iespējamās atslēgas txt formātā vai jāmeklē vārdnīca, ko izmantot, kā to darījām apmācībā.

Arī teksta fails ar iespējamo lietotāju vārdiem, mēs varam izmantot arī kādu jau funkcionējošu datu bāzi, piemēram, šīs skullsecurity.org vārdnīcas, kuras tiek izmantotas daudzos rīkos, pretvīrusos utt., Kas ļauj uzlauzt paroles vai uzlauzt. Visi datu avoti ir brīvi izmantojami.

Tālāk mēs izmantosim hidru ar sarakstiem, kas mums ir, izmantojot šādas komandas:

 hydra -L /home/innove/usuarios.txt -P /home/innove/claves.txt 192.168.0.11 http -post -form "/dvwa/login.php:username=^USER^&password=^PASS^&Login=Login : Pieteikšanās neizdevās "-w 10 -V 

Mēs redzam, ka daži rezultāti ir bijuši pozitīvi, parādot zaļā krāsā lietotājus un paroli, kas sasniedza pieņemto pieteikumvārdu. Ja mēģināsim izmantot administratora lietotāju un paroli, mēs ievadīsim lietotāja paneli

SQL injekcijas ievainojamība
Zemākajā drošības līmenī tīmeklis ir neaizsargāts pret SQL ievadīšanu, pirms sākat ievadīt kodu teksta laukā, mēs varam novērot kodu, kas izmanto PHP tabulu, kas ir neaizsargāta.

 
Kļūda ir tāda, ka datus nevajadzētu sūtīt, izmantojot GET, bet izmantojot POST, un, otrkārt, jāpārbauda, ​​vai saņemtie dati nesatur ļaunprātīgu kodu.

SQL paziņojums tieši izpilda to, kas tiek saņemts, bez jebkādas kontroles vai pārbaudes. Tādējādi kods kļūst neaizsargāts pret SQL injekcijām, piemēram, mēs varam iegūt pilnu lietotāju sarakstu, ja SQL injekcijas lapā ID vietā pievienojam šādu kodu:

 1 'VAI 1 = 1 UNION SELECT null, version () #
Rezultāts būs lietotāju saraksts.

Mēs varam iegūt arī visu tabulu sarakstu, ja teksta laukā lietojam šādu kodu.

 1 'VAI 1 = 1 UNION SELECT null, table_name FROM INFORMATION_SCHEMA.tables

Mēs varam izmantot citas kombinācijas, lai iegūtu lietotāju sarakstu un skatītu katras tabulas datus.

Vai jums patika šī apmācība un palīdzējāt tai?Jūs varat apbalvot autoru, nospiežot šo pogu, lai sniegtu viņam pozitīvu punktu
wave wave wave wave wave