venerdì 26 ottobre 2007

Little form hack

Stavo leggendo il blog di Matteo Flora. Seguo abbastanza spesso il suo blog, soprattutto da quando ho scoperto che abita a pochi km da me.

Prima o poi lo contatterò, giusto per una chiacchierata. O magari andrò ad un incontro del MiSec, anche se non so se è ancora un progetto attivo. Avevo visto questo progetto appena era stato varato, quando ancora segnavano sul blog gli incontri. Però purtroppo sono parecchio preso tra la mia attività di consulente e l'università da finire, per cui finora non sono mai riuscito ad andarci.

Comunque, stavo leggendo di un giochetto innocuo che ha fatto ai danni di una specie di concorso tra blogger e per cui è stato ampiamente criticato da chi l'ha subito.
Evidentemente questa persona non si è resa conto del favore che gli è stato fatto.. la cosiddetta Full Discolsure non è compresa da tutti, non è una novità.
Infatti quando si fanno delle applicazioni su web, troppo poco spesso vengono considerati alcuni fattori, ed è giusto che vengano fatti notare, senza cercare di trarne eccessivo vantaggio.

Pensiamo per esempio a sine, di cui avevo parlato tempo fa, la cui struttura non prevedeva controlli sui commenti.
Mentre il concorso in questione effettuava un check base: il voto veniva considerato valido se era passato almeno un minuto dall'ultimo voto proveniente da quell'ip.

LastKnight ha automatizzato il voto usando un componente ruby che si attacca a safari e lo pilota per cui con poche chiamate riesce ad effettuare un click sul bottone del voto.

Scelta interessante, come lo è quel componente, però personalmente avrei agito diversamente, grazie al mitico lynx. Infatti con lynx si possono effettuare sia GET che POST in automatico. Lasciando perdere le GET che sono davvero banali, ho guardato un attimo come si effettua un HTTP POST per loggarsi su wordpress:

echo 'log=&pwd=b&redirect_to=/wp-admin/' | lynx -dump http://www.host.com/wp-login.php --post_data

Per cui in ogni caso, basta vedere i parametri del form, il metodo e l'action, e ricreare una roba del genere, in cron o in ciclo con sleep 1.2m (giusto per..).

Grazie a questo utilizzo di lynx, si può anche facilmente pensare di fare un attacco a dizionario su un form di login tutto in shell..giusto come esercizio di stile :)

4 commenti:

Anonimo ha detto...

Quando vuoi sono qui :)

I miei contatti sono alla pagina http://www.lastknight.com/contatti , comprsi il cellulare :)

E grazie per i complimenti...

MgpF

Shatsar ha detto...

Quale onore!
e non sono ironico.

Grazie per il commento e la disponibilità, sicuramente ti contatterò appena ho un periodo un po' meno incasinato!

ciao!

ilViandante ha detto...

ti faro' fare un monumento!

ilViandante ha detto...

mmm... ho un problema... nn riesco a far funzionare il tuo esempio su diversi siti... nn sto hackerando eh..pero', ad esempio, come potrei fare ad entrare sul sito della vodafone??