SQLmap Tutorial

Eseguire sqlmap da soli non è difficile.
Questo tutorial vi porterà da noob a ninja con questo potente strumento di test di iniezione sql.

Sqlmap è uno strumento basato su python, il che significa che di solito viene eseguito su qualsiasi sistema con python. Tuttavia, ci piace Linux e in particolare Ubuntu, semplicemente rende facile fare le cose. Python è già installato in Ubuntu. Questo è lo stesso strumento che usiamo sul nostro sito di test online di sql injection.

Per iniziare con sqlmap, si tratta di scaricare lo strumento, scompattarlo ed eseguire il comando con le opzioni necessarie. Dato che ci possono essere utenti Windows tra di voi, inizierò prima con come ottenere un’installazione di Ubuntu attiva e funzionante. È facile iniziare su un sistema Linux Ubuntu, anche se il pensiero di Linux fa rabbrividire di paura. Chi lo sa, potrebbe anche piacervi.

Contenuti:
– Installare SQLmap
– HTTP GET
– Come bloccarsi
– Tabelle del database
– Dump dei dati
– Suggerimenti
– Output verboso
– Credenziali del database
– Credenziali di connessione al DB

Installare SQLmap

Passo 1: Ottieni un sistema operativo basato su Linux

Se hai intenzione di eseguire SQLmap su Windows con Python, assicurati di avere Python installato, e passa al passo successivo. Altrimenti, metti in moto il tuo sistema Linux. Installa una macchina virtuale Linux (consigliata Ubuntu o Kali) su Windows (Virtualbox / VMware / Parrallels) o avvia il tuo desktop Linux.

Se usi Microsoft Windows come sistema operativo principale, è comodo e semplice installare Ubuntu Linux (o Kali Linux) in una macchina virtuale. Potete quindi giocare con sqlmap, nmap, nikto e openvas insieme a un centinaio di altri potenti strumenti di sicurezza open source.

Step 2: Installazione di SQLmap

Python è preinstallato in Ubuntu, quindi tutto quello che dovete fare è clonare l’ultimo repository da git e iniziare i vostri test.

Modificate la directory ed eseguite lo script python per assicurarvi che tutto sia a posto.

Se non vedete qualcosa come l’output qui sopra, assicuratevi che python stia funzionando (provate python -V) per controllare la versione e siete nella posizione giusta. Ora andiamo avanti, questa era la parte facile.

Per avere una lista completa delle opzioni disponibili esegui python sqlmap.py -h.

Esecuzione di SQLmap

Test semplice basato su HTTP GET

In questo semplice test useremo una richiesta standard basata su HTTP GET contro un URI con un parametro (?id=5). Questo testerà diversi metodi di iniezione SQL contro il parametro id.

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

Nei risultati possiamo vedere i diversi metodi usati contro il parametro.

Viene bloccato dal Web Application Firewall – WAF

Prova ad usare un agente utente diverso da sqlmap di default con il parametro --randomagent.

Riprendere le tabelle del database

SQLmap può essere usato per testare e sfruttare SQL Injection, facendo cose come estrarre dati dai database, aggiornare le tabelle, e anche far saltare le shell su host remoti se tutte le paperelle sono in linea.

Riprendiamo le tabelle dal database usando la vulnerabilità SQL Injection che abbiamo confermato sopra. Come vedrete nell’output qui sotto, possiamo continuare a testare l’obiettivo senza dover ritestare la vulnerabilità. SQLmap usa le informazioni che conosce sul sito per sfruttare ulteriormente il database di destinazione.

Per recuperare i dati dobbiamo semplicemente aggiungere un parametro al comando precedente. Aggiungendo --tables possiamo tentare di recuperare tutte le tabelle.

Scaricare i dati

Per ottenere i dati dobbiamo semplicemente estendere il nostro comando. Aggiungendo -T users ci concentreremo sulla tabella degli utenti dove potremmo essere in grado di ottenere alcune credenziali. Aggiungendo --dump diremo a SQLmap di prendere tutti i dati dalla tabella utenti, prima le colonne saranno enumerate e poi i dati saranno scaricati dalle colonne.

Suggerimenti di SQLmap – Diventa un ninja nei tuoi test di SQL Injection

Verbose output

Quando si fanno test per SQL Injection, è spesso necessario scavare manualmente nelle richieste per determinare problemi con il test o per confermare o addirittura sfruttare ulteriormente un’iniezione scoperta. Essere in grado di aumentare la verbosità dell’output di SQLmap aiuterà con questo test.

Aumentando la verbosità a 4 si possono ottenere le richieste HTTP, con 5 si vedono anche le intestazioni di risposta HTTP e 6 mostrerà la risposta HTTP completa. Ovviamente, questo può diventare molto rumoroso, ma a volte è necessario vedere cosa sta succedendo.

Hai le credenziali del database?

Questo comodo suggerimento ti permette di connetterti al database direttamente e scaricare dati come utenti, database o tabelle. La cosa bella è che non devi ricordare la sintassi SQL del database o avere un client installato. SQLmap farà il lavoro pesante agendo come un client di database per scaricare i dati.

Corde di connessione del database:

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

SQLmap ha un numero ridicolo di opzioni, ed è uno strumento incredibile per diventare una cosa sola con un database. Oltre a spuntare shell sull’host di destinazione, è possibile inviare richieste attraverso tor, trovare iniezioni nelle risposte delle pagine automaticamente, spiderare siti e, naturalmente, eseguire test basati su HTTP POST. Questi esempi si limitano a grattare la superficie. Trovate altri esempi sull’eccellente pagina wiki di github.

L’iniezione SQL continua ad essere uno degli obiettivi preferiti dagli attaccanti.

Utilizza il nostro SQL Injection scanner per testare i parametri iniettabili su un URI web.

Test di livello successivo con Security Vulnerability Scanner avanzati.

Strumenti affidabili. Ospitati per un facile accesso.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.