SQLmap Tutorial

Sqlmapin suorittaminen itse ei ole vaikeaa.
Tämä opetusohjelma vie sinut noobista ninjaksi tämän tehokkaan sql-injektiotestityökalun kanssa.

Sqlmap on python-pohjainen työkalu, mikä tarkoittaa, että se toimii yleensä millä tahansa järjestelmällä, jossa on python. Pidämme kuitenkin Linuxista ja erityisesti Ubuntusta, sillä sen avulla on yksinkertaisesti helppo tehdä asioita. Python tulee Ubuntussa valmiiksi asennettuna. Tämä on sama työkalu, jota käytämme verkossa olevalla sql-injektiotestisivustollamme.

Sqlmapin käytön aloittaminen edellyttää työkalun lataamista, sen purkamista ja komennon suorittamista tarvittavilla asetuksilla. Koska joukossanne saattaa olla Windows-käyttäjiä, aloitan ensin siitä, miten Ubuntu-asennus saadaan käyntiin. Ubuntu-Linux-järjestelmän käyttöönotto on helppoa, vaikka ajatus Linuxista aiheuttaisikin pelon väristyskouristuksia. Kuka tietää, saatat jopa pitää siitä.

Sisältö:
– Asenna SQLmap
– HTTP GET
– Estäminen
– Tietokantataulukot
– Tietojen tyhjentäminen
– Vinkkejä
– Verbose-tulostus
– Tietokannan tunnistetiedot
– Tietokantayhteyden tunnistetiedot

Asenna SQLmap

Vaihe 1: Hanki Linux-pohjainen käyttöjärjestelmä

Jos aiot käyttää SQLmapia Windowsissa Pythonin kanssa, varmista, että sinulla on Python asennettuna, ja siirry seuraavaan vaiheeseen. Muussa tapauksessa käynnistä Linux-järjestelmäsi. Asenna joko Linux-virtuaalikone (Ubuntu tai Kali suositeltava) Windowsiin (Virtualbox / VMware / Parrallels) tai käynnistä Linux-työpöytäsi.

Jos käytät Microsoft Windowsia pääasiallisena käyttöjärjestelmänäsi, on kätevää ja yksinkertaista asentaa Ubuntu Linux (tai Kali Linux) virtuaalikoneeseen. Voit sitten leikkiä sqlmapilla, nmapilla, nikotolla ja openvasilla sekä sadalla muulla tehokkaalla avoimen lähdekoodin tietoturvatyökalulla.

Vaihe 2: SQLmapin asennus

Python on esiasennettu Ubuntuun, joten sinun tarvitsee vain kloonata uusin repository Git:stä ja aloittaa testaaminen.

Vaihda hakemistoon ja suorita python-skripti varmistaaksesi, että kaikki näyttää hyvältä.

Jos et näe jotain yllä olevan tulosteen kaltaista, varmista, että python toimii (kokeile python -V) tarkistaaksesi version ja olet oikeassa paikassa. Siirrytään nyt eteenpäin tämä oli helppo osuus.

Voidaksesi saada täydellisen luettelon käytettävissä olevista vaihtoehdoista suorita python sqlmap.py -h.

SQLmapin suorittaminen

Yksinkertainen HTTP GET-pohjainen testi

Tässä yksinkertaisessa testissä käytämme tavallista HTTP GET-pohjaista pyyntöä URI:tä vastaan, jossa on parametri (?id=5). Tällä testataan eri SQL-injektiomenetelmiä id-parametria vastaan.

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

Tuloksista näemme parametria vastaan käytetyt eri menetelmät.

Web Application Firewall – WAF:n estäminen

Kokeile käyttää eri käyttäjäagenttia kuin oletusarvoista sqlmapia parametrin --randomagent kanssa.

Noutaa tietokannan taulukot

SQLmapia voidaan käyttää SQL Injectionin testaamiseen ja hyväksikäyttöön, jolloin voidaan tehdä asioita, kuten tietojen poimiminen tietokannoista, taulukoiden päivittäminen ja jopa simpukankuorien avaaminen etäisäntäasemilla, jos kaikki ankat ovat kohdallaan.

Noutakaamme taulukot tietokannasta edellä vahvistamallamme SQL Injection -haavoittuvuudella. Kuten alla olevasta tulosteesta näet, voimme jatkaa testausta kohdetta vastaan ilman, että meidän tarvitsee testata haavoittuvuutta uudelleen. SQLmap käyttää sivustosta tietämiään tietoja hyödyntääkseen kohdetietokantaa edelleen.

Tietojen hakemiseen lisäämme yksinkertaisesti parametrin edelliseen komentoon. Lisäämällä --tables voimme yrittää hakea kaikki taulukot.

Tyhjennä tiedot

Hakeaksemme tietoja laajennamme yksinkertaisesti komentoamme. Lisäämällä -T users keskitymme users-taulukkoon, josta saatamme saada joitakin tunnistetietoja. Lisäämällä --dump käskemme SQLmapia hakemaan kaikki tiedot users-taulusta, ensin sarakkeet luetellaan ja sitten tiedot dumpataan sarakkeista.

SQLmapin vinkit – Go ninja on your SQL Injection Testing

Verbose output

SQL Injectionin testauksen yhteydessä on usein tarpeen kaivaa pyynnöt manuaalisesti, jotta voidaan määritellä testin ongelmat tai vahvistaa tai jopa hyödyntää havaittua injektiota edelleen. SQLmap-tulosteen sanamäärän lisääminen auttaa tässä testauksessa.

Nostamalla sanamäärän arvoon 4 saat HTTP-pyynnöt, arvolla 5 näet myös HTTP-vastausotsikot ja arvolla 6 näet koko HTTP-vastauksen. Ilmeisesti tästä voi tulla erittäin meluisa, mutta joskus sinun on nähtävä, mitä tapahtuu.

Onko sinulla tietokannan tunnukset?

Tämän kätevän vinkin avulla voit muodostaa yhteyden suoraan tietokantaan ja dumpata tietoja, kuten käyttäjiä, tietokantoja tai tauluja. Mukavaa tässä on se, että sinun ei tarvitse muistaa tietokannan SQL-syntaksia tai olla asentanut asiakasohjelmaa. SQLmap tekee raskaan työn toimimalla tietokanta-asiakkaana tietojen dumppaamiseksi.

Tietokantayhteysmerkkijonot:

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

SQLmapissa on älyttömän monta vaihtoehtoa, ja se on uskomaton työkalu, jonka avulla voit tulla yhdeksi tietokannan kanssa. Sen lisäksi, että voit popping shells kohde-isännällä, voit lähettää pyyntöjä torin kautta, löytää injektioita sivuvastauksista automaattisesti, hämähäkkisivustoja ja tietysti suorittaa HTTP POST -pohjaista testausta. Nämä esimerkit raapaisevat vain pintaa. Löydät lisää esimerkkejä erinomaiselta github-wikisivulta.

SQL-injektio on edelleen hyökkääjien suosima kohde.

Käytä SQL Injection -skanneria testataksesi injektoitavia parametreja verkko-URI:ssä.

Jatkotason testausta edistyneillä tietoturvan haavoittuvuusskannereilla.

Luotettavat työkalut. Hostattu helppokäyttöisyyttä varten.

Vastaa

Sähköpostiosoitettasi ei julkaista.