Testare la sicurezza dei siti basati su MySQL

Discussioni su internet, reti, provider, hosting e sicurezza.
  • Pubblicità

Testare la sicurezza dei siti basati su MySQL

Messaggioda {NP} Final » 30/07/2011, 13:57

 networking testare la sicurezza dei siti basati su mysql


Una buona parte dei siti web gestiti da MySQL potrebbe essere facilmente hackerata e chiunque potrebbe intrufolarsi nei vostri database e rubare informazioni per l'accesso all'amministrazione o addirittura rubare centinaia di utenti con le loro rispettive password. Per evitare questo vi mostrerò come vedere se il vostro database è vulnerabile a questi attacchi in pochi e semplici passi.

1° Passo - Scaricare ed installare Havij
Potete scaricare Havij direttamente da questo link: http://itsecteam.com/files/havij/Havij1.15Free.rar
L'installazione è contenuta dentro all'archivio zippato.

2° Passo - Copiare l'url
Accedete al vostro sito e copiate un url che finisca con uno dei seguenti valori:
Codice: Seleziona tutto
news.php?id={numero}

Codice: Seleziona tutto
showuser.php?id={numero}

Codice: Seleziona tutto
articolo.php?id={numero}

Codice: Seleziona tutto
topic.php?id={numero}


3° Passo - Utilizzare Havij
Dopo avere copiato l'url del vostro sito lanciate Havij e incollate l'url sul primo textbox, fate in modo che tutti i parametri siano impostati su "Auto" e avviate l'analisi. Se il vostro sito è vulnerabile ad un attacco vi apparirà una schermata come questa:

 networking testare la sicurezza dei siti basati su mysql


Ora cliccate su "Info", seguito da "Get" per ottenere i database visibili del vostro sito. Se visualizzate un errore nella console significa che il vostro database è discretamente protetto, al contrario, se l'info viene visualizzato correttamente, cliccate su "Tables".
Selezionate il primo database e cliccate su "Get Tables" per ottenere tutte le tablature. Se verranno visualizzate le tabelle dell'amministrazione e degli utenti selezioniamole e clicchiamo su "Get Columns". Se verranno visualizzate le opzioni "Username" e "Password" selezioniamole e clicchiamo "Get Data" per ottenere nomi utente e password dell'utente.
Se le password sono in chiaro dovete provvedere a rinforzare la vostra sicurezza.

 networking testare la sicurezza dei siti basati su mysql


4° Passo - Trovare l'url di amministrazione del sito
Una volta trovati nomi utente e password bisogna trovare l'url per connettersi al pannello di amministrazione. Da Havij cliccate su "Find Admin", inserite l'url del vostro sito web e cliccate "Start". Se il programma troverà un url del pannello di amministrazione del sito potrete tranquillamente loggarvi. Se questo accade è consigliabile cambiare l'url del pannello di amministrazione in modo che con una semplice ricerca non si possa trovare nulla.

 networking testare la sicurezza dei siti basati su mysql


IMPORTANTE: NON UTILIZZATE QUESTA GUIDA PER ATTACCARE SITI WEB ALTRUI. SIETE RESPONSABILI DELLE VOSTRE AZIONI.
Avatar utente
{NP} Final
 
Messaggi: 224
Iscritto il: 27/05/2010, 21:37
Località: Sanremo

Testare la sicurezza dei siti basati su MySQL

Messaggioda Edoardo » 30/07/2011, 17:39

Ah, SQL Injections! E' un bel programma perché fa in automatico tutto il lavoro sporco, ma se ho capito bene ti puoi limitare solo a visualizzare il database e non a modificarlo. Forse l'autore del programma ha inserito questa restrizione per evitare i lamer, e se è così, ha fatto bene.

Perché in realtà se trovi la vulnerabilità, dovresti essere in grado di modificare o addirittura cancellare il database ( questo nel caso in cui l'utente che accede al database abbia gli opportuni privilegi; ma se parliamo di un sito che non è nemmeno protetto decentemente da un tipo di attacco extra noto, dubito che gli sviluppatori abbiano avuto l'accortezza di limitare i privilegi di connessione ).

Cmq bel programma, peccato però che solo nel caso di siti veramente fatti male le passwords siano memorizzate in chiaro ;)
Avatar utente
Edoardo
Amministratore
 
Messaggi: 617
Iscritto il: 27/05/2010, 15:06
Località: Modena

Testare la sicurezza dei siti basati su MySQL

Messaggioda SmilingWolf » 30/07/2011, 21:13

Bene bene vedo che metti a frutto gli insegnamenti....

U're AWESOME! :clap-clap:
SmilingWolf
 
Messaggi: 11
Iscritto il: 12/07/2011, 21:26

Testare la sicurezza dei siti basati su MySQL

Messaggioda {NP} Final » 31/07/2011, 0:14

Eh già!! :D grazie a te! :rulla:

Edoardo ha scritto:Ah, SQL Injections! E' un bel programma perché fa in automatico tutto il lavoro sporco, ma se ho capito bene ti puoi limitare solo a visualizzare il database e non a modificarlo. Forse l'autore del programma ha inserito questa restrizione per evitare i lamer, e se è così, ha fatto bene.

Perché in realtà se trovi la vulnerabilità, dovresti essere in grado di modificare o addirittura cancellare il database ( questo nel caso in cui l'utente che accede al database abbia gli opportuni privilegi; ma se parliamo di un sito che non è nemmeno protetto decentemente da un tipo di attacco extra noto, dubito che gli sviluppatori abbiano avuto l'accortezza di limitare i privilegi di connessione ).

Cmq bel programma, peccato però che solo nel caso di siti veramente fatti male le passwords siano memorizzate in chiaro ;)

E' vero, alcune password sono criptate in MD5, però le password corte sono facilmente decifrabili col tool apposito del programma, e sono molte le persone che usano password di 5-6 lettere facilissime da decriptate.
Avatar utente
{NP} Final
 
Messaggi: 224
Iscritto il: 27/05/2010, 21:37
Località: Sanremo

Testare la sicurezza dei siti basati su MySQL

Messaggioda SmilingWolf » 06/08/2011, 12:07

Mi dispiace ma devo contraddire un po' di gente:

1.: Con il calcolo accelerato via GPU io riesco a raggiungere i 400M (400 MILIONI!!!) di tentativi al secondo su un un (singolo) HASH criptato con SHA1 su un'anzianotta ATI HD4850 con Ubuntu 11.04 32bit utilizzando oclHashcat Lite 0.06, e con le stesse specifiche faccio 1220M (1 MILIARDO e 220 MILIONI) di tentativi al secondo su un hash MD5.
Cosa significano tutti questi numeri? Significano che posso recuperare una parola della lunghezza di 8 caratteri utilizzando tutti i caratteri del set ASCII (spazi, simboli, numeri e lettere maiuscole e minuscole) in 1h e 15min se criptata con MD5.

2.: La maggior parte dei siti tiene le password in chiaro (è un dato di fatto, e Final ne sa qualcosa :asd: ), e se viene criptata normalmente si usa l'MD5 o lo SHA1, singolo passaggio, senza salt.
Certo il discorso cambia se si parla di siti gestiti con CMS molto diffusi quali Drupal, VBulletin, phpBB, SMF, che sono abbastanza ben scritti e utilizzano salt lunghi e alcuni anche diversi passaggi di cifratura anzichè uno solo, ma la stragrande maggioranza dei siti utilizza ancora password in chiaro.

3.: La possibilità di interagire con il database SQL è presente, basta premere il pulsante "Query". Il programmatore ha ritenuto anche utile inserire un pannello per la gestione di una shell remota sul server, accessibile premendo il pulsante "Cmd Shell".

Detto questo, ancora complimenti a Final per la guida :clap-clap:

Se qualcuno fosse interessato all'argomento "cracking password" può chiedere senza problemi, sono disponibile a dare spiegazioni nei limiti del mio tempo libero e delle mie conoscenze, sappiate che sono ben lontanto dall'essere un esperto ma ho la mia esperienza.
Se però dovessi fiutare odore di lamerate l'unica risposta sarà un gigantesco
:rifle: :rifle: GO TO HELL! :rifle: :rifle:


P.s.: Si potrebbe abilitare la sezione Wii? Per Favoooooooooooreeeeeeeeeeeee!!! :mrgreen:
SmilingWolf
 
Messaggi: 11
Iscritto il: 12/07/2011, 21:26

Testare la sicurezza dei siti basati su MySQL

Messaggioda Edoardo » 07/08/2011, 13:28

Mi permetto di rispondere a mia volta =)

1. Da una parte sono profondamente dubbioso sulle tempistiche espresse. Solo 1h e 15m per una password di 8 caratteri ASCII criptata in md5? Se insisti mi invogli proprio a fare una prova di persona ... :)

2. Programmo da ormai 3 anni e il criptaggio password è la base nei sistemi di autenticazione ... Forse le password in chiaro sono memorizzate solo dai siti fatti in casa, ma sono abbastanza fiducioso che gran parte del web non abbia falle di sicurezza così grosse ...

3. Non ho mai usato il programma, se c'è una console allora cambia musica ... =)

P.S: Wii? Per il ommento non se ne occupa nessuno, hai qualcosa da postare?
Avatar utente
Edoardo
Amministratore
 
Messaggi: 617
Iscritto il: 27/05/2010, 15:06
Località: Modena

Testare la sicurezza dei siti basati su MySQL

Messaggioda SmilingWolf » 07/08/2011, 16:25

Ed in effetti fai DANNATAMENTE bene a essere dubbioso a proposito delle tempistiche, incuriosito dal tuo post ho fatto dei test e ho scoperto che a farmi tutti i caratteri del set ASCII mi ci vorrebbero 92 giorni!!!

Chiedo scusa a tutti per le errate info riportate :grande:
Dannazione pensavo veramente che facesse l'intero set dei caratteri, ed invece ho scoperto che fa solo lettere minuscole e numeri!!!

2.: Ed invece, almeno sulla base di cio che ho potuto osservare da me, anche un discreto numero di siti governativi arabi, italiani, americani etc. memorizza le pass in chiaro!
Certo, i siti fatti bene non mancano, ma sono tanti quelli che, per pura incoscienza o per eccessiva fiducia nelle protezioni che hanno installato o che vengono fornite da terzi fanno memorizzare le pass in chiaro nei database.
Per esempio, Sony Pictures: clienti da tutto il mondo, un servizio enorme. Il gruppo dei LulzSec fa un paio di controlli e cosa trova? Una SQL Injection bell'e pronta da essere sfruttata. Risultato? i dati di 75000 utenti finiscono IN CHIARO sul Web, e facevano parte di una più vasta collezione di dati: quelli dei 32 milioni di utenti iscritti al sito.
http://attrition.org/security/rant/sony ... wnage.html

P.s.: In effetti io programmo un pochino per la Wii, nulla di complicato, ma ogni tanto faccio qualche lavoretto, in più seguo la scena Wii da 2 o 3 anni oramai e qualcosina la so :)
SmilingWolf
 
Messaggi: 11
Iscritto il: 12/07/2011, 21:26

Testare la sicurezza dei siti basati su MySQL

Messaggioda Edoardo » 08/08/2011, 10:12

Cavolo, però anche 92 giorni non sono troppi ... Parliamo di tutto l'ASCII, ma di quanti caratteri?
E poi, quanto ci vorrebbe secondo te per una password da 8 caratteri in numeri e lettere ( maiusc. e minusc. )?

Ps: riattivo la sez. ;)
Avatar utente
Edoardo
Amministratore
 
Messaggi: 617
Iscritto il: 27/05/2010, 15:06
Località: Modena

Testare la sicurezza dei siti basati su MySQL

Messaggioda SmilingWolf » 01/12/2011, 20:24

Edoardo ha scritto:Cavolo, però anche 92 giorni non sono troppi ... Parliamo di tutto l'ASCII, ma di quanti caratteri?
E poi, quanto ci vorrebbe secondo te per una password da 8 caratteri in numeri e lettere ( maiusc. e minusc. )?

Well, in HashCat i set di caratteri predefiniti si rappresentano per mezzo di flag, e i miei test li ho fatti con questi flag: ?l?u?d?s, praticamente "lower+upper alpha", "digits" (numeri) e "special" (simboli).

Per trovare una pass composta di numeri e lettere (maiusc. e minusc.) celata dietro ad un hash MD5 oclHashcat-lite (ottimizzato per bruteforce su hash singoli) sulla mia HD4850 mi dà 2 giorni e 1 ora, ma normalmente la trovi più o meno nella metà del tempo (non per errori di calcolo dell'ETA, quanto per il fatto che la pass viene proprio TROVATA nella metà (circa) del tempo).
Ah, e stavolta ho controllato bene prima di postare e stavo proprio utilizzando i flag ?l?u?d :P

Edoardo ha scritto:Ps: riattivo la sez. ;)


Tenkiu :)
SmilingWolf
 
Messaggi: 11
Iscritto il: 12/07/2011, 21:26


Torna a Networking

 


  • Discussioni correlate
    Risposte
    Visite
    Ultimo messaggio

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite


Forum in crescita: cercasi giornalisti, grafici, videomaker o semplici collaboratori. Per info scrivici qui.