
NĂ« tĂ« kaluarĂ«n ne treguam pĂ«r Nemesida WAF Free â njĂ« mjet falas pĂ«r mbrojtjen e faqeve dhe API-ve nga sulmet hacker, dhe nĂ« kĂ«tĂ« rast vendosĂ«m tĂ« bĂ«jmĂ« njĂ« pĂ«rmbledhje tĂ« njĂ« skaneri tĂ« njohur pĂ«r dobĂ«si .
Skandimi i faqeve për dobësi është një masë e nevojshme, e cila, në kombinim me analizën e kodit burimor, lejon të vlerësohet niveli i mbrojtjes së saj nga kërcënimet e komprometimit. Skandimi i burimeve web mund të bëhet me ndihmën e pajisjeve të specializuara.
Nikto, W3af (i shkruar nĂ« Python 2.7, mbĂ«shtetje e cila ka pĂ«rfunduar) ose Arachni (nga shkurti nuk mbĂ«shtetet mĂ«) â zgjidhjet mĂ« tĂ« njohura tĂ« disponueshme nĂ« segmentin falas. Natyrisht, ekzistojnĂ« edhe tĂ« tjera, si Wapiti, tĂ« cilin vendosĂ«m ta ndalojmĂ«.
Wapiti punon me lloje të ndryshme dobësish:
- zbërthimi i skedarit (lokale dhe të largëta, fopen, readfile);
- injeksione (PHP / JSP / ASP / SQL-injeksione dhe XPath-injeksione);
- XSS (injeksionin ndërfaqësor) (reflektuar dhe të përhershëm);
- zbulimi dhe ekzekutimi i komandave (eval (), system (), passthru ());
- injeksione CRLF (ndarja e përgjigjeve HTTP, fiksoja e seancës);
- XXE (inxhizimi i përmbajtjes së jashtme XML);
- SSRF (falsifikimi i kërkesës në anën e shërbimit);
- përdorimi i skedarëve potencialisht të rrezikshëm të njohur (falë bazës së të dhënave Nikto);
- konfigurime të dobëta .htaccess që mund të anashkalohen;
- prania e skedarëve të kopjave rezervë që zbulojnë informacion të ndjeshëm (zbulesa e kodit burimor);
- Shellshock;
- redirigjime të hapura;
- metoda të pastra HTTP që mund të lejohet (PUT).
Karakteristikat:
- mbështetje për proxy HTTP, HTTPS dhe SOCKS5;
- autentifikimi me metoda të ndryshme: Basic, Digest, Kerberos ose NTLM;
- mundësia për të kufizuar fushën e skanimit (domain, dosje, faqe, URL);
- zhbllokimi automatik i njërit prej parametrave në URL;
- masat për shumicën e rasteve ndaj cikleve të pafund skanimi (shembull: ifor, kufizimi i vlerave për parametrin);
- mundësia për të vendosur një prioritet për shqyrtimin e URL-ve (edhe nëse nuk ndodhen në fushën e skanimit);
- mundësia për të përjashtuar disa URL nga skanimi dhe sulmet (për shembull: URL logout);
- importimi i skedarëve cookie (marrja e tyre me ndihmën e instrumentit wapiti-getcookie);
- mundësia për të aktivizuar / çaktivizuar verifikimin e certifikatave SSL;
- mundësia për të nxjerrë URL nga JavaScript (interpreter JS shumë i thjeshtë);
- interaksioni me HTML5;
- disa mundësi për të menaxhuar sjelljen dhe kufizimet e crawler-it;
- vendosja e kohës maksimale për procesin e skanimit;
- shtimi i disa titujve HTTP të personalizuar ose konfigurimi i User-Agent-it të përdoruesit.
Funcionalitete të tjera:
- krijimi i raporteve të cenueshmërisë në formate të ndryshme (HTML, XML, JSON, TXT);
- pejzazhim dhe rivendosje e skanimit ose sulmit (mekanizmi i sesionit duke përdorur bazat e të dhënave SQLite3);
- theksimi në terminal për të evidentuar cenueshmërinë;
- nivela të ndryshme të regjistrimit;
- një mënyrë e shpejtë dhe e lehtë për të aktivizuar / çaktivizuar modulet e sulmit.
Instalimi
Versioni aktual i Wapiti mund të instalohet në 2 mënyra:
- duke shkarkuar burimin nga faqja dhe duke e ekzekutuar skriptin e instalimit, pasi të keni instaluar Python3;
- nëpërmjet komandës pip3 install wapiti3.
Pas kësaj, Wapiti do të jetë gati për punë.
Puna me mjetin
Për të demonstruar funksionimin e Wapiti, do të përdorim një platformë të përgatitur në mënyrë speciale sites.vulns.pentestit.ru (burim i brendshëm), që përmban cenueshmëri të ndryshme (Injection, XSS, LFI/RFI) dhe mangësi të tjera të aplikacioneve web.
Informacioni është ofruar vetëm për qëllime informuese. Mos e shkelni ligjin!
Komanda bazë për të nisur skanerin:
# wapiti -u <target> <options>Ka një ndihmë mjaft të detajuar me një sasi të madhe opsionesh për nisje, si për shembull:
âscope â zona e aplikimit
Nëse bashkë me URL-në për skanim jepet parametri scope, mund të rregullohet zona e skanimit të faqes, duke treguar si një faqe të veçantë, ashtu edhe të gjitha faqet që mund të gjenden në faqen e internetit.
-s dhe -x â parametra pĂ«r shtimin ose heqjen e URL-ve tĂ« caktuara. KĂ«ta parametra janĂ« tĂ« dobishĂ«m kur Ă«shtĂ« e nevojshme tĂ« shtoni ose hiqni njĂ« URL tĂ« caktuar nĂ« procesin e skanimit.
âskip â parametri i specifikuar me kĂ«tĂ« çelĂ«s do tĂ« skanohet, por nuk do tĂ« sulmohet. Kjo Ă«shtĂ« e dobishme nĂ«se ka disa parametra tĂ« rrezikshĂ«m qĂ« janĂ« mĂ« mirĂ« tĂ« pĂ«rjashtohen gjatĂ« skanimit.
âverify-ssl â aktivizimi ose pĂ«rjashtimi i kontrollit tĂ« certifikatĂ«s.
Skeneri Wapiti është modulor. Megjithatë, për të aktivizuar module specifike nga ato që lidhen automatikisht gjatë funksionimit të skenerit, duhen përdorur çelësi -m dhe të renditen ato që duhen me një presje. Nëse çelësi nuk përdoret, të gjitha modulet do të funksionojnë si të paracaktuara. Në variantin më të thjeshtë, kjo do të duket si më poshtë:
# wapiti -u http://sites.vulns.pentestit.ru/ -m sql,xss,xxeKy shembull pĂ«rdorimi tregon se ne do tĂ« pĂ«rdorim vetĂ«m modulet SQL, XSS dhe XXE gjatĂ« skanimit tĂ« objektit. PĂ«r mĂ« tepĂ«r, Ă«shtĂ« e mundur tĂ« filtroni funksionimin e moduleve nĂ« varĂ«si tĂ« metodĂ«s sĂ« nevojshme. PĂ«r shembull, -m âxss: get, blindsql: post, xxe: postâ. NĂ« kĂ«tĂ« rast, moduli xss do tĂ« aplikohet nĂ« kĂ«rkesat e dĂ«rguara me metodĂ«n GET, ndĂ«rsa moduli blibdsql â nĂ« kĂ«rkesat POST etj. PĂ«r mĂ« tepĂ«r, nĂ«se ndonjĂ« modul qĂ« Ă«shtĂ« pĂ«rfshirĂ« nĂ« listĂ« nuk ka qenĂ« i nevojshĂ«m gjatĂ« skanimit ose punon shumĂ« gjatĂ«, duke shtypur kombinimin Ctrl+C mund tĂ« kaloni pĂ«rdorimin e modulit aktual, duke zgjedhur pĂ«rkatĂ«sisht nĂ« menynĂ« interaktive.
Wapiti mbështet dërgimin e kërkesave përmes një serveri proxy me ndihmën e çelësit -p dhe autentikimin në faqen e synuar përmes parametrave -a. Gjithashtu, është e mundur të përcaktoni llojin e autentikimit: Basic, Digest, Kerberos dhe NTLM. Për dy të fundit mund të kërkohet instalimi i moduleve shtesë. Gjithashtu, mund të përfshihen në kërkesa çdo lloj titulli (përfshirë të rastësishëm User-Agent) dhe shumë më tepër.
Për të përdorur autentifikimin, mund të përdorim mjetin wapiti-getcookie. Me ndihmën e tij formojmë cookie, të cilat Wapiti do të përdorë gjatë skanimit. Formimi cookie kryhet me komandën:
# wapiti-getcookie -u http://sites.vulns.pentestit.ru/login.php -c cookie.jsonGjatë punës në mënyrë interaktive, përgjigjemi në pyetje dhe tregojmë informacionin e nevojshëm si: emri i përdoruesit, fjalëkalimi dhe të tjerë:

Në dalje marrim një skedë në formatin JSON. Një opsion tjetër është të shtojmë gjithë informacionin e nevojshëm përmes parametrave -d:
# wapiti-getcookie - http://sites.vulns.pentestit.ru/login.php -c cookie.json -d "username=admin&password=admin&enter=submit"Rezultati do të jetë i ngjashëm:

Duke shqyrtuar funksionalitetin kryesor të skanerit, kërkesa përfundimtare për testimin e aplikacionit web në rastin tonë ishte:
# wapiti --level 1 -u http://sites.vulns.pentestit.ru/ -f html -o /tmp/vulns.html -m all --color -Ń cookie.json --scope folder --flush-session -A 'Pentestit Scans' -p http://proxy.office.pentestit.ru:3128ku midis parametrave tĂ« tjerĂ«:
-f dhe -o - forma dhe rruga për ruajtjen e raportit;
-m - lidhja e të gjitha moduleve - nuk rekomandohet, pasi do të ndikojë në kohën e testimit dhe madhësinë e raportit;
-color - thekson gjetjet e dobësive në varësi të kritikalitetit sipas versionit të vet Wapiti;
-c - përdorimi i skedës me cookie, i gjeneruar me ndihmën e wapiti-getcookie;
âscope â zgjedhja e objektivit pĂ«r sulm. Duke zgjedhur opsionin folder do tĂ« skanohet dhe do tĂ« sulmohet çdo URL, duke filluar nga baza. URL-ja e bazĂ«s duhet tĂ« ketĂ« njĂ« shenjĂ« / (pa emrin e skedarit);
âflush-session â lejon kryerjen e njĂ« rishikimi, i cili nuk merr parasysh rezultatet e mĂ«parshme;
-A â e vetme User-Agent;
-p â adresa e serverit proxy, nĂ«se Ă«shtĂ« e nevojshme.
Pak mbi raportin
Rezultati i skanimit paraqitet në formën e një raporti të detajuar për të gjitha vulnerabilitetet e gjetura në formatin e një faqe HTML, në një mënyrë të kuptueshme dhe të lehtë për tu perceptuar. Në raport do të përmenden kategoritë dhe numri i vulnerabiliteteve të gjetura, përshkrimi i tyre, kërkesat, komandat për curl dhe këshillat mbi se si t'i mbyllni ato. Për lehtësi navigimi, në titujt e kategorive do të shtohet një lidhje, duke klikuar mbi të mund të kaloni tek ajo:

Një disavantazh thelbësor i raportit është mungesa e një harta të tillë të aplikacionit web, pa të cilën nuk do të kuptohet nëse adresa dhe parametrat janë analizuar. Ka gjithashtu mundësinë e alarmeve false. Në rastin tonë, raporti përfshin "skedarët e kopjimeve rezervë" dhe "skedarët potencialisht të rrezikshëm". Numri i tyre nuk përputhet me realitetin, pasi nuk kishte skedare të tilla në server.

Mundësisht, modulet që funksionojnë në mënyrë jo korrekt mund të rregullohen me kalimin e kohës. Një tjetër disavantazh i raportit është mungesa e ngjyrës për vulnerabilitetet e gjetura (në varësi të kriticitetit të tyre), ose të paktën ndarjen e tyre sipas kategorive. E vetmja mënyrë për të kuptuar indirekt kriticitetin e një vulnerabiliteti të gjetur është të aplikojmë parametrin -color gjatë skanimit dhe atëherë vulnerabilitetet e gjetura do të ngjyrosen në ngjyra të ndryshme:

Por në raportin e vet, një ngjyrosje e tillë nuk parashikohet.
Dobësitë
SQLi
Skeneri arriti pjesërisht të gjejë SQLi. Kur kërkohet për vulnerabilitete SQL në faqe ku nuk është e nevojshme autentifikimi, nuk ka ndonjë problem:

Nuk arritëm të gjejmë ndonjë dobësi në faqet e aksesueshme vetëm pas autentifikimit, madje edhe duke përdorur të dhëna valide, cookie, pasi është e mundur që pas autentifikimit të suksesshëm do të ndodhte "dalja nga sesioni" dhe cookie do të bëhen të pavlefshme. Sikur funksioni i deautorizimit të ishte realizuar si një skenar i veçantë, i cili merret me këtë procedurë, do të mund të përjashtohej plotësisht përmes parametrin -x, duke parandaluar kështu funksionimin e tij. Në të kundërt, nuk është e mundur të përjashtohet përpunimi i tij. Kjo është një problem jo specifik për një modul të caktuar, por për mjetin në tërësi, por për shkak të këtij nuancës nuk arritëm të zbulojmë disa injeksione në zona të mbyllura të burimit.
XSS
Skeneri e ka përfunduar detyrën me sukses dhe ka gjetur të gjitha dobësitë e përgatitura:

LFI/RFI
Skeneri gjeti të gjitha dobësitë e implantuar:

NĂ« pĂ«rgjithĂ«si, megjithĂ« njoftimet e rreme dhe lehtĂ«sirat nĂ« zbulimin e dobĂ«sive, Wapiti, si njĂ« mjet falas, tregon rezultate tĂ« kĂ«naqshme. Ădo mĂ«nyrĂ«, Ă«shtĂ« e pranuar se skeneri Ă«shtĂ« mjaft i fuqishĂ«m, fleksibĂ«l dhe shumĂ«funksional, dhe mĂ« e rĂ«ndĂ«sishmja â falas, prandaj ka tĂ« drejtĂ« tĂ« pĂ«rdoret, duke ndihmuar administratorĂ«t dhe zhvilluesit tĂ« marrin informacionin bazĂ« mbi gjendjen e sigurisĂ« sĂ« aplikacionit web.
Qëndroni të shëndetshëm dhe të mbrojtur!
Burimi: habr.com
