Wapiti — kontrollige oma veebisaidi haavatavuste olemasolu ise

Wapiti — kontrollige oma veebisaidi haavatavuste olemasolu ise
Eelmises osas artiklis oleme rÀÀkinud Nemesida WAF Free — tasuta tööriist, mis kaitseb veebisaite ja API-sid hĂ€kkerite rĂŒnnakute eest, ning seekord teeme ĂŒlevaate populaarsest haavatavuste skannerist Wapiti.

Veebisaidi haavatavuste skaneerimine on hĂ€davajalik tegevus, mis koos lĂ€htekoodi analĂŒĂŒsiga vĂ”imaldab hinnata selle kaitset ohte eest. Veebiresurssi saab skaneerida spetsialiseeritud tööriistade abil.

Nikto, W3af (kirjutatud Python 2.7-s, mille toetamine on lĂ”ppenud) vĂ”i Arachni (pole enam toetatud alates veebruarist) — need on kĂ”ige populaarsemad lahendused tasuta segmentis. Loomulikult on ka teisi, nĂ€iteks Wapiti, millele me keskendume.

Wapiti töötab jÀrgmiste haavatavus liikidega:

  • failide avamine (kohalikud ja eemalolevad, fopen, readfile);
  • sisestused (PHP / JSP / ASP / SQL-sisestused ja XPath-sisestused);
  • XSS (rist-saitide skripteerimine) (peegeldunud ja pĂŒsiv);
  • kĂ€skude avastamine ja tĂ€itmine (eval(), system(), passtru());
  • CRLF-sisestused (HTTP vastuste eraldamine, sessiooni fikseerimine);
  • XXE (XML vĂ€line entiteet) sisestamine;
  • SSRF (serveri poolel pĂ€ringu vale esitamine);
  • kuulsate potentsiaalselt ohtlike failide kasutamine (tĂ€nu Nikto andmebaasile);
  • .htaccess nĂ”rkade konfiguratsioonide vĂ”imalus, mida saab ĂŒletada;
  • tagatseid faile, mis paljastavad konfidentsiaalset teavet (allika kood);
  • Shellshock;
  • avatud suunamised;
  • ebastandardsete HTTP meetodite lubamine (PUT).

VÔimalused:

  • HTTP, HTTPS ja SOCKS5 proxy tugi;
  • mitme autentimismeetodi tugi: Basic, Digest, Kerberos vĂ”i NTLM;
  • vĂ”ime piirata skaneerimisala (domeen, kaust, leht, URL);
  • ĂŒhe URL parameetri automaatne eemaldamine;
  • mitmed ettevaatusabinĂ”ud lĂ”pmatute skaneerimise tsĂŒklite vastu (nĂ€ide: ifor, parameetri vÀÀrtuste piiramise abil);
  • vĂ”ime seada prioriteedi URL-ide uurimiseks (isegi kui need ei ole skaneerimisalas);
  • vĂ”ime teatud URL-e skaneerimisest ja rĂŒnnakutest vĂ€lja jĂ€tta (nt: URL logout);
  • kĂŒpsiste importimine (neid saamine tööriista wapiti-getcookie abil);
  • vĂ”ime aktiveerida / deaktiveerida SSL-sertifikaatide kontrolli;
  • vĂ”ime JavaScriptist URL-e vĂ€ljavĂ”tta (vĂ€ga lihtne JS tĂ”lgendan);
  • interaktsioon HTML5-ga;
  • mitmesuguseid crawler'i kĂ€itumise ja piirangute juhtimise vĂ”imalusi;
  • skaneerimisprotsessi maksimaalse aja seadmine;
  • mĂ”nede kohandatavate HTTP-pealkirjade lisamine vĂ”i kasutajakonto User-Agent seadistamine.

Lisafunktsioonid:

  • haavatavuste aruannete genereerimine erinevates formaatides (HTML, XML, JSON, TXT);
  • skaneerimise vĂ”i rĂŒnnakute peatamine ja taastamine (seansimehhanism SQLite3 andmebaasiga);
  • terminali silendamine haavatavuse esitlemiseks;
  • erinevad logimise tasemed;
  • kiire ja lihtne viis rĂŒnnakumoodulite aktiveerimiseks / deaktiveerimiseks.

Installeerimine

Wapiti uusimat versiooni saab installida 2 viisil:

  • laadige alla allikas ametlikult lehelt ja kĂ€ivitage installiskript, eelnevalt installides Python3;
  • kasutades kĂ€sku pip3 install wapiti3.

PĂ€rast seda on Wapiti kasutamiseks valmis.

Tööriista kasutamine

Wapiti töö demonstreerimiseks kasutame spetsiaalselt ette valmistatud seisu sites.vulns.pentestit.ru (siseressurss), mis sisaldab erinevaid haavatavusi (Injection, XSS, LFI/RFI) ja muid veebirakenduste puudusi.

Teave antakse ainult tutvumiseks. Ära riku seadusandlust!

PÔhikÀsk skanneri kÀivitamiseks:

# wapiti -u <target> <options>

Sellel on ĂŒsna pĂ”hjalik juhend, kus on suur hulk kĂ€ivitamisvĂ”imalusi, nĂ€iteks:

—scope — rakendusalad
Kui koos URL-iga skaneerimiseks mÀÀrata parameter scope, saab reguleerida saidi skaneerimist, mÀÀrates nii eraldi lehekĂŒlge kui ka kĂ”ik lehed, mida on vĂ”imalik saidilt leida.

-s ja -x — spetsiifiliste URL-ide lisamise vĂ”i eemaldamise parameetrid. Need parameetrid on kasulikud, kui on vaja lisada vĂ”i eemaldada konkreetne URL skaneerimise protsessis.

—skip — mĂ€rgitud parameeter koos selle vĂ”tmega skaneeritakse, kuid rĂŒnnatakse mitte. Kasulik, kui on mingeid ohtlikke parameetreid, mida on parem skaneerimise ajal vĂ€ltida.

—verify-ssl — sertifikaadi kontrollimise sisselĂŒlitamine vĂ”i vĂ€ljalĂŒlitamine.
Wapiti skanner on modulaarselt seadistatud. Siiski, et kĂ€ivitada konkreetseid mooduleid, mis automaatselt ĂŒhendatakse skanneri töö ajal, tuleb kasutada vĂ”tmeid -m ja loetleda vajalikud komadega. Kui vĂ”tme kasutamist ei toimu, siis töötavad vaikimisi kĂ”ik moodulid. KĂ”ige lihtsam variant nĂ€eb vĂ€lja jĂ€rgmiselt:

# wapiti -u http://sites.vulns.pentestit.ru/ -m sql,xss,xxe

See nĂ€ide tĂ€hendab, et kasutame skaneerimisel ainult SQL, XSS ja XXE mooduleid. Lisaks saab moodulite tööd filtreerida vastavalt soovitud meetodile. NĂ€iteks -m “xss: get, blindsql: post, xxe: post”. Sellisel juhul moodul xss rakendatakse GET meetodiga edastatavatele pĂ€ringutele, samas kui moodul blibdsql rakendatakse POST-pĂ€ringutele jne. Muide, kui mĂ”ni loetellu kuuluv moodul ei osutunud skaneerimise ajal vajalikuks vĂ”i töötab liiga kaua, siis kombinatsiooni Ctrl+C vajutamine vĂ”imaldab mööda pÀÀseda praegusest moodulist, valides vastava punkti interaktiivses menĂŒĂŒs.

Wapiti toetab pĂ€ringute edastamist lĂ€bi proksi-serveri, kasutades vĂ”tit -p ja autentimist sihtveebisaidil lĂ€bi parameetri -a. Samuti on vĂ”imalik mÀÀrata autentimise tĂŒĂŒp: Basiс, Digest, Kerberos ja NTLM. Viimaste kahe jaoks vĂ”ib osutuda vajalikuks tĂ€iendavate moodulite installimine. Samuti on vĂ”imalik pĂ€ringutesse lisada igasuguseid pĂ€iseid (sh vabalt valitud User-Agent) ja palju muud.

Autentimise kasutamiseks saab kasutada tööriista wapiti-getcookie. Selle abiga vormindame kĂŒpsiseid, mida Wapiti skaneerimisel kasutab. Formeerimine kĂŒpsiseid toimub kĂ€su abil:

# wapiti-getcookie -u http://sites.vulns.pentestit.ru/login.php -c cookie.json

Töötamise kĂ€igus interaktiivses reĆŸiimis vastame kĂŒsimustele ja anname vajalikku teavet, nagu: kasutajanimi, parool ja muud:

Wapiti — kontrollige oma veebisaidi haavatavuste olemasolu ise

Saame vÀlja faili JSON-formaadis. Teine variant on kogu vajalik teave lisada parameetri kaudu -d:

# wapiti-getcookie - http://sites.vulns.pentestit.ru/login.php -c cookie.json -d "username=admin&password=admin&enter=submit"

Tulemus on analoogne:

Wapiti — kontrollige oma veebisaidi haavatavuste olemasolu ise

Skanneri pÔhifunktsiooni arvesse vÔttes oli meie juhtumi lÔpp-pÀring veebirakenduse testimiseks jÀrgmine:

# 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:3128

kus teiste parameetrite seas:

-f ja -o — aruande salvestamise formaat ja tee;

-m — kĂ”igi moodulite ĂŒhendamine — ei soovitata, kuna see mĂ”jutab testimise aega ja aruande suurust;

—color — rĂ”hutada leitud haavatavusi vastavalt nende kriitilisusele Wapiti enda versiooni jĂ€rgi;

-c — kasutada faili kĂŒpsiseid, genereeritud kasutades wapiti-getcookie;

—scope — rĂŒndeesmĂ€rgi valik. Valides variandi kaust skaneeritakse ja rĂŒnnatakse iga URL-i alates baasist. Baas-URL peab lĂ”ppema kaldkriipsuga (ilma failinime);

—flush-session — vĂ”imaldab uuesti skaneerida, arvestamata varasemaid tulemusi;

-A — kohandatud User-Agent;

-p — vahepealse serveri aadress, kui see on vajalik.

Veidi aruandest

Skaneerimistulemus esitatakse detailse aruandena kÔigi leitud haavatavuste kohta HTML-lehe vormingus, selge ja arusaadava esitusega. Aruandes on mÀrgitud kategooriad ja leitud haavatavuste arv, nende kirjeldus, pÀringud, kÀsud curl ja soovitused nende sulgemiseks. Lihtsustatud navigeerimise huvides lisatakse kategooriate pealkirjadele link, millele klikkides saab neid vaadata:

Wapiti — kontrollige oma veebisaidi haavatavuste olemasolu ise

Oluline puudus raportis on, et seal puudub veebirakenduse kaart, mille abil ei ole selge, kas kĂ”ik aadressid ja parameetrid on analĂŒĂŒsitud. Samuti on valehĂ€irete tĂ”enĂ€osus. Meie puhul on raportis mainitud 'varukoopia faile' ja 'potentsiaalselt ohtlikke faile'. Nende arv ei vasta tĂ”ele, kuna selliseid faile serveris ei olnud:

Wapiti — kontrollige oma veebisaidi haavatavuste olemasolu ise

VĂ”imalik, et vale tööga moodulid parandatakse aja jooksul. Samuti vĂ”ib raporti puuduseks pidada leitud haavatavuste vĂ€rvilise tuvastamise puudumist (vastavalt nende kriitilisusele) vĂ”i vĂ€hemalt nende jagamist kategooriatesse. Ainsana saame me kaudselt mĂ”ista leitud haavatavuse kriitilisust, kui rakendada parameetrit —color skaneerimise ajal ja siis vĂ€rvilise kodeerimisega tuvastatud haavatavused:

Wapiti — kontrollige oma veebisaidi haavatavuste olemasolu ise

Kuid raportis sarnast vÀrvikoodimist ei ole ette nÀhtud.

Haavatavused

SQLi

Skanner suutis osaliselt leida SQL-i haavatavusi. Halduse nÔudmist mitte vajavatel lehtedel SQL haavatavuste otsimisel ei esine mingeid probleeme:

Wapiti — kontrollige oma veebisaidi haavatavuste olemasolu ise

Viga leidmine lehtedel, mis on saadaval ainult autentimise jĂ€rel, ei Ă”nnestunud isegi valideeritud andmeid kasutades, kĂŒpsiseid, kuna tĂ”enĂ€oliselt toimub pĂ€rast edukat autentimist "istungi lahkumine" ja kĂŒpsiseid need muutuvad kehtetuks. Kui deautoriseerimise funktsioon oleks teostatud eraldi skriptina, mis vastutab selle protseduuri töötlemise eest, oleks seda vĂ”imalik tĂ€ielikult vĂ€listada -x parameetri abil, vĂ€ltides sellega selle aktiveerimist. Vastasel juhul ei saa seda töötlemist vĂ€ltida. See ei ole konkreetse mooduli probleem, vaid tööriista ĂŒldine kĂŒsimus, kuid selle nĂŒansi tĂ”ttu ei Ă”nnestunud leida mitmeid sĂŒstimise katseid ressurssi suletud alal.

XSS

Antud ĂŒlesandega skaneerija tegeles suurepĂ€raselt ja leidis kĂ”ik ettevalmistatud haavatavused:

Wapiti — kontrollige oma veebisaidi haavatavuste olemasolu ise

LFI/RFI

Skaneerija leidis kÔik peidetud haavatavused:

Wapiti — kontrollige oma veebisaidi haavatavuste olemasolu ise

KokkuvĂ”ttes nĂ€itab Wapiti, tasuta tööriist, vaatamata valehĂ€iretele ja haavatavuste vahelejĂ€tmistele, ĂŒsna hĂ€id tulemusi. Igal juhul tuleb tunnistada, et skanner on tundlik, paindlik ja mitmekesine ning mis kĂ”ige tĂ€htsam — tasuta, seega on seda Ă”igust kasutada, aidates administraatoreil ja arendajatel saada pĂ”hiteavet veebirakenduse turvalisuse seisukorrast.

PĂŒsige terved ja kaitstud!

Allikas: habr.com

Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster