Tikrinkite žiniatinklio pažeidžiamumą naudodami „Damn pažeidžiamą žiniatinklio programą“

{title}

{title}

Tikslas yra, kad tiek pradedantieji vartotojai, tiek specialistai, besidomintys saugumo problemų analize ir sprendimu, galėtų išbandyti savo žinias, įgūdžius ir įrankius modeliuojamoje aplinkoje. Šios rūšies įrankiai yra labai naudingi interneto svetainių kūrėjams, norint suprasti problemas, kurios gali turėti programą ar svetainę ir patobulinti programavimą arba ieškoti pažeidžiamumų.

Nors dauguma kūrėjų ėmėsi atsargumo priemonių prieš galimą pažeidžiamumą, vis dar galioja daugybė pažeidžiamumų, tokių kaip Cross Site Scripting (XSS) ar SQL injekcijos, kurie daro įtaką daugelio svetainių saugumui, taigi ir vartotojams.

Šiame vadove įdiegsime ir sukonfigūruosime svetainę, kuri bus naudojama kaip interneto saugos auditų bandymo laboratorija, kurioje rasime skirtingus pažeidžiamumus, dar dažnesnius siūlydami kelis pažeidžiamumo pažeidžiamumo lygius, kuriuos vėliau bus galima išanalizuoti.

Mes naudosime „Damn Vulnerabilty Web Application“ (DVWA), tai yra svetainė, kurią reikia įdiegti į bet kurį mūsų turimą serverį, įskaitant vietinį, kad galėtume atlikti bandymo bandymus. Mes galime jį atsisiųsti iš oficialios jo svetainės.

Atsisiuntę mums reikia žiniatinklio serverio arba vietinio serverio, kaip nurodyta vadovėliuose:

  • Kaip įdiegti „Xampp“ ir paversti kompiuterį žiniatinklio serveriu
  • Nešiojamasis „Easyphp“ interneto serveris

Atsisiuntę „Damn Vulnerabilty Web Aplication“ (DVWA) ZIP failą, mes jį išpakuojame ir nukopijuojame į savo interneto serverio aplanką, tokiu atveju „Linux“ naudojame „Xampp“.

{title}

Toliau turime sukonfigūruoti duomenų bazę, kuriai pateksime iš phpmyadmin.

{title}

Jei norime tai padaryti iš terminalo lango, mes naudosime šią komandą, mes galime pasiekti per ssh:

 ssh 
Pirmiausia iš komandinės eilutės prisijungsime prie „MySQL“ serverio šia komanda:
 mysql -u šaknis -p 
Tokiu atveju šakninis vartotojas nurodomas su -u vėliava, o tada naudojama vėliava -p, rodanti, kad „MySQL“ turi reikalauti slaptažodžio. Įveskite slaptažodį, kad galėtumėte prisijungti prie MYSQL.

Tada mes galime sukurti duomenų bazę iš komandinės eilutės:

 sukurti duomenų bazę dvwa; 
Toliau einame į konfigūracijos katalogą ir taisome failą config.inc.php, čia mes modifikuojame duomenis nurodydami duomenų bazės pavadinimą, vartotoją ir slaptažodį:
 Išsaugome konfigūraciją ir turime eiti į naršyklę, kurioje turime žiniatinklį, ir spustelėkite „ Sukurti / atstatyti duomenų bazę“, kad tęstume diegimą.

{title}

Tada mes sukursime duomenų bazės duomenis, kuriuos sukonfigūruosime, ir pamatysime kai kuriuos žiniatinklio pateiktus įrankius.

{title}

Po įdiegimo, kai mes vėl įvesime žiniatinklį // localhost / dvwa, gausime prisijungimo ekraną:

{title}

Norėdami prisijungti prie interneto, naudosime šiuos duomenis:

Vartotojas: admin
Slaptažodis: slaptažodis

{title}

Kairiajame žiniatinklio stulpelyje turime meniu, kurio pabaigoje galime pamatyti parinktį „ DVWA SAUGUMAS“, iš čia mes galime sukonfigūruoti pažeidžiamumo laipsnį, saugumo lygis yra žemas, vidutinis, aukštas arba neįmanomas.

Apsaugos lygis keičia DVWA pažeidžiamumo lygį:

$config[ads_text5] not found

Žemas saugumo lygis

Šis saugumo lygis yra visiškai pažeidžiamas ir neturi jokių saugumo priemonių, todėl tai leis mums lengviau išbandyti įsilaužimo metodus. Jos naudojimas turi būti pavyzdys, kaip žiniatinklio programų pažeidžiamumas pasireiškia dėl blogos kodavimo praktikos, ir ji turi būti platforma, skirta mokyti ar išmokti pagrindinius išnaudojimo, krekingo ir įsilaužimo metodus.

Vidutinis saugumo lygis

Šis lygis skirtas pažeidžiamumui parodyti, kai kūrėjas neįtvirtino, kad kodas ir plėtinys neturi pažeidžiamumų.

Aukštas saugumo lygis

Šis lygis skirtas labiau pažengusiems vartotojams, susiduriantiems su vidutiniais sunkumais, įskaitant blogą programavimo praktiką žiniatinklio kode. Čia galime išbandyti pažangias technikas.

$config[ads_text6] not found

Apsaugos lygis neįmanomas

Šis lygis yra saugiausias tarp visų pažeidžiamumų. Jis naudojamas pažeidžiamo šaltinio kodams palyginti su saugaus šaltinio kodais. Šiuo lygiu siekiama parodyti, kaip svetainė turėtų būti tinkamai sukurta ir kaip ji turėtų reaguoti prieš galimas atakas.

Mes nustatėme žemiausią lygį, kad galėtume išbandyti įvairius įsilaužimo ir pažeidžiamumo nustatymo metodus.

„Brute Force“ testas, norint nulaužti prisijungimą naudojant savo scenarijų
Mes pasiekiame „Brute Force“ saitą ir pamatome, kad yra prisijungimo forma, įvedame bet kokius vartotojo duomenis ir slaptažodį, kad jis nepavyktų ir pažiūrėtume, ar įvyko klaida.

{title}

Nepavykus prisijungti, matome URL su įvestais duomenimis, paimdami URL, kuris parodo mums:
//localhost/dvw...ve&Login=Login#,

Todėl mes galime sukurti scenarijų, kuriame būtų išbandytos skirtingos vartotojo ir slaptažodžio kombinacijos, arba naudoti tokią programą kaip xHydra, kuri yra grafinė „Hydra“ sąsaja, arba tiesiai iš komandinės eilutės, jei tai yra vienintelė prieiga prie SSH prie serverio.

Norėdami įdiegti „Hydra“, mes naudosime šias komandas:

 sudo add-apt-repository ppa: pi-rho / securitysudo apt-get updatesudo apt-get install hydra hydra-gtk 
Įdiegę turime ieškoti arba sudaryti vartotojų sąrašus ir galimus raktus txt formatu arba ieškoti žodyno, kurį galėtume naudoti, kaip tai darėme mokymo programoje.

{title}

Taip pat tekstinį failą su galimais vartotojo vardais, mes taip pat galime naudoti jau veikiančią duomenų bazę, tokią kaip šie „skullsecurity.org“ žodynai, kurie naudojami daugelyje įrankių, antivirusinėse programose ir kt., Kurie leidžia nulaužti ar slaptažodžius. Visi duomenų šaltiniai gali būti laisvai naudojami.

{title}

Tada mes naudosime hidrą su sąrašais, kuriuos turime vykdydami šias komandas:

 hydra -L /home/innove/usuario.txt -P /home/innove/claves.txt 192.168.0.11 http-post-form "/dvwa/login.php:username=^USER^&password=^PASS^&Login=Login : Nepavyko prisijungti "-w 10 -V 

{title}

Matome, kad kai kurie rezultatai buvo teigiami - žalia spalva rodomi vartotojai ir slaptažodis, kuriais pasinaudota. Jei testuosime naudodamiesi administratoriaus vartotoju ir slaptažodžiu, pateksime norėdami pamatyti vartotojo skydą

{title}

SQL įpurškimo pažeidžiamumas
Žemiausiame saugumo lygyje žiniatinklis yra pažeidžiamas SQL įterpimo, prieš pradėdami įvesti kodą teksto lauke, galime stebėti kodą, kuris atitinka PHP lentelę, kuri yra pažeidžiama.

 Klaida ta, kad duomenis neturėtų siųsti GET, bet naudodamiesi POST, antra, reikia patikrinti, ar gautuose duomenyse nėra kenksmingo kodo.

SQL sakinys tiesiogiai vykdo tai, kas atkeliauja, be jokių kontrolės ir nepatvirtinimo. Taigi tai daro kodą pažeidžiamą SQL injekcijų, pavyzdžiui, mes galime gauti visą vartotojų sąrašą, jei SQL įvedimo puslapyje vietoj ID pridedame šį kodą:

 1 'ARBA 1 = 1 SĄJUNGOS PASIRINKIMAS negalioja, versija () # 
Rezultatas bus vartotojų sąrašas.

$config[ads_text5] not found

{title}

Taip pat galime gauti visą lentelių sąrašą, jei teksto lauke pritaikysime šį kodą.

 1 'ARBA 1 = 1 SĄJUNGOS PASIRINKIMAS nulis, lentelės_pavadinimas IŠ INFORMACIJOS_ŠCHEMA lentelės 

{title}

Galime naudoti kitus derinius, norėdami gauti vartotojų sąrašą ir pamatyti kiekvienos lentelės duomenis.

  • 0