SQL bruteforcer
A volte capita che, per riuscire a completare una SQL injection, ci serva il nome di un campo o di una tabella che non riusciamo a trovare. Di solito i nomi di campi o tabelle sono facilmente individuabili provando quelli piu' comuni (per esempio: username, password, userid, userpassword, etc..) ma a volte capita che un webmaster un po puntiglioso abbia usato un nome difficile da indovinare e a quel punto questo programmino e' quello che fa per voi.
Dopo aver dato al programma alcuni parametri, e cioe' l'URL contentente l'SQL injection, una stringa per riconoscere gli errori del database, il prefisso delle tabella etc..., il programma provvedera' a crackare il nome della tabella o del campo che avete scelto.
Sono possibili due tipi di attacchi: dizionario o brute force. In genere, soprattutto se si possiede una buona word list, e' consigliabile il primo mentre se si e' abbastanza esasperati si puo' usare un brute force :)
Una piccola precisazione va fatta sul formato in cui dovete passare l'URL al programma.
Innanzitutto l'SQL injection inserita nell'URL non deve dare errori in condizioni normali, cioe' se il nome della tabella o del campo e' corretto. Inoltre dovete sostituire il nome che volete forzare con la parola [[brute]] racchiusa, come vedete, tra due parentesi quadre. Ecco un esempio:
http://www.sito.it/path/article.php?aid=56 UNION SELECT 1,2,[[brute]] FROM articles
Come vedete un questa query viene fatto il bruteforce sul nome di un campo e inoltre la query verrebbe eseguita senza errori se al posto di [[brute]] ci fosse per esempio un 3.
Quest'altra esegue il brute force del nome di una tabella:
http://www.sito.it/path/user.php?uid=56 UNION SELECT * FROM [[brute]]
Come vedete il funzionamento e' abbastanza semplice, l'unica pecca di un programma del genere e' la velocita' che non e' "ottimale" soprattuto se attivate anche l'opzione per utilizzare un proxy...
Spero comunque di esservi stato utile :)
Alla prossima
Download sql_brute.tar.gz!