Comandare sul web: injection javascript

(Nota di redazione: questo articolo è molto vecchio. All’epoca avevo 15 anni. Proseguendo nella lettura potresti sentire il bisogno di strapparti i bulbi oculari. Se per caso possiedi la tecnologia necessaria per effettuare viaggi nel tempo, vieni qui e proibiscimi di scrivere questo post, perché è da rincoglioniti, peggio di Aranzulla. Nello specifico, copy-pastare roba nella tua console di debug del tuo browser web è da rincoglioniti. Ogni volta che rileggo questo post avrei voluto che il giorno prima io fossi stato investito da un camion, ed è questo il motivo per cui lo manterrò online: per maturare. Con le dovute precauzioni, buona lettura.)

Come si può “comandare” sul web? Come possono persone normali avere accesso a parti segrete di siti poco controllati, o di incrementare punteggi di browser-game in poche mosse?
Lo capiremo partendo da molto lontando attraverso questa breve guida dedicata alle injection-javascript.

Una estrazione (extraction) javascript è un metodo di controllo del codice di un sito tramite l’estrazione diretta delle variabili, via indirizzo ipertestuale.
Significa che per controllare una variabile di un sito web (un punteggio di un gioco online o la password di un utente loggato ad esempio) basta conoscere il nome della variabile che lo custodisce, e richiamare il suo valore inserendo nella barra degli indirizzi un comando di richiamo come javascrpt:alert(nomevariabile);
Questo tipo di estrazione si è però evoluto in forme molto complesse di iniezione chiamate injection javascript, delle quali approfondiremo ora.
Le chiamano injection javascript perchè con esse si può riuscire a modificare parte di una pagina web durante la propria sessione di navigazione, e quindi riuscire ad apportare modifiche consistenti ad un qualunque sito o gioco online, esclusivamente utilizzando codici, iniettati nella pagina, tramite la barra degli indirizzi, o tramite un segnalibro web.
Quello che faremo ora sarà prendere di mira alcuni siti molto famosi e sostituire un oggetto della pagina con del testo a nostra scelta.
Premettiamo che questo tipo di modifica non è reato: una injection javascript non è infatti una distruzione della pagina ma solo una modifica parziale lato-utente del listato javascript, del tutto ripristinabile ricaricando la pagina.
Ma insomma! Partiamo!

Step one

Prima di tutto, assicuriamoci di usare Firefox e non Internet Explorer (poichè I.E. si blocca con le injection javascript)
Ottenuto Firefox creiamo un segnalibro che ci servirà da “iniettore”

  • Digitiamo CTRL+D
  • Selezioniamo “Barra dei segnalibri” come cartella
  • Salviamo il segnalibro

Step two

A questo punto comparirà il segnalibro della presente pagina nella vostra barra dei segnalibri. Quindi:

  • Selezioniamo tutto il seguente codice e copiamolo (compresa la scritta “javascript:”):

javascript:
x="Questo e' un esempio di Injection Javascript - Reyboz Blog";
alert('Codice da iniettare:nn'+x);
x="<h1>"+x+"</h1>";
document.getElementById('previewPan_w1').innerHTML=x;
alert('Injection eseguita.');

  • Selezioniamo il segnalibro precedente con un click destro
  • Selezioniamo Proprietà
  • Incolliamo il precedente codice nello spazio dedicato all’indirizzo del segnalibro.

Ora avremo nella barra degli indirizzi il segnalibro che conterrà come indirizzo lo script: servirà ora per iniettare una scritta nel famoso motore di ricerca Blackr.

Dritti al cuore di blackr

Bando alle ciance:

  • Dirigiamoci sul Blackr
  • Lanciamo il segnalibro con un click su di esso
  • Clicchiamo su Ok ai 2 messaggi
  • Osserviamo

Se avete eseguito tutti i procedimenti Blackr apparirà con una scritta nella parte destra.

Ma noi non ci siamo fermati:

Dritti al cuore di facebook

  • Accedete al vostro Facebook
  • Rieseguiamo lo Step One
  • Incolliamo nel segnalibro tutto il seguente codice al posto dell’indirizzo:

javascript:
x=prompt('Inserisci il tuo nome di Facebook: (serve)','qui');
x="<h1>Mi chiamo -"+x+"- Salve! </h1>";
document.getElementById('navSearch').innerHTML=x;
alert('Injection eseguita.');

  • Salviamo il segnalibro
  • Clicchiamo sul segnalibro
  • Osserviamo

Se tutto è andato bene comparirà nella parte del titolo del vostro profilo di facebook una piccola modifica testuale.
Tranquilli, tutto torna normale digitando il classico F5.

Dritti al cuore dei giochi online

Scaricheremo un piccolo gioco online della Mr. Webmaster intitolato Chi vuol essere milionario. Dunque scarichiamolo, estraiamolo sul nostro computer e iniziamo subito a giocare.
Noterete che il gioco funziona perfettamente ma perchè non barare un po’?

  • Aprite il gioco
  • Ripetete lo Step One
  • Incolliamo nel segnalibro tutto il seguente codice al posto dell’indirizzo:

javascript:
function prossimadomanda(){
document.gioco.giustaa.value="giusta";}
alert('Preparazione alla injection in corso.');
prossimadomanda();
alert("Script abortito, la risposta sarà sempre la numero:nn-A.")
;

  • Salviamo il segnalibro
  • Clicchiamo sul segnalibro
  • Osserviamo

Come potete immaginare è stato iniettato un codice che modifica questo semplice gioco rendendo le risposte tutte uguali.
La nostra piccola lezione sulle injection javascript è ormai giunta al termine, vi auguriamo che tutto sia stato comprensibile e che vi siate divertiti scoprendo i segreti celati dietro alla modifica dei siti web. Vorremo precisare che tutto questo non deve apparire come un articolo “terrificante”,  questi utilizzi javascript non sono paragonabili a pirateria informatica e nè lo saranno mai, poichè il web deve essere uno strumento comune di insegnamento e non un segreto privato.
Grazie per la lettura.