SQLmap Tutorial

Az sqlmap saját maga futtatása nem nehéz.
Ez a bemutató elviszi a noobtól a ninjáig ezzel a hatékony sql injection tesztelő eszközzel.

Az sqlmap egy python alapú eszköz, ami azt jelenti, hogy általában bármilyen python rendszerben fut. Mi azonban a Linuxot és konkrétan az Ubuntut szeretjük, egyszerűen megkönnyíti a dolgok elvégzését. A python már telepítve van az Ubuntuban. Ugyanezt az eszközt használjuk az online sql injection tesztoldalunkon is.

Az sqlmap használatának megkezdéséhez le kell tölteni az eszközt, kicsomagolni, és a szükséges opciókkal futtatni a parancsot. Mivel lehetnek köztetek Windows-felhasználók, először azzal kezdem, hogyan lehet egy Ubuntu telepítést elindítani. Egy Ubuntu Linux rendszerrel könnyű elindulni, még akkor is, ha a Linux gondolata borzongató félelemgörcsöket vált ki. Ki tudja, talán még tetszeni is fog.

Tartalom:
tartalom:
– Az SQLmap telepítése
– HTTP GET
– Letiltás
– Adatbázis táblák
– Az adatok kiürítése
– Tippek
– Verbózus kimenet
– Adatbázis hitelesítő adatok
– DB kapcsolat hitelesítő adatok

Install SQLmap

1. lépés: Szerezz egy Linux alapú operációs rendszert

Ha az SQLmap-et Windowson fogod futtatni Python segítségével, győződj meg róla, hogy telepítve van a Python, és ugorj le a következő lépésre. Ellenkező esetben indítsd be a Linux rendszeredet. Vagy telepítsen egy Linux virtuális gépet (Ubuntu vagy Kali ajánlott) Windowsra (Virtualbox / VMware / Parrallels), vagy indítsa el a Linux asztali gépét.

Ha a Microsoft Windows a fő operációs rendszere, kényelmes és egyszerű az Ubuntu Linux (vagy Kali Linux) telepítése egy virtuális gépben. Ezután játszhat az sqlmap, nmap, nikto és openvas programokkal, valamint száz más nagy teljesítményű nyílt forráskódú biztonsági eszközzel.

2. lépés: SQLmap telepítése

A python előre telepítve van az Ubuntuban, így csak annyi a dolga, hogy klónozza a legújabb repository-t a gitről, és kezdje el a tesztelést.

Váltson be a könyvtárba, és futtassa a python szkriptet, hogy minden rendben legyen.

Ha nem a fenti kimenethez hasonlót lát, győződjön meg róla, hogy a python működik (próbálja meg python -V), hogy ellenőrizze a verziót, és a megfelelő helyen van. Most lépjünk tovább, ez volt a könnyű rész.

A rendelkezésre álló lehetőségek teljes listájának megtekintéséhez futtassuk a python sqlmap.py -h futtatást.

Az SQLmap futtatása

Egyszerű HTTP GET alapú teszt

Ebben az egyszerű tesztben egy szabványos HTTP GET alapú kérést fogunk használni egy URI ellen egy paraméterrel (?id=5). Ezzel különböző SQL injektálási módszereket tesztelünk a id paraméter ellen.

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

Az eredményekben láthatjuk a paraméter ellen használt különböző módszereket.

A webalkalmazás tűzfal – WAF által blokkolva

Kipróbáljuk egy másik felhasználói ügynök használatával, mint az alapértelmezett sqlmap a --randomagent paraméterrel.

Az adatbázis tábláinak lekérdezése

A SQLmap használható SQL Injection tesztelésére és kihasználására, olyan dolgok elvégzésére, mint adatok kinyerése az adatbázisokból, táblázatok frissítése, sőt, ha minden kacsa a helyén van, akár shell-ek felugrása távoli gépeken.

Kérjük le a táblákat az adatbázisból a fent megerősített SQL Injection sebezhetőség segítségével. Amint az alábbi kimenetből látni fogja, folytathatjuk a tesztelést a célpont ellen anélkül, hogy újra tesztelnünk kellene a sebezhetőséget. Az SQLmap az oldalról ismert információkat használja fel a céladatbázis további kihasználásához.

Az adatok lekérdezéséhez egyszerűen hozzáadunk egy paramétert az előző parancshoz. A --tables hozzáadásával megkísérelhetjük az összes tábla lekérdezését.

Dump the data

Az adatok kinyeréséhez egyszerűen kibővítjük a parancsunkat. A -T users hozzáadásával a users táblára koncentrálunk, ahonnan talán néhány hitelesítő adatot tudunk megszerezni. A --dump hozzáadása megmondja az SQLmap-nek, hogy az összes adatot vegye ki a users táblából, először az oszlopok felsorolása, majd az adatok dumpolása következik az oszlopokból.

SQLmap tippek – Legyen ninja az SQL Injection tesztelésben

Verbose output

Az SQL Injection tesztelése során gyakran szükséges manuálisan beleásni magunkat a kérésekbe, hogy megállapítsuk a teszteléssel kapcsolatos problémákat, vagy megerősítsük, esetleg még jobban kihasználjuk a felfedezett injekciót. Az SQLmap kimenet szóbeliségének növelése segít ebben a tesztelésben.

A szóbeliséget 4-re növelve megkapja a HTTP-kérelmeket, az 5-tel a HTTP-válasz fejléceit is láthatja, a 6-tal pedig a teljes HTTP-választ. Nyilvánvaló, hogy ez szuper zajos lehet, de néha látni kell, hogy mi történik.

Got Database Credentials?

Ez a praktikus tipp lehetővé teszi, hogy közvetlenül csatlakozzon az adatbázishoz, és adatokat, például felhasználókat, adatbázisokat vagy táblákat töltsön ki. Az a jó ebben, hogy nem kell emlékeznie az adatbázis SQL-szintaxisára, és nem kell telepítenie egy klienst sem. Az SQLmap elvégzi a nehéz munkát, adatbázis-kliensként eljárva az adatok dumpolásához.

Adatbázis-kapcsolati karakterláncok:

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

Popping Shells and More

Az SQLmap nevetségesen sok lehetőséggel rendelkezik, és egy csodálatos eszköz arra, hogy eggyé váljon egy adatbázissal. A célállomáson a shell-ek felpattintásán kívül kéréseket küldhetsz a toron keresztül, automatikusan találhatsz injekciókat az oldalak válaszaiban, pókhálósíthatod az oldalakat, és természetesen HTTP POST alapú tesztelést is végezhetsz. Ezek a példák csupán a felszínt karcolják. További példákat talál a kiváló github wiki oldalon.

Az SQL injekció továbbra is a támadók kedvenc célpontja.

Az SQL Injection szkennerünk segítségével tesztelheti a webes URI bejuttatható paramétereit.

Következő szintű tesztelés fejlett biztonsági sebezhetőségi szkennerekkel.

Bizalmas eszközök. Hostolva a könnyű hozzáférés érdekében.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.