Al momento non sono in vena di dissertare sulla delega a questo linguaggio di scripting delle funzioni di validazione di input o di autenticazione in generale. Non andrò oltre un "non fatelo!" : aggirare javascript è davvero banale, soprattutto con i tool vari per gli sviluppatori in ambito web (per esempio due plugin di firefox: web developer per editare i form (e molto altro), firebug per js debugger e console).. ma di questo parlerò un'altra volta, direi..
oggi sono finito su una paginetta in cui un form fatto a forma di tastierino numerico vi permette di inserire delle cifre, al soddisfacimento di alcune condizioni si verrà reindirizzati sulla pagina
La "sicurezza" in un sistema del genere è che ci vogliono molti tentativi per passarlo. ovviamente leggendo il codice javascript si riesce a risolvere qualcosa, del tipo:
il codice deve essere lungo 5 cifre ed il suo prodotto è 3780.
primo passo:
il tastierino numerico va da 1 a 9, per cui cerchiamo i fattori:
riporto 3780 ai numeri primi.. per cui ho 2 2 3 5 7 9. ho una cifra in più.. poco male, gli unici prodotti che stanno ancora in una cifra sono 2*2 e 2*3. per cui le due combinazioni su cui lavorare sono
25679
34579
per calcolare tutte le condizioni ho fatto uno script shell stupido formato da 5 cicli for innestati. Ma questo è ovviamente uno spreco perchè è inutile provare la combinazione 22222 ..
per ovviare a questo ogni ciclo for controlla ad ogni tche l'indice corrente sia diverso dagli indici dei cicli esterni e lancia, nel caso sia verificata la condizione, l'eventuale ciclo interno.
per ora nel ciclo interno (al verificarsi della condizione descritta sopra) c'è ancora un echo per verificare visivamente che le condizioni siano rispettate.
ora arriviamo al dunque: devo verificare la presenza della pagina web. per questo mi servo di curl (ma si potrebbe benissimo usare wget o lynx); indicando con $code la combinazione corrente ho:
curl
così ho direttamente in output il codice giusto.. ora posso aprire il mio browser preferito ed andare all'indirizzo indicato dal codice.. e passare al livello successivo
Nessun commento:
Posta un commento