C’è poco da dire, rispondo al mio amico Nicola Greco che ha realizzato un comodo script PHP. Tramite la sua creazione e l’infallibile TOR, si può raggirare il controllo IP imposto da MTV per votare i video di TRL. Cosa significa?

Simbolo di Tor

Simbolo di Tor

Normalmente sul sito di TRL è possibile esprimere un massimo di 3 preferenze, ossia è possibile votare dallo stesso computer per un massimo di 3 volte. Ma come evitare questo controllo e votare infinite volte? Semplice: cambiando indirizzo IP. Per farlo c’è TOR, il noto sistema di proxy che permette agli utenti di nascondere dinamicamente il loro indirizzo IP passando per altri computer ( detto con parole povere ) :)

Ma lo script di Nicola è in PHP!!! Così preso dalla smania, ho realizzato in 10 minuti un’alternativa in python, ma che facesse la stessa cosa, in meno righe e più facilmente… il risultato?

http://www.koalalorenzo.com/source/wintrl.py

In teoria il codice è multi-piattaforma ( Mac, Linux e Windows ) e dovrebbe girare ovunque siano installati Tor e Python, ma non avendo un Mac non ho potuto testare. Se volete vincere TRL, installate sulla vostra macchina TOR ed eseguite lo script con questo comando:

python ./wintrl.py http://extra.mtv.it/trl/vota.asp?idVideo=24871

A meno che non vogliate votare Rock That Body dei Black Eyed Peas, dovrete sostituire l’indirizzo ( http://extra… ) con l’indirizzo della pagina che visitate per votare quel video. Lo script automaticamente riconoscerà il codice del video e lo voterà. Per chi invece già conoscesse il codice potrà comunque utilizzare lo script con questo comando:

python ./wintrl.py 24871

Basterà sostituire 24871 con il codice del vostro video. il mio script inizierà a votare infinite volte il vostro video. Facile vero? :)

Ora mi chiedo, ma i webmaster pagati da MTV non han ancora provveduto a risolvere questo banale problema? :S Nicola propone un “3+3″ io propongo l’autenticazione mediante social network (es: Facebook) così da inquadrare meglio la situazione e gli spettatori :)

Lo script non sfrutta alcuna falla, ma semplicemente la mancanza di un controllo ( Login o Captcha ) da parte del sistema di votazione. Il funzionamento è applicabile anche a qualsiasi altro sistema privo di controllo grafico che accerti che a votare sia una persona fisica e non un computer.

View Comments a “Come ti vinco TRL (versione pythoniana)”

  1. odino |

    Ragazzi non si fa così: se viene scoperta una falla non si pubblicano exploit, ma ci si rivolge al danneggiato ;-) magari segnalando pubblicamente l'esistenza di una falla, ma senza fornire qualsiasi sorgente…cheers!

  2. odino |

    Ragazzi non si fa così: se viene scoperta una falla non si pubblicano exploit, ma ci si rivolge al danneggiato ;-) magari segnalando pubblicamente l'esistenza di una falla, ma senza fornire qualsiasi sorgente…cheers!

  3. koalalorenzo |

    È proprio questo il bello: segnali la falla pubblicamente ed al tempo stesso fai divertire chi prova gioia nel sfruttarla :)
    Ma tanto sono ben pochi quelli capaci di sfruttare il problema e che seguono anche TRL… o almeno spero :)

  4. koalalorenzo |

    È proprio questo il bello: segnali la falla pubblicamente ed al tempo stesso fai divertire chi prova gioia nel sfruttarla :)
    Ma tanto sono ben pochi quelli capaci di sfruttare il problema e che seguono anche TRL… o almeno spero :)

    Ma in realtà non è neanche un bug od una falla… è solo stato realizzato l'intero sistema di votazioni in modo troppo semplice ( come direbbero dalle mie parti: “a pene di segugio” :D )

  5. odino |

    “segnali la falla pubblicamente ed al tempo stesso fai divertire chi prova gioia nel sfruttarla”

  6. odino |

    “segnali la falla pubblicamente ed al tempo stesso fai divertire chi prova gioia nel sfruttarla”

  7. koalalorenzo |

    Come comportamento non è il massimo, lo so…

    Punzecchiare una persona sul suo punto debole, affinché questa cambi, è una delle mie specialità :) Perché non applicare questo modo di fare anche sugli errori? :D
    Poi, aggiungi anche la possibilità di far divertire 4 lamerotti-brufolotti, o di votare per il proprio artista preferito…

    Ops! Perché non dovrebbe essere giusto? :S

  8. koalalorenzo |

    Come comportamento non è il massimo, lo so…

    Punzecchiare una persona sul suo punto debole, affinché questa cambi, è un mio passatempo :) Perché non applicare questo modo di fare anche sugli errori? :D
    Poi, aggiungi anche la possibilità di far divertire 4 lamerotti-brufolotti, o di votare per il proprio artista preferito… questo amenta il numero di “punzecchiatori” e quindi il numero di “punzecchiamenti” :O

    Ops! Perché non dovrebbe essere giusto? :S

  9. Mtv MyTRL: dai voti falsati alla registrazione obbligatoria? - Commenta la tecnologia, la telefonia, i software |

    [...] — Sembra che al momento lo script continui a funzionare, anche nella sua “traduzione” in Python. Grazie a Lorenzo [...]

  10. GinLemon |

    Ciao iKoala, innanzitutto complimenti per il blog :)
    Comunque lo script mi restituisce diversi errori…siccome non ho confidenza con python vorrei capire qual'è il problema
    File “/home/ginlemon/Scaricati/test.py”, line 29, in <module>
    check()
    File “/home/ginlemon/Scaricati/test.py”, line 20, in check
    nowip = getip(opener)
    File “/home/ginlemon/Scaricati/test.py”, line 9, in getip
    html = opener.open('http://checkip.dyndns.org').read()
    File “/usr/lib/python2.6/urllib2.py”, line 389, in open
    response = self._open(req, data)
    File “/usr/lib/python2.6/urllib2.py”, line 407, in _open
    '_open', req)
    File “/usr/lib/python2.6/urllib2.py”, line 367, in _call_chain
    result = func(*args)
    File “/usr/lib/python2.6/urllib2.py”, line 1146, in http_open
    return self.do_open(httplib.HTTPConnection, req)
    File “/usr/lib/python2.6/urllib2.py”, line 1121, in do_open
    raise URLError(err)

    Grazie!

  11. GinLemon |

    Ciao iKoala, innanzitutto complimenti per il blog :)
    Comunque lo script mi restituisce diversi errori…siccome non ho confidenza con python vorrei capire qual'è il problema
    File “/home/ginlemon/Scaricati/test.py”, line 29, in <module>
    check()
    File “/home/ginlemon/Scaricati/test.py”, line 20, in check
    nowip = getip(opener)
    File “/home/ginlemon/Scaricati/test.py”, line 9, in getip
    html = opener.open('http://checkip.dyndns.org').read()
    File “/usr/lib/python2.6/urllib2.py”, line 389, in open
    response = self._open(req, data)
    File “/usr/lib/python2.6/urllib2.py”, line 407, in _open
    '_open', req)
    File “/usr/lib/python2.6/urllib2.py”, line 367, in _call_chain
    result = func(*args)
    File “/usr/lib/python2.6/urllib2.py”, line 1146, in http_open
    return self.do_open(httplib.HTTPConnection, req)
    File “/usr/lib/python2.6/urllib2.py”, line 1121, in do_open
    raise URLError(err)

    Grazie!

  12. koalalorenzo |

    Punta il dito contro urllib: in altre parole non riesce a stabilire la connessione… hai configurato TOR e privoxy?

  13. koalalorenzo |

    Punta il dito contro urllib: in altre parole non riesce a stabilire la connessione… hai configurato TOR e privoxy?

  14. GinLemon |

    Non ho mai usato tor, ma ho seguito una guida e tramite vidalia sembra che vada tutto bene, riesco a navigare con tor. Quindi si…penso che per quanto riguarda tor sia tutto ok. Non può essere che la libreria urllib manchi del tutto?

  15. GinLemon |

    Non ho mai usato tor, ma ho seguito una guida e tramite vidalia sembra che vada tutto bene, riesco a navigare con tor. Quindi si…penso che per quanto riguarda tor sia tutto ok. Non può essere che la libreria urllib manchi del tutto?

  16. koalalorenzo |

    Urllib non può mancare, anche perché ti avrebbe dato un errore differete!

    Evidentemente hai seguito una guida differente da quella del sito di Tor, che imposta tutto correttamente, incluso il proxy locale… forse è quello che manca!

    Vedi qui: http://www.torproject.org/easy-download.html.it

  17. koalalorenzo |

    Urllib non può mancare, anche perché ti avrebbe dato un errore differete!

    Evidentemente hai seguito una guida differente da quella del sito di Tor, che imposta tutto correttamente, incluso il proxy locale… forse è quello che manca!

    Vedi qui: http://www.torproject.org/easy-download.html.it

  18. odino |

    Come comportamento non è il massimo, già. Stai dando la possibilità a qualsiasi idiota di provare un giochino sbagliato.

    Segnalare privatamente una falla significa anche collaborare coi tecnici IT dell'azienda vulnerabile: se chiedi udienza a loro sicuramente si dimostrerebbero collaborativi, se vuoi sputtanarli in pubblico ottieni:
    1. la licenza di qualunquista, perchè di concorsi con limite alle votazioni tramite IP ce ne sono stati, ce ne sono e ce ne saranno ancora a centinaia
    2. che probabilmente qualcuno ai piani alti dell'azienda avrà cazziato ( se non peggio ) qualcuno ai piani bassi per la sbadataggine

    Quindi prima di ridicoleggiare enti terzi, pensate alle conseguenze che non solo a voi comportano le vs azioni.

    Ma forse, a 15 anni, mi sarei comportato anche io così ;-)
    L'importante è riconoscere di essere stati più stupidi che geni per comportarsi diversamente alla prossima occasione

  19. odino |

    Come comportamento non è il massimo, già. Stai dando la possibilità a qualsiasi idiota di provare un giochino sbagliato.

    Segnalare privatamente una falla significa anche collaborare coi tecnici IT dell'azienda vulnerabile: se chiedi udienza a loro sicuramente si dimostrerebbero collaborativi, se vuoi sputtanarli in pubblico ottieni:
    1. la licenza di qualunquista, perchè di concorsi con limite alle votazioni tramite IP ce ne sono stati, ce ne sono e ce ne saranno ancora a centinaia
    2. che probabilmente qualcuno ai piani alti dell'azienda avrà cazziato ( se non peggio ) qualcuno ai piani bassi per la sbadataggine

    Quindi prima di ridicoleggiare enti terzi, pensate alle conseguenze che non solo a voi comportano le vs azioni.

    Ma forse, a 15 anni, mi sarei comportato anche io così ;-)
    L'importante è riconoscere di essere stati più stupidi che geni per comportarsi diversamente alla prossima occasione

  20. GinLemon |

    E invece no, credo che sia giusto quello che ha fatto iKoala.

    1 – E' importantissimo sapere come si può aggirare un sistema proprio per sviluppare protezioni e non cadere negli stessi errori. E questo non interessa solo all'azienda danneggiata.

    2 – E' giusto che gli incapaci vengano cazziati, magari al loro posto metteranno gente che se lo merita di più.

    P.S. Non me ne frega un cazzo di votare TRL ma ho trovato questo articolo comunque molto interessante ed è stato occasione per me di provare TOR. Quindi personalmente non l'ho trovato ne inutile ne stupido…

  21. GinLemon |

    E invece no, credo che sia giusto quello che ha fatto iKoala.

    1 – E' importantissimo sapere come si può aggirare un sistema proprio per sviluppare protezioni e non cadere negli stessi errori. E questo non interessa solo all'azienda danneggiata.

    2 – E' giusto che gli incapaci vengano cazziati, magari al loro posto metteranno gente che se lo merita di più.

    P.S. Non me ne frega un cazzo di votare TRL ma ho trovato questo articolo comunque molto interessante ed è stato occasione per me di provare TOR. Quindi personalmente non l'ho trovato ne inutile ne stupido…

  22. Takky |

    Anche io condivido la Visione di iKoala.
    Prima di tutto perché a me non frega niente di votare su MTV, che nemmeno guardo, ma il suo codice può tornarmi utile per altri progetti e soprattutto a scopo didattico.

    Se tu lasci la tua porta di casa aperta è giusto che tu possa incazzarti e dare del delinquente a qualcuno che tenta di entrarci ma non puoi colpevolizzare chi semplicemente “pubblicizza” questa tua malsana abitudine!

    Torniamo sempre sul solito discorso: Io che fornisco un mezzo divento complice di chi lo usa illecitamente!

  23. Takky |

    Anche io condivido la Visione di iKoala.
    Prima di tutto perché a me non frega niente di votare su MTV, che nemmeno guardo, ma il suo codice può tornarmi utile per altri progetti e soprattutto a scopo didattico.

    Se tu lasci la tua porta di casa aperta è giusto che tu possa incazzarti e dare del delinquente a qualcuno che tenta di entrarci ma non puoi colpevolizzare chi semplicemente “pubblicizza” questa tua malsana abitudine!

    Torniamo sempre sul solito discorso: Io che fornisco un mezzo divento complice di chi lo usa illecitamente!

  24. phantomrider |

    Ciao senti scusa sono un pò imbranata con il computer!
    io ho installato TOR ma poi come faccio a eseguire lo script?

  25. phantomrider |

    Ciao senti scusa sono un pò imbranata con il computer!
    io ho installato TOR ma poi come faccio a eseguire lo script?

  26. koalalorenzo |

    Non ti preoccupare, non è una malattia essere imbranati con il PC, anzi: si cura con qualche pillola di curiosità e voglia di capire ;-)

    Brutta notizia: Per eseguire lo script in modo molto facile hai bisogno di un sistema unix-like ( ES: GNU/Linux o Mac OS ) ed avere l'accesso all'interfaccia testuale… emh… devi poter digitare in una finestra o sullo schermo, i comandi sopra elencati… Python è già presente in quasi tutte le distribuzioni GNU/Linux, quindi non hai problemi. Su Mac basta solamente installarlo e poi eseguire il comando che ho scritto nel topic…

    se invece utilizzi Windows, le cose sono molto più complicate: Devi installare python per Windows e successivamente eseguire lo script. Ma per nostra sfortuna il comando, da lanciare dal prompt dei comandi, dovrà essere modificato in modo da lavorare correttamente… dovrebbe essere una cosa del genere:

    C:\pythonpython.exe wintrl.py 24871

    Spero di esserti stato utile anche se credo di averti complicato la vita :(

  27. koalalorenzo |

    Non ti preoccupare, non è una malattia essere imbranati con il PC, anzi: si cura con qualche pillola di curiosità e voglia di capire ;-)

    Brutta notizia: Per eseguire lo script in modo molto facile hai bisogno di un sistema unix-like ( ES: GNU/Linux o Mac OS ) ed avere l'accesso all'interfaccia testuale… emh… devi poter digitare in una finestra o sullo schermo, i comandi sopra elencati… Python è già presente in quasi tutte le distribuzioni GNU/Linux, quindi non hai problemi. Su Mac basta solamente installarlo e poi eseguire il comando che ho scritto nel topic…

    se invece utilizzi Windows, le cose sono molto più complicate: Devi installare python per Windows e successivamente eseguire lo script. Ma per nostra sfortuna il comando, da lanciare dal prompt dei comandi, dovrà essere modificato in modo da lavorare correttamente… dovrebbe essere una cosa del genere:

    C:\pythonpython.exe wintrl.py 24871

    Spero di esserti stato utile anche se credo di averti complicato la vita :(

  28. phantomrider |

    mmmmmm vabbè grazie mille uguale non ti preoccupare con me non c'è più niente da fare comunque ormai mi sa che abbiamo perso quindi non importa!
    GRAZIE

  29. phantomrider |

    mmmmmm vabbè grazie mille uguale non ti preoccupare con me non c'è più niente da fare comunque ormai mi sa che abbiamo perso quindi non importa!
    GRAZIE

  30. phantomrider |

    mmmmmm vabbè grazie mille uguale non ti preoccupare con me non c'è più niente da fare comunque ormai mi sa che abbiamo perso quindi non importa!
    GRAZIE

Lascia un Commento

blog comments powered by Disqus