loader
Foto

Sqlmap alkalmazása Sql Injection sérülékenységnél

Korábbi cikkünkben megnéztük az Sql Injection alapjait. Látható volt a cikk olvasása során, hogy a sérülékenység megtalálása után annak a kihasználása már nem volt olyan egyszerű. Különböző parancsokat, függvényhívásokat kellett elvégezni, hogy plusz információkat kapjunk. Ezért áttekintjük most az Sqlmap alaklmazás használatának alapjait. Ennek a segítségével a szükséges információk lényegesen egyszerűbben "beszerezhetők".

Felhívjuk az Olvasók figyelmét arra, hogy ez a cikk azért született meg, hogy a saját fejlesztésű webes alkalmazások biztonságosabbak legyenek. Nem célunk, és határozottan elzárkózunk attól, hogy segítsünk bárkinek számítógépes bűncselekmények elkövetésében.

A korábbi cikkünkben átnéztük az Sql Injection alapjait, bemutatásra került az, hogy a különböző patternek használatával jelentősen tudtuk módosítani az eredeti Sql lekérdezést, ezáltal érzékeny adatokat tudtunk megszerezni a vizsgált webes alkalmazásról.

Ezzel a cikkel befejezzük az Sql Injection témakört (az OWASP-ot még nem). Bemutatásra kerül most egy olyan alkalmazás (sqlmap), amelynek segítségével az Sql Injection sérülékenység kényelmesen felderíthető. Létező sérülékenység esetén pedig különböző adatok kérhetők le a vizsgált adatbázisról.

Ahhoz, hogy az sqlmap-ot alkalmazni tudjuk, szükségünk lesz a vizsgált webes alkalmazás cookie-jára, amelyet a Firefox böngészőből kényelmesen megszerezhetünk (1. ábra).

kep
1. ábra   A vizsgált webes alkalmazás cookie-jának megszerzése
 

Ha már tudjuk a cookie-t, akkor a következő utasítás kiadása után megtudjuk a vizsgált webes alkalmazás által használt adatbázisok neveit. Ehhez a következő utasítás kiadása szükséges:

sqlmap -u "http://192.168.1.105/DVWA-master/vulnerabilities/sqli/?id=1&Submit=Submit" --cookie="PHPSESSID=1s22h42hg7i8qpmlu80b1p0sh5; security=low" --dbs

 

Látható az sqlmap paraméterezésében, hogy szerepel a sérülékenységet tartalmazó URL. A futási eredmény látható a 2. képen.

kep
2. ábra   Megkaptuk az adatbázisok neveit
 

Ezután keressük meg az sqlmap segítségével a "dvwa" adatbázist elérő user nevét. Ehhez adjuk ki a következő parancsot:

sqlmap -u "http://192.168.1.105/DVWA-master/vulnerabilities/sqli/?id=1&Submit=Submit" --cookie="PHPSESSID=1s22h42hg7i8qpmlu80b1p0sh5; security=low" --current-user

 

Látható a 3. ábrán, hogy megismerhetővé vált a tesztuser neve.

kep
3. ábra   A felhasználó nevének megkeresése
 

Megkaphatjuk az eddig megszerzett adatokat egy utasítás kiadásával is, ehhez paraméterezzük fel az sqlmap-et a következő példa szerint:

sqlmap -u "http://192.168.1.105/DVWA-master/vulnerabilities/sqli/?id=1&Submit=Submit" --cookie="PHPSESSID=1s22h42hg7i8qpmlu80b1p0sh5; security=low" --hostname --current-user --current-db

 

Látható az, hogy az sqlmap futtatásához egyszerre több kapcsoló is megadható. Ha futtatjuk most az sqlmap-et, akkor a megkapjuk a keresett adatokat (4. ábra).

kep
4. ábra   Különböző érzékeny adatok megszerzése
 

Megkaptuk egy korábbi utasítás kiadásával az adatbázisok neveit. Most nézzük meg azt, hogy az egyik adatbázis (dvwa) milyen adattáblákkal rendelkezik. Ehhez a következő utasítás kiadása szükséges:

sqlmap -u "http://192.168.1.105/DVWA-master/vulnerabilities/sqli/?id=1&Submit=Submit" --cookie="PHPSESSID=1s22h42hg7i8qpmlu80b1p0sh5; security=low" --tables

 

Ezután megkapjuk az adatbázisok adattábláit. Az 5. képen a minket érdeklő DVWA adatbázis táblái láthatók. Ha csak egy adott adatbázis felépítése érdekel minket, akkor alkalmazzuk a "-D" kapcsolót (pl.: -D dvwa).

kep
5. ábra   A "dvwa" adatbázis táblái
 

Nézzük meg most az egyik adattáblának a felépítését, azaz, milyen oszlopokkal rendelkezik a "users" tábla. Ehhez a következő utasítást adjuk ki:

sqlmap -u "http://192.168.1.105/DVWA-master/vulnerabilities/sqli/?id=1&Submit=Submit" --cookie="PHPSESSID=1s22h42hg7i8qpmlu80b1p0sh5; security=low" --columns

 

Ha csak egy adott adatbázis adott adattáblájának a felépítése érdekel minket, akkor a fenti utasítást ki kell egészíteni  két kapcsolóval (pl.: -D dvwa -T users).

kep
6. ábra   Megismertük a "users" adattábla oszlopneveit
 

Végezetül nézzük meg azt, hogy a "users" táblában milyen értékekkel rendelkeznek a "user" és a "password" mezők. Adjuk ki a következő utasítást:

sqlmap -u "http://192.168.1.105/DVWA-master/vulnerabilities/sqli/?id=1&Submit=Submit" --cookie="PHPSESSID=1s22h42hg7i8qpmlu80b1p0sh5; security=low" --dump

 

Ennek a parancsnak a segítségével megkapjuk a "dvwa" adatbázis "users" adattáblájának a tartalmát (7. ábra).

kep
7. ábra   Kidumpolt adattábla (kattints a képre)
 

Még egyszer felhívjuk az Olvasók figyelmét arra, hogy ez a cikk azért született meg, hogy rámutassunk az Sql Injection sérülékenység veszélyére, és az ellene való védekezés fontosságára. Határozottan elhatárolódunk bármilyen bűncselekmény elkövetésének a segítésében.

Az információs rendszer vagy adat megsértése bűncselekmény (423. §).

 



Egyéb cikkek

További cikkeink ebben a témakörben

Régebbi cikkeink

Az nmap (grafikus megjelenítésnél a ZenMap) használata az IT biztonság, illetve az üzemeltetés területén dolgozó szakembereknél szinte elkerülhetetlen. Az ingyenes szoftver segítségével tesztelhetők a számítógépeink, a számítógéphálózatunk, vizsgálha. . . .

A Python programozási nyelv nagyon elterjedt a fejlesztők körében. Használják beágyazott rendszereknél, webes alkalmazásoknál, IT biztonság különböző területein, stb. Látható, hogy nagyon széles a felhasználási területe ennek a nyelvnek, ideje volt m. . . .

Bemutatjuk most a saját (!) Wifi-s hálózatunk tesztelésének az alapjait. Megnézzük, hogy hogyan lehet biztonságos jelszót választani. Feltörhetetlen rendszer nem létezik, de megismerve a tesztelés folyamatát, válaszokat kaphatunk arra vonatkozólag, h. . . .