• 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 (Guida) Cross Site Request Forgery PHP(Guida)

Nuvom

Utente Normale
Autore del topic
2 Agosto 2010
55
0
Miglior risposta
0
Per quanto questa guida sia semplice e molto facile da realizzare non dobbiamo pero sottovalutarla , perchè anche essa puo' essere fonte di pericolo se usata in un modo non idoneo . Quindi ne io ne lo Sciax2 ci assumiamo nessuna responsabilità del uso che farete di essa .:lookno:

Bene , iniziamo! :wosd:

Come ben sapete quando eseguiamo un log su qualsiasi sito forum o altro che sia non facciamo altro che cliccare sul bottone "Log-in" o "Logout" . Questo bottone contiene un codice , prendiamo l'esempio di logout . Notiamo che il codice contenuto è questo <a href="http://www.sito.com/setuser.php?logout=yes"> quindi quando l'utente clicca il bottone in questione visita automaticamente e involontariamente la pagina
Perfavore, Entra oppure Registrati per vedere i Link!
e quindi la pagina setuser.php non fa altro che eliminare i cookie al fine di sloggarlo dal sito . Come possiamo notare non c'è nessun controllo su quel link , quindi chiunque facendo cliccare quel link ad un altra persona potrebbe automaticamente farlo sloggare e sarebbe come se la vittima avesse cliccato volontariamente il bottone "Logout" cosa che non ha fatto! Ora supponiamo che su questo forum l'admin abbia a disposizione l'opzione per eliminare il sito attraverso una determinata pagina . La pagina sarà quindi
Perfavore, Entra oppure Registrati per vedere i Link!
e quando l'admin visiterà questa pagina cliccherà sul bottone "Elimina forum" , l'azione successiva sarà :
Perfavore, Entra oppure Registrati per vedere i Link!
ed il forum sarebbe eliminato . Ma attenzione , questa operazione la potrà effettuare solo l'admin visto che contiene i diritti necessari per compiere tale operazione . Ma poichè la pagina non possiede nessuna protezione a riguardo se un malintenzionato trovasse la pagina
Perfavore, Entra oppure Registrati per vedere i Link!
esso non potrebbe cancellarlo , ma se facesse visitare involontariamente sottoforma di immagine o di link questa pagina al admin il sito verrebbe eliminato . E in sostanza l'admin avrebbe eliminato il sito volontariamente visto che ha visitato la pagina fornita dal malintenzionato. Quando invece ci registriamo con un nickname su un forum , come per esempio "nome" su quel forum l'utente sarà identificato con un numero , esempio "56" . Se l'utente provasse a visitare il proprio profilo sarebbe
Perfavore, Entra oppure Registrati per vedere i Link!
e quel 56 significa che è stato il 56esimo utente a registrarsi su quel forum . Supponiamo ora che l'admin si trovi nella pagina per aggiungere altri admin che sarebbe
Perfavore, Entra oppure Registrati per vedere i Link!
e l'admin non farà altro che inserire il nickname dell'admin in un campo input , e di seguito il nickname verrà convertito nel numero corrispondente come per esempio "24" e cliccherà su "aggiungi admin" l'azione che ne scaturirà sarà /?insertadmin.php?insert&id=24 . Come si puo notare il numero 24 e stato inserito come admin . Quindi il malfattore potrebbe far cliccare questo link
Perfavore, Entra oppure Registrati per vedere i Link!
in questo caso il nostro caro utente 56 facendo cliccare questo link ad admin di tale sito potrebbe diventare a sua volta anche esso admin e quindi potrebbe attaccarlo . A questo punto eseguiamo l'attacco Cross Site Request Forgery! Per fare questo possiamo prendere il codice sorgente della pagina e apportare una piccola modifica sulla voce che vogliamo come per esempio "elimina" la possiamo trasformare in "clicca" . Salvarla in pagina.html e far visitare al admin la pagina
Perfavore, Entra oppure Registrati per vedere i Link!
, in seguito convincendolo a cliccare questo link potremmo ottenere uno dei risultati sopra esposti . Un altro metodo come già citato sopra precedentemente è quello di inserire il codice in un' immagine. Prima di tutto dobbiamo verificare l'espansione dell' immagine (jpg,bmp,gif...) , una volta trovata apriamo l'immagine con un editor di testo qualunque (esempio blocco note) e ci troveremo davanti una serie di caratteri molto lunga e strana . Noi cerchiamo solo la prima stringa che dovrebbe essere qualcosa uguale a y0yà_JFIF . Ora cancelliamo tutto tranne questi pochi caratteri iniziali ( che servono per riconoscere ed accettare questo file come .jpg) ed inseriamo <script>document.location.href="www.sito.com/index.php?main_page=checkout_shipping"></script> ora salviamo tutto in jpg , uplodiamo l'immagine sul sito interessato e facciamola visitare al admin .

Bene ragazzi . Questa è la mia PRIMA guida quindi spero vi sia piaciuta . Via ai commenti! patpat
 
Ciao,
chi te l'ha detto che tutti i comandi che hai elencato rispondano agli url scritti?
Dipende da CMS a CMS, non puoi conoscere tutti i link e non puoi neanche tirarli a indovinare.
Inoltre, quando l'amministratore vuole cancellare il sito gli esce comunque una conferma, non basta andare su un url specifico e finisce lì... ;)
 
Hai perfettamente ragione per quanto riguarda la prima affermazione , infatti come ho scritto piu' volte dobbiamo scegliere il sito notando la carenza di protezione della pagina php e comunque non tutti i siti non vanno bene . Mentre per la secondo affermazione e pur vera anche essa , infatti non possiamo attaccare tutti i siti ma come detto sopra dobbiamo sceglierlo in base a dei criteri. Invece alcuni siti viene eliminato automaticamente mentre altri richiede conferma!
 
Hai perfettamente ragione per quanto riguarda la prima affermazione , infatti come ho scritto piu' volte dobbiamo scegliere il sito notando la carenza di protezione della pagina php e comunque non tutti i siti non vanno bene . Mentre per la secondo affermazione e pur vera anche essa , infatti non possiamo attaccare tutti i siti ma come detto sopra dobbiamo sceglierlo in base a dei criteri. Invece alcuni siti viene eliminato automaticamente mentre altri richiede conferma!

E' vero ma il problema è che purtroppo non esiste nessun metodo per conoscere tutte le pagine contenute in un sito.
Se esistesse, saremmo a cavallo ;)
 
Si fossa è vero e non lo smentisco , ma pero si puo provare con vari metodi e se non funziona dobbiamo provare altri siti fin quando non funziona ::emoji_relieved:no: Grazie Mascara :repuni:
 
In poche parole questa guida è utile teoricamente, per capire il procedimento, ma praticamente è quasi impossibile metterla in atto :emoji_slight_smile:
 
Vabbe , io ci sono riuscito gli altri chissà....
 
Lo so ma l'ho fatta velocemente! Comunque grazie :repuni: