Wapiti - kontrollerar en webbplats för sårbarheter på egen hand

Wapiti - kontrollerar en webbplats för sårbarheter på egen hand
Förr artikeln vi pratade om Nemesida WAF gratis - ett gratis verktyg för att skydda webbplatser och API:er från hackerattacker, och i det här beslutade vi att granska en populär sårbarhetsskanner älg.

Att skanna en webbplats efter sårbarheter är en nödvändig åtgärd, som tillsammans med analys av källkoden låter dig bedöma nivån på dess säkerhet mot hot om kompromiss. Du kan skanna en webbresurs med hjälp av specialverktyg.

Nikto, W3af (skrivet i Python 2.7, som inte längre stöds) eller Arachni (stöds inte längre sedan februari) är de mest populära lösningarna som presenteras i gratissegmentet. Naturligtvis finns det andra, till exempel Wapiti, som vi bestämde oss för att fokusera på.

Wapiti arbetar med följande typer av sårbarheter:

  • filexpansion (lokal och fjärrstyrd, fopen, läsfil);
  • injektioner (PHP / JSP / ASP / SQL-injektion och XPath-injektion);
  • XSS (Cross Site Scripting) (reflekterande och ihållande);
  • upptäckt och exekvering av kommandon (eval(), system(), passtru());
  • CRLF-injektioner (HTTP-svarsdelning, sessionsfixering);
  • XXE (XML extern enhet) inbäddning;
  • SSRF (Server Side Request Forgery);
  • användning av kända potentiellt farliga filer (tack vare Nikto-databasen);
  • svaga .htaccess-konfigurationer som kan kringgås;
  • förekomsten av säkerhetskopior som avslöjar konfidentiell information (avslöjande av källkod);
  • Shellshock;
  • öppna omdirigeringar;
  • icke-standardiserade HTTP-metoder som kan lösas (PUT).

funktioner:

  • HTTP, HTTPS och SOCKS5 proxystöd;
  • autentisering med flera metoder: Basic, Digest, Kerberos eller NTLM;
  • möjligheten att begränsa skanningsområdet (domän, mapp, sida, URL);
  • automatisk borttagning av en av parametrarna i URL:en;
  • flera försiktighetsåtgärder mot ändlösa skanningsslingor (exempel: ifor, gränsvärden för en parameter);
  • möjligheten att ställa in en prioritet för att undersöka webbadresser (även om de inte finns i skanningsområdet);
  • möjlighet att utesluta vissa webbadresser från genomsökning och attacker (till exempel: URL-logga ut);
  • importera cookies (skaffa dem med hjälp av verktyget wapiti-getcookie);
  • möjlighet att aktivera/avaktivera SSL-certifikatverifiering;
  • möjligheten att extrahera webbadresser från JavaScript (en mycket enkel JS-tolk);
  • interaktion med HTML5;
  • flera alternativ för att hantera sökrobotbeteende och begränsningar;
  • ställa in den maximala tiden för skanningsprocessen;
  • lägga till några anpassade HTTP-rubriker eller ställa in en anpassad User-Agent.

Ytterligare egenskaper:

  • skapa sårbarhetsrapporter i olika format (HTML, XML, JSON, TXT);
  • pausa och återuppta en genomsökning eller attack (sessionsmekanism som använder SQLite3-databaser);
  • bakgrundsbelysning i terminalen för att markera sårbarheter;
  • olika nivåer av loggning;
  • Ett snabbt och enkelt sätt att aktivera/avaktivera attackmoduler.

Installation

Den nuvarande versionen av Wapiti kan installeras på två sätt:

  • ladda ner källan från tjänstemannen сайта och kör installationsskriptet efter att ha installerat Python3 tidigare;
  • med hjälp av kommandot pip3 install wapiti3.

Efter detta kommer Wapiti att vara redo att gå.

Arbeta med verktyget

För att demonstrera Wapitis arbete kommer vi att använda en speciellt förberedd monter sites.vulns.pentestit.ru (intern resurs), som innehåller olika sårbarheter (Injection, XSS, LFI/RFI) och andra brister i webbapplikationer.

Informationen tillhandahålls endast i informationssyfte. Bryt inte mot lagen!

Grundläggande kommando för att starta skannern:

# wapiti -u <target> <options>

Samtidigt finns det ganska detaljerad hjälp med ett stort antal lanseringsalternativ, till exempel:

--omfattning - Applikationsområde
Om du anger omfattningsparametern tillsammans med webbadressen för genomsökning kan du justera webbplatsens skanningsområde genom att ange både en enskild sida och alla sidor som kan hittas på webbplatsen.

-s и -x — alternativ för att lägga till eller ta bort specifika webbadresser. Dessa alternativ är användbara när du behöver lägga till eller ta bort en specifik webbadress under genomsökningsprocessen.

--hoppa — den angivna parametern med denna nyckel kommer att skannas, men kommer inte att attackeras. Användbart om det finns några farliga parametrar som bäst utesluts under skanning.

--verifiera-ssl — aktivera eller inaktivera certifikatverifiering.
Wapiti-skannern är modulär. Men för att starta specifika moduler, inklusive de som ansluts automatiskt medan skannern körs, måste du använda -m-omkopplaren och lista de du behöver, separerade med kommatecken. Om nyckeln inte används kommer alla moduler att fungera som standard. I den enklaste versionen kommer det att se ut så här:

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

Detta användningsexempel innebär att vi endast kommer att använda SQL-, XSS- och XXE-modulerna när vi skannar målet. Dessutom kan du filtrera driften av moduler beroende på önskad metod. Till exempel -m "xss: get, blindsql: post, xxe: post". I det här fallet modulen xss kommer att gälla för förfrågningar som skickas med GET-metoden och modulen blibdsql - för att POST-förfrågningar etc. Förresten, om någon modul som ingick i listan inte behövdes under skanningen eller tar väldigt lång tid, kan du genom att trycka på Ctrl+C-kombinationen hoppa över den aktuella modulen genom att välja motsvarande objekt i den interaktiva menyn.

Wapiti stöder att skicka förfrågningar genom en proxy med hjälp av en nyckel -p och autentisering på målplatsen genom parametern -a. Du kan också ange autentiseringstyp: Grundläggande, Smälta, Kerberos и NTLM. De två sista kan kräva installation av ytterligare moduler. Dessutom kan du infoga alla rubriker i förfrågningar (inklusive godtyckliga User-Agent) och mycket mer.

För att använda autentisering kan du använda verktyget wapiti-getcookie. Med dess hjälp formar vi kaka, som Wapiti kommer att använda vid skanning. Bildning kaka gjort med kommandot:

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

När vi arbetar interaktivt svarar vi på frågor och anger nödvändig information som inloggning, lösenord etc.:

Wapiti - kontrollerar en webbplats för sårbarheter på egen hand

Utdata är en fil i JSON-format. Ett annat alternativ är att lägga till all nödvändig information via parametern -d:

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

Resultatet blir liknande:

Wapiti - kontrollerar en webbplats för sårbarheter på egen hand

När man överväger skannerns huvudfunktionalitet var den slutliga begäran om att testa webbapplikationen i vårt fall:

# 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

där bland andra parametrar:

-f и -o — Format och sökväg för att spara rapporten.

-m — att ansluta alla moduler rekommenderas inte, eftersom kommer att påverka testtid och rapportstorlek;

--Färg — markera hittade sårbarheter beroende på deras kriticitet enligt Wapiti själv;

-c - använda en fil med kaka, genererad med hjälp av wapiti-getcookie;

--omfattning — att välja ett mål för attack. Att välja ett alternativ mapp Varje webbadress kommer att genomsökas och attackeras, med början med basen. Bas-URL:n måste ha ett snedstreck (inget filnamn);

--spolningssession — möjliggör upprepad skanning, där tidigare resultat inte kommer att beaktas.

-A - egen User-Agent;

-p — proxyserveradress, om det behövs.

Lite om rapporten

Skanningsresultatet presenteras i form av en detaljerad rapport om alla hittade sårbarheter i HTML-sidformat, i en tydlig och lättläst form. Rapporten kommer att ange kategorierna och antalet sårbarheter som hittats, deras beskrivningar, förfrågningar, kommandon för curl och tips om hur du stänger dem. För att underlätta navigeringen kommer en länk att läggas till kategorinamnen, genom att klicka på vilken du kan gå till den:

Wapiti - kontrollerar en webbplats för sårbarheter på egen hand

En betydande nackdel med rapporten är frånvaron av en webbapplikationskarta som sådan, utan vilken det inte kommer att vara klart om alla adresser och parametrar har analyserats. Det finns också risk för falska positiva resultat. I vårt fall innehåller rapporten "säkerhetskopieringsfiler" och "potentiellt farliga filer." Deras antal stämmer inte överens med verkligheten, eftersom det inte fanns några sådana filer på servern:

Wapiti - kontrollerar en webbplats för sårbarheter på egen hand

Kanske kommer felaktigt fungerande moduler att fixas med tiden. En annan nackdel med rapporten är bristen på färgning av de hittade sårbarheterna (beroende på deras kritik), eller åtminstone dela in dem i kategorier. Det enda sättet vi indirekt kan förstå hur kritiskt den hittade sårbarheten är är att använda parametern --Färg under skanning, och sedan kommer sårbarheterna som hittas att färgas i olika färger:

Wapiti - kontrollerar en webbplats för sårbarheter på egen hand

Men själva rapporten ger inte sådan färg.

Sårbarheter

SQLi

Skannern klarade delvis SQLi-sökningen. När du söker efter SQL-sårbarheter på sidor där autentisering inte krävs uppstår inga problem:

Wapiti - kontrollerar en webbplats för sårbarheter på egen hand

Det var inte möjligt att hitta en sårbarhet på sidor som var tillgängliga först efter autentisering, inte ens med valid kaka, eftersom deras session troligen kommer att "loggas ut" efter framgångsrik autentisering och kaka blir ogiltig. Om avauktoriseringsfunktionen implementerades som ett separat skript som ansvarar för att bearbeta denna procedur, skulle det vara möjligt att helt utesluta den genom parametern -x och därigenom förhindra att den utlöses. Annars kommer det inte att vara möjligt att utesluta dess behandling. Detta är inte ett problem med en specifik modul, utan med verktyget som helhet, men på grund av denna nyans var det inte möjligt att upptäcka flera injektioner i ett slutet resursområde.

XSS

Skannern klarade den givna uppgiften perfekt och hittade alla förberedda sårbarheter:

Wapiti - kontrollerar en webbplats för sårbarheter på egen hand

LFI/RFI

Skannern hittade alla underliggande sårbarheter:

Wapiti - kontrollerar en webbplats för sårbarheter på egen hand

I allmänhet, trots falska positiva och saknade sårbarheter, visar Wapiti, som ett gratisverktyg, ganska bra prestandaresultat. I vilket fall som helst är det värt att inse att skannern är ganska kraftfull, flexibel och multifunktionell, och viktigast av allt, den är gratis, så den har rätt att användas för att hjälpa administratörer och utvecklare att få grundläggande information om säkerhetsstatusen för en webb. Ansökan.

Håll dig frisk och skyddad!

Källa: will.com

Lägg en kommentar