Wapiti — oma jĂ”ududega veebisaidi haavatavuste kontrollimine

Wapiti — oma jĂ”ududega veebisaidi haavatavuste kontrollimine
Eelmisel artiklis rÀÀkisime Nemesida WAF Free — tasuta tööriist, mis kaitseb veebisaite ja API-sid hĂ€kkerirĂŒnnakute eest. Otsustasime teha ĂŒlevaate populaarsetest turvaaukude skaneerimise tööriistadest. Wapiti.

Veebisaidi turvaaukude skaneerimine on hĂ€davajalik meetod, mis koos lĂ€htekoodi analĂŒĂŒsiga vĂ”imaldab hinnata saidi turvalisuse taset vĂ”imalike ohtude eest. Veebiteenuse skaneerimist saab teha spetsialiseeritud tööriistadega.

Nikto, W3af (kirjutatud Python 2.7, mille tugi on lÔppenud) vÔi Arachni (mis ei saa enam toetamist alates veebruarist) on tasuta valiku seas kÔige populaarsemad lahendused. Loomulikult on olemas ka teisi, nÀiteks Wapiti, millele me keskendume.

Wapiti tuvastab jÀrgmisi turvaauke:

  • failide avalikustumine (kohalikud ja eemalolevad, fopen, readfile);
  • sĂŒstid (PHP / JSP / ASP / SQL-sĂŒstid ja XPath-sĂŒstid);
  • XSS (vÔÔraste skriptide rĂŒnnak) (peegelduvad ja pĂŒsivad);
  • kĂ€skude tuvastamine ja tĂ€itmine (eval (), system (), passtru ());
  • CRLF-sĂŒstid (HTTP vastuste jagamine, seansi fikseerimine);
  • XXE (XML vĂ€line entiteet) sĂŒstimine;
  • SSRF (serveripoolne pĂ€ringute valeidentifitseerimine);
  • tuntud potentsiaalselt ohtlike failide kasutamine (Nikto andmebaasi kaudu);
  • nĂ”rgad .htaccess seadistused, mida saab mööda hiilida;
  • varukoopiafailide olemasolu, mis avalikustavad konfidentsiaalset teavet (lĂ€htekoodi avalikustamine);
  • Shellshock;
  • avatud ĂŒmbersuunamised;
  • ebastandardsete HTTP meetodite lubamine (PUT).

VÔimalused:

  • toetab HTTP, HTTPS ja SOCKS5 proksisid;
  • autentimine mitmete meetoditega: Basic, Digest, Kerberos vĂ”i NTLM;
  • vĂ”imalus piirata skaneerimise ulatust (domeen, kaust, leht, URL);
  • automaatne ĂŒhe URL parameetri eemaldamine;
  • mitmed ettevaatusabinĂ”ud lĂ”putute skaneerimisringide vastu (nĂ€iteks: ifor, parameetri vÀÀrtuste piiramisega);
  • vĂ”imalus mÀÀrata URL-ide prioriteetide uurimiseks (isegi kui need ei asu skaneerimise piirkonnas);
  • vĂ”imalus vĂ€listada mĂ”ned URL-id skaneerimisest ja rĂŒnnakutest (nĂ€iteks: URL logout);
  • kĂŒpsiste importimine (saamine tööriista wapiti-getcookie kaudu);
  • vĂ”imalus aktiveerida/deaktiveerida SSL-sertifikaatide kontrollimine;
  • vĂ”imalus ekstraheerida URL JavaScriptist (vĂ€ga lihtne JS-interpretator);
  • koostöö HTML5-ga;
  • mĂ”ned vĂ”imalused crawler'i kĂ€itumise ja piirangute haldamiseks;
  • skaneerimisprotsessi maksimaalse aja seadmine;
  • mĂ”nede kohandatavate HTTP-pealkirjade lisamine vĂ”i kohandatud User-Agent'i seadistamine.

Lisafunktsioonid:

  • haavatavusraportite loomine erinevates formaatides (HTML, XML, JSON, TXT);
  • skaneerimise vĂ”i rĂŒnnaku peatamine ja jĂ€tkamine (seansimehhanism SQLite3 andmebaasi kasutades);
  • terminaalihaldus haavatavuste esitlemiseks;
  • erinevad logimise tasemed;
  • kiire ja lihtne viis rĂŒnnakumoodulite aktiveerimiseks/deaktiveerimiseks.

Paigaldamine

Praeguse Wapiti versiooni saab installida 2 viisil:

  • alla laadida allika ametlikult lehelt ja kĂ€ivitada installiskeem, eelnevalt paigaldades Python3;
  • kasutades kĂ€sku pip3 install wapiti3.

PÀrast seda on Wapiti valmis tööks.

Tööriista kasutamine

Wapiti töö demonstreerimiseks kasutame spetsiaalselt ettevalmistatud seisti sites.vulns.pentestit.ru (siseressurss), mis sisaldab erinevaid haavatavusi (sisestus, XSS, LFI/RFI) ja muid veebirakenduste puudusi.

Teave on antud ainult tutvumiseks. Ärge rikkuda seadusi!

PÔhikomandad skanneri kÀivitamiseks:

# wapiti -u <target> <options>

Samas on olemas ĂŒsna ĂŒksikasjalik abi, kus on palju kĂ€ivitamisvalikuid, nĂ€iteks:

—scope — skaneerimise ulatus
Kui lisada skaneerimise URL'ile scope parameeter, saab reguleerida saidi skaneerimise ulatust, mÀrkimiseks eraldi lehte vÔi kÔiki lehti, mida saidilt leida.

-s ja -x — parameetrid, mis lisavad vĂ”i eemaldavad konkreetsed URL-aadressid. Need parameetrid on kasulikud, kui on vaja lisada vĂ”i eemaldada konkreetne URL skaneerimisprotsessist.

—skip — mÀÀratud parameeter selle vĂ”tmega skaneeritakse, kuid ei rĂŒnnata. Kasulik, kui on mingeid ohtlikke parameetreid, mida oleks parem skaneerimisest vĂ€lja jĂ€tta.

—verify-ssl — sertifikaadi kontrollimise lubamine vĂ”i keelamine.
Wapiti skanner on modulaarne. K however, for running specific modules among those that are connected automatically when the scanner operates, the key -m should be used and the desired modules listed with a comma. If the key is not used, all modules will work by default. In the simplest variant, this will look as follows:

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

See nĂ€idis tĂ€hendab, et me kasutame sihtmĂ€rkide skaneerimisel ainult SQL, XSS ja XXE mooduleid. Lisaks on vĂ”imalik filtreerida moodulite tööd sĂ”ltuvalt vajalikust meetodist. NĂ€iteks -m “xss: get, blindsql: post, xxe: post”. Sellisel juhul rakendatakse moodulit xss GET meetodiga edastatavatele pĂ€ringutele, samas kui moodul blibdsql rakendatakse POST pĂ€ringutele jne. Ühtlasi, kui mĂ”nda moodulit, mis on nimekirjas, ei vajata skaneerimise ajal vĂ”i see töötab vĂ€ga kaua, siis klahvikombinatsiooni Ctrl+C abil saab olemasoleva mooduli kasutamise vahele jĂ€tta, valides vastava punkti interaktiivses menĂŒĂŒs.

Wapiti toetab pĂ€ringute edastamist lĂ€bi proxy-serveri vĂ”tmega -p ja autentimist sihtmĂ€rgis oleva veebisaidi kaudu parameetriga -a. Samuti on vĂ”imalik mÀÀrata autentimise tĂŒĂŒp: Basiс, Digest, Kerberos ja NTLM. Kahte viimast vĂ”ib olla vaja tĂ€iendavate moodulite installimiseks. Lisaks on vĂ”imalik pĂ€ringutesse sisestada mis tahes pĂ€iseid (sealhulgas suvaline User-Agent) ja palju muud.

Autentimise kasutamiseks saab kasutada tööriista wapiti-getcookie. Selle abil koostame kĂŒpsised, mida Wapiti kasutab skaneerimisel. Koostamine kĂŒpsised teostatakse kĂ€suga:

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

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

Wapiti — oma jĂ”ududega veebisaidi haavatavuste kontrollimine

VÀljundina saame JSON formaadis faili. Teine vÔimalus on lisada kogu vajalik teave parameetri kaudu -d:

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

Tulemus on sarnane:

Wapiti — oma jĂ”ududega veebisaidi haavatavuste kontrollimine

Peamise funktsionaalsuse vaatamisel oli meie jaoks veebirakenduse testimiseks lÔpppÀring:

# 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 vorming ja tee salvestamiseks;

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

—color — toob esile leitud haavatavused vastavalt nende tĂ”sidusele Wapiti enda versiooni jĂ€rgi;

-c — faili kasutamine kĂŒpsised, mis on genereeritud kasutades wapiti-getcookie;

—scope — sihtmĂ€rgi valik rĂŒnnakuks. Valides variandi kaust skaneeritakse ja rĂŒnnatakse iga URL, alustades baasist. Baasu URL peab olema kaldkriipsuga (ilma failinime);

—flush-session — vĂ”imaldab teostada uuesti skaneerimist, kus eelnevaid tulemusi ei arvestata;

-A — kohandatud User-Agent;

-p — proxy serveri aadress, kui seda on vaja.

Veidi raportist

Skaneerimise tulemused esitatakse pÔhjaliku raportina kÔigist avastatud haavatavustest HTML-lehe formaadis, mis on arusaadavas ja mugavas vormingus. Raportis on mÀrgitud kategooriad ja avastatud haavatavuste arv, nende kirjeldus, pÀringud, kÀsud curl ja soovitused nende sulgemiseks. Navigatsiooni mugavuse huvides lisatakse kategooriate pealkirjadele link, millele klikkides saab liikuda sellele:

Wapiti — oma jĂ”ududega veebisaidi haavatavuste kontrollimine

Oluline puudus raportis on, et selles puudub veebirakenduse kaart, ilma milleta ei ole selge, kas kĂ”ik aadressid ja parameetrid on analĂŒĂŒsitud. Samuti on olemas valehĂ€irete tĂ”enĂ€osus. Meie juhul on raportis kirjas "varufailid" ja "vĂ”imalikult ohtlikud failid". Nende arv ei vasta tegelikkusele, kuna selliseid faile serveris ei olnud:

Wapiti — oma jĂ”ududega veebisaidi haavatavuste kontrollimine

VĂ”ib-olla ajaga parandavad vale töömodulid olukorda. Samuti on raporti puuduseks avastatud haavatavuste vĂ€rvumine (sĂ”ltuvalt nende kriitilisusest) vĂ”i vĂ€hemalt nende kategoriseerimise puudumine. Ainus, kuidas me saame kaudselt mĂ”ista avastatud haavatavuse kriitilisust, on kasutada parameetrit —color skaneerimise kĂ€igus ja siis vĂ€rvitakse leitud haavatavused erinevates vĂ€rvides:

Wapiti — oma jĂ”ududega veebisaidi haavatavuste kontrollimine

Kuid raportis selline vÀrvimine ei ole ette nÀhtud.

Haavatavused

SQLi

Skanner suutis osaliselt avastada SQLi. SQL-haavatavuste otsimisel lehtedel, kus autentimine ei ole vajalik, mingeid probleeme ei esine:

Wapiti — oma jĂ”ududega veebisaidi haavatavuste kontrollimine

Ei Ă”nnestunud leida haavatavust lehtedel, mis on ligipÀÀsetavad ainult pĂ€rast autentimist, isegi kasutades kehtivaid kĂŒpsised, kuna pĂ€rast edukat autentimist tĂ”enĂ€oliselt toimub "seansi lĂ”petamine" ja kĂŒpsised muutuvad kehtetuks. Kui deautentimise funktsioon oleks teostatud eraldi skripti kaudu, mis vastutab selle protseduuri töötlemise eest, oleks seda saanud tĂ€ielikult vĂ€listada parameetriga -x, takistades seelĂ€bi selle toimimist. Vastasel juhul ei Ă”nnestu selle töötlemist vĂ€listada. See ei ole konkreetse moduuli probleem, vaid kogu tööriista probleem, kuid selle nĂŒansi tĂ”ttu ei Ă”nnestunud avastada mitmeid sĂŒstimist suletud ressursi osas.

XSS

MÀÀratud ĂŒlesandega skanner sai suurepĂ€raselt hakkama ja leidis kĂ”ik ettevalmistatud haavatavused:

Wapiti — oma jĂ”ududega veebisaidi haavatavuste kontrollimine

LFI/RFI

Skanner leidis kÔik vaktsineeritud haavatavused:

Wapiti — oma jĂ”ududega veebisaidi haavatavuste kontrollimine

Üldiselt, vaatamata valehĂ€iretele ja vaktsineerimise vahelejĂ€tmisele, nĂ€itab Wapiti kui tasuta tööriist ĂŒsna hĂ€id tulemusi. Igal juhul tuleb tunnistada, et skanner on ĂŒsna vĂ”imas, paindlik ja multifunktsionaalne ning mis kĂ”ige tĂ€htsam — tasuta, seega on see Ă”igustatud kasutamiseks, aidates administraatoreid ja arendajaid saada pĂ”hiteavet veebirakenduse turvalisuse seisundi kohta.

PĂŒsige terved ja kaitstud!

Allikas: habr.com

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster