SQLmap Tutorial

Samotné spuštění nástroje sqlmap není nijak složité.
Tento tutoriál vás s tímto výkonným nástrojem pro testování injekcí sql přivede od „noob“ k „ninja“.

Sqlmap je nástroj založený na Pythonu, což znamená, že obvykle poběží na jakémkoli systému s Pythonem. My však máme rádi Linux a konkrétně Ubuntu, díky němu se prostě snadno dělají věci. Python je v Ubuntu již nainstalován. Jedná se o stejný nástroj, který používáme na našem online webu pro testování injekcí sql.

Chcete-li začít pracovat s nástrojem sqlmap, stačí jej stáhnout, rozbalit a spustit příkaz s potřebnými volbami. Protože mezi vámi mohou být uživatelé systému Windows, začnu nejprve tím, jak zprovoznit instalaci v Ubuntu. Začít pracovat s linuxovým systémem Ubuntu je snadné, i když při pomyšlení na Linux se dostaví třesoucí se křeče strachu. Kdo ví, třeba se vám dokonce zalíbí.
– Instalace SQLmap
– HTTP GET
– Zablokování
– Databázové tabulky
– Výpis dat
– Tipy
– Verbose výstup
– Pověření k databázi
– Pověření k připojení k DB

Instalace SQLmap

Krok 1: Pořiďte si operační systém založený na Linuxu

Pokud se chystáte spustit SQLmap v systému Windows s Pythonem, ujistěte se, že máte nainstalovaný Python, a přejděte k dalšímu kroku. V opačném případě si nastartujte systém Linux. Buď nainstalujte virtuální počítač Linux (doporučujeme Ubuntu nebo Kali) v systému Windows (Virtualbox / VMware / Parrallels), nebo spusťte svůj desktop s Linuxem.

Pokud používáte jako hlavní operační systém Microsoft Windows, je vhodné a jednoduché spustit instalaci Ubuntu Linux (nebo Kali Linux) ve virtuálním počítači. Pak si můžete hrát se sqlmap, nmap, nikto a openvas spolu se stovkou dalších výkonných open source bezpečnostních nástrojů.

Krok 2: Instalace SQLmap

Python je v Ubuntu předinstalován, takže stačí naklonovat nejnovější repozitář z gitu a začít testovat.

Přejděte do adresáře a spusťte skript pythonu, abyste se ujistili, že vše vypadá dobře.

Pokud se vám nezobrazí něco podobného jako ve výše uvedeném výstupu, ujistěte se, že python funguje (zkuste python -V), abyste zkontrolovali verzi a jste na správném místě. Nyní se přesuneme dál, tohle byla snadná část.

Pro získání úplného seznamu dostupných možností spusťte python sqlmap.py -h.

Spuštění SQLmap

Jednoduchý test založený na HTTP GET

V tomto jednoduchém testu použijeme standardní požadavek založený na HTTP GET proti URI s parametrem (?id=5). Tím otestujeme různé metody SQL injection proti parametru id.

python sqlmap.py -u 'http://mytestsite.com/page.php?id=5'

Ve výsledcích můžeme vidět různé metody použité proti parametru.

Blokování bránou Web Application Firewall – WAF

Zkuste použít jiný uživatelský agent než výchozí sqlmap s parametrem --randomagent.

Získání tabulek databáze

SQLmapu lze použít k testování a zneužití SQL Injection, což umožňuje provádět takové věci, jako je získávání dat z databází, aktualizace tabulek a dokonce i spouštění shellů na vzdálených hostitelích, pokud jsou všechny kachny v pořádku.

Získejme tabulky z databáze pomocí zranitelnosti SQL Injection, kterou jsme potvrdili výše. Jak uvidíte ve výstupu níže, můžeme pokračovat v testování proti cíli, aniž bychom museli zranitelnost znovu testovat. SQLmap použije informace, které zná o webu, k dalšímu zneužití cílové databáze.

Pro načtení dat jednoduše přidáme parametr k předchozímu příkazu. Přidáním --tables se můžeme pokusit načíst všechny tabulky.

Vypsat data

Pro získání dat jednoduše rozšíříme náš příkaz. Přidáním -T users se zaměříme na tabulku users, kde bychom mohli získat nějaké přihlašovací údaje. Přidáním --dump řekneme SQLmap, aby sebrala všechna data z tabulky users, nejprve se vyjmenují sloupce a pak se z nich vysypou data.

Tipy pro SQLmap – Jděte na testování SQL Injection ninja

Verbose output

Při testování SQL Injection je často nutné se v požadavcích hrabat ručně, abychom zjistili problémy s testem nebo potvrdili či dokonce dále využili objevenou injekci. Možnost zvýšit hovorovost výstupu SQLmap vám při tomto testování pomůže.

Zvýšením hovorovosti na hodnotu 4 získáte požadavky HTTP, při hodnotě 5 uvidíte také hlavičky odpovědi HTTP a hodnota 6 zobrazí úplnou odpověď HTTP. Je zřejmé, že to může být velmi hlučné, ale někdy potřebujete vidět, co se děje.

Máte pověření k databázi?

Tento užitečný tip vám umožní připojit se přímo k databázi a vypsat data, jako jsou uživatelé, databáze nebo tabulky. Příjemné na tom je, že si nemusíte pamatovat syntaxi jazyka SQL pro danou databázi ani mít nainstalovaného klienta. SQLmap se postará o těžkou práci a bude fungovat jako klient databáze pro výpis dat.

Řetězce připojení k databázím:

MySQL, Oracle, Microsoft SQL Server, PostgreSQL
DBMS://USER:PASSWORD@DBMS_IP:DBMS_PORT/DATABASE_NAME
SQLite, Microsoft Access
DBMS://DATABASE_FILEPATH

Připojovací shelly a další

SQLmap má směšné množství možností a je úžasným nástrojem pro sjednocení s databází. Kromě vyskakování shellů na cílovém hostiteli můžete posílat požadavky přes tor, automaticky vyhledávat injekce v odpovědích stránek, spiderovat weby a samozřejmě provádět testování na základě HTTP POST. Tyto příklady pouze poškrábou povrch. Další příklady najdete na vynikající stránce github wiki.

SQL injection je stále oblíbeným cílem útočníků.

Pomocí našeho skeneru SQL Injection můžete testovat injektovatelné parametry na webové URI.

Další úroveň testování pomocí pokročilých skenerů zranitelnosti zabezpečení.

Důvěryhodné nástroje. Hostované pro snadný přístup.

.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.