Pentesting útoků a obrany webových aplikací pomocí bWAPP

bWAPP je webová stránka, která byla vyvinuta s chybami zabezpečení, takže začátečníci i experti mohou provádět postupy pentestingu a etického hackingu. Může být hostován na Linuxu nebo Windows na Apache nebo IIS a MySQL. Je podporován ve WAMP nebo XAMPP. Další možností je použít virtuální stroj, který funguje pro VMware nebo pro VirtualBox.

bWAPP je bezplatný a otevřený, lze jej stáhnout ve dvou verzích, jednu pro místní použití a druhou pro instalaci do virtuálního počítače. Web je vyvíjen v PHP a MySQL, takže je multiplatformní. Stahujeme instalaci bWAPP lokálně, pokud chceme instalovat do virtuálního počítače, projekt je Bee-Box.

Bee-box je virtuální stroj Linux se vším, co je předinstalováno. Tímto způsobem musíme pouze prozkoumat všechny chyby zabezpečení bWAPP, aniž bychom riskovali znehodnocení webu bWAPP. Také s virtuálním strojem se můžeme pokusit získat přístup root.

bWAPP má více než 100 chyb Aby bylo možné zkoumat a objevovat, pokrývá všechny hlavní známé chyby zabezpečení webu, včetně všech bezpečnostních rizik. Projekt umožňuje nejen zjistit zranitelnosti, ale také umožňuje najít řešení.

V tomto tutoriálu nainstalujeme verzi Bee-Box bWAPPZa tímto účelem rozbalíme stažený soubor a vytvoříme složku s mnoha soubory vmdk na našem lokálním serveru. Dále vytvoříme virtuální počítač, který přiřadí 32bitovou verzi Linuxu Ubuntu.

Dále musíme vybrat stažený soubor s názvem bee-box.vdmk

Před spuštěním virtuálního počítače nezapomeňte, že budeme muset nakonfigurovat síť, to děláme z Nastavení aby měl IP adresu a měl přístup k virtuálnímu počítači z jiného počítače.

Klikneme na vytvořit a poté na Start, aby virtuální stroj začal fungovat, po načtení se nám zobrazí plocha.

Dále otevřeme terminál, abychom zjistili, jaká IP používá příkaz ifconfig.

Vidíme, že IP je v tomto případě 192.168.0.14, pokud tuto IP otestujeme na počítači mimo virtuální počítač, měli bychom mít přístup na web:

 http://192.168.0.14/bWAPP
A výsledek bude následující:

Poté můžeme začít s přihlašovací stránkou, ve výchozím nastavení je uživatel včelí a heslo je chyba pro přístup k ovládacímu panelu. V nabídce Chyby budeme mít několik příkladů k použití a testování některých zranitelností od nejjednodušších po nejsložitější. Podívejme se na některé zranitelnosti podle typu útoku.

The zranitelnosti jsou rozděleny do kategorií nebo kapitol které jsou následující:

A1 injekceZde jsou seskupeny zranitelnosti HTML injekce, SQL, XSS, XPATH a všechny ty, které mají co do činění s odesíláním parametrů prostřednictvím prohlížečů.

A2 Přerušení autentizace a relaceTady to vypadá porušovat captchas a přihlašovací formuláře pomocí technik nahrazování URL, zachycování parametrů a používání ID relace.

A3 skriptování mezi stránkami (XSS)Tady jsou Zranitelnosti související s XSS které nejsou příliš nebezpečné, ale spíše otravné.

A4 Nezabezpečené objekty a adresářeTady je o změnit parametry v odkazech z kódu před odesláním formuláře.

A5 Zabezpečení a konfiguraceTady uvidíme některé útoky jako DDOS a střední útok, která se bude snažit ovlivnit služby, jako je pošta a služby, které fungují.

A6 Vystavení citlivým údajůmZde uvidíme řadu zranitelností, které umožňují data serveru jsou vystavena v prohlížeči.

Toto jsou některé chyby zabezpečení, v tomto tutoriálu se zaměříme na nejznámější útoky a možnost převzetí kontroly nad serverem.

1. HTML injekce


HTML Reflected Injection vám umožňuje vložit kód HTML do textového pole a poté jej zobrazit na webu. Vybereme první metodu Injection by GET, máme dvě textová pole, pokud do každého zadáme například odkaz:
 Naléhavá zpráva | Vaše prodeje
Při odesílání formuláře níže uvidíme, že jsou zobrazeny oba odkazy, a necháme ho čekat, než někdo klikne. Můžeme také vyzkoušet metodu POST.

ZVĚTŠIT

Dalším problémem nekontrolování vstupu dat HTML je to, že bychom mohli odeslat formulář, který uživatele přiměje věřit, že se musí přihlásit nebo zadat nějaká data a tato data odeslat na jinou stránku.

 Byl jste odpojen. 
Chcete -li pokračovat, zadejte své uživatelské jméno a heslo:
klíč:

ZVĚTŠIT

2. SQL injekce


Podívejme se na další útok, jako je SQL Injection, pokud budeme hledat BUG pro možnost SQL Injection (GET / Search), v této sekci můžeme hledat filmy, například Iron Man, což má za následek data filmu.

ZVĚTŠIT

Poté se můžeme pokusit vložit kód SQL, abychom otestovali, zda je databáze zranitelná. K tomu použijeme následující kód, který vrátí seznam databází, pokud:

 iron man 'union select 1, table_name, 3,4,5,6,7 from INFORMATION_SCHEMA.TABLES where table_schema = database () -'
Výsledkem je seznam tabulek, proto je databáze zranitelná:

ZVĚTŠIT

S vědomím, že databáze je zranitelná, můžeme použít některé techniky, které jsme viděli v tutoriálu SQLMAP, nástroj SQL Injection a hackování etické databáze, kde se dostáváme na kořenovou úroveň hledáním klíčů správce.

Z okna terminálu napíšeme následující příkaz, použijeme stránku, kterou hledáme pro film, protože má parametr, který může být zranitelný.

 sqlmap -u "http://192.168.0.14/bWAPP/sqli_1.php?title=iron&action=search" --dbs

Ukazuje nám databáze, jednou z nich je bWAPP, proto se pokusíme získat seznam tabulek s vědomím, že databázovým strojem je MySQL 5. K získání seznamu tabulek použijeme následující příkaz.

 sqlmap -u "http://192.168.0.14/bWAPP/sqli_1.php?title=iron&action=search" -tables

Vidíme, že obsahuje seznam všech tabulek, a to nejen z webu, ale také ze systému, takže data můžeme získat od správce Linuxu. Můžeme také využít relaci PHP pomocí Firebug, vidíme číslo relace, protože při vytváření uživatele nebo při přihlašování nebo generování dynamického obsahu, jako je vyhledávání, odpověď serveru vytvoří relaci PHPS.

ZVĚTŠIT

Pomocí příkazu --uživatelé a relaci nebo pomocí příkazu bez relace budeme moci vidět uživatele systému.

 sqlmap -u "http://192.168.0.14/bWAPP/sqli_1.php?title=iron&action=search" -uživatelé
Další příkaz s ID relace:
 sqlmap -u „http://192.168.0.14/bWAPP/sqli_1.php?title=iron&action=search" --cookie = ”PHPSESSID = e6f734f935bca3bf86013add7ea2e3f9; security_level = 0” -uživatelé

Dále budeme hledat uživatele systému pomocí následujícího příkazu:

 sqlmap -u "http://192.168.0.14/bWAPP/sqli_1.php?title=iron&action=search" dba --is -dba --privileges --dbs -dump 
V důsledku toho získáme tabulky, kde je heslo, jeden z nich jsou uživatelé, kteří mají data správce, a další jsou hrdinové tabulky a uživatelé (uživatelé), které použijeme k přihlášení jako uživatelé.

Tabulka uživatelů obsahuje údaje správce webu:

Dále získáme heslo uživatele root, které najdeme výše, k tomu použijeme následující příkaz:

 sqlmap -u "http://192.168.0.14/bWAPP/sqli_1.php?title=iron&action=search" -f -b --current -user --is -dba --is -dba --privileges --dbs - skládka
Na konci příkazů prostřednictvím útoku hrubou silou zjistíme, že heslo správce systému je chyba a uživatel je root.

Pokusíme se z terminálu připojit přes ssh k virtuálnímu počítači a převzít vzdálené ovládání počítače pomocí následujícího příkazu:

 ssh [email protected]
Výsledkem pomocí uživatele root a hesla chyby je připojení s oprávněními správce k virtuálnímu počítači.

Dále vyzkoušíme, zda se můžeme do sekce hrdinové a uživatelé přihlásit pomocí dříve získaných údajů, například uživatel neo a heslo trojice.

S těmito uživatelskými daty se nám podařilo bez problémů přistupovat. Pokud použijeme tabulku uživatelů, můžeme se také přihlásit.

3. Injekce HTML / XPATH


Jednou z nejméně myšlenek na útoky jsou ty prohlížeče, které umožňují úpravu kódu, pokud změníme odkaz na škodlivý web, uživatel si toho nevšimne a změna bude při aktualizaci webu ztracena.

Například změníme heslo a kliknutím pravým tlačítkem otevřete inspektor nebo editor kódu a změníme adresu URL change_password.php na http://google.com a zavřeme editor

ZVĚTŠIT

Když tedy uživatel klikne na tento odkaz, bude přesměrován na jinou stránku, je to velmi neúčinné, protože při obnově nebo změně stránky se odkaz vrátí na původní. To si musíme prohlédnout před kliknutím na odkaz, který nás přenese na zabezpečený web nebo do stejné domény.

4. Injekce na straně serveru


Injekce na straně serveru je, když je web zranitelný a umožňuje zadávání příkazů z jazyka nebo operačního systému k provádění akcí na serveru.

Útočník odešle škodlivý kód nebo příkaz prostřednictvím textového pole webové aplikace, kterou spouští webový server. Podívejme se na příklad, který vám umožní vypsat adresáře pomocí příkazu Linux ls, který napíšeme následovně:

 

ZVĚTŠIT

Výsledkem bude seznam všech adresářů na serveru, takže musíme zkontrolovat, zda nelze zadat žádné příkazy.

ZVĚTŠIT

Jedním z nástrojů, které nám projekt bWAPP navrhuje, je ZAP (Zed Attack Proxy), viděli jsme tento nástroj v tutoriálu Naskenujte zranitelnost webu pomocí ZAP, je široce používán ke skenování zranitelností a provádění penetračních testů na webových stránkách. Nejaktuálnější verzi si můžeme stáhnout z následujícího odkazu:

STÁHNOUT ZAP

Vyberte verzi podle operačního systému, který máme, nebo multiplatformní verzi vyvinutou v Javě. Po instalaci se pokusíme naskenovat web bWAPP pomocí ZAP a vyhledat nějaké chyby zabezpečení.

ZVĚTŠIT

Když spustíme ZAP a provedeme skenování, uvidíme, že detekuje většinu zranitelností, abychom definovali pravidla skenování, můžeme přejít do nabídky Analyzovat> Pravidla skenování a potom dvakrát klikneme na Výchozí zásady.

Podívejme se na jedné z přihlašovacích stránek, která zjistila, že uživatelská úroveň je odeslána jako parametr, v tomto případě správce.

ZVĚTŠIT

Můžeme také použít filtry, jak jsme viděli v tutoriálu ZAP, k provádění injekcí SQL a dalších útoků.

Zabezpečení webových aplikací je velmi důležitý aspekt kromě dobrého designu a obsahu. bWAPP je platforma, která nám umožní poznat a otestovat mnoho zranitelností a poté tyto znalosti použít na našem webu a také slouží k tomu, aby specialisté, vývojáři a studenti mohli zranitelnosti webu objevit a předcházet jim.

bWAPP je široce používán pro projekty penetrace webových aplikací a projekty etického hackingu. bWAPP pokrývá všechny hlavní známé chyby zabezpečení webu, včetně všech rizik projektu OWASP Top 10, který rok od roku sbírá zranitelnosti v 10 kategoriích.

Nakonec doporučujeme tento článek s vysvětlením typy kybernetických útoků.

wave wave wave wave wave