intro
Ben ritrovati! Oggi vi voglio raccontare una storia abbastanza tranquilla, niente ex picchiate a sangue, niente benzina finita rimanendo bloccati sui colli, niente sfoghi di egocentrismo in 3^ media... Solo tante lacrime versate in una settimana al Politecnico di Milano.
"Alternanza scuola lavoro"
Oppure "PCTO" per i più moderni, una sigla che a mio avviso si potrebbe
riassumere come "Perdere Costantemente Tempo Obbligatoriamente", sopratutto
quando non si fanno stage interessanti e si viene mandati in biblioteca a far le
fotocopie (storia vera di alcuni conoscenti).
Oggi però evitiamo le critiche sociali, concentriamoci sulla mia esperienza:
Come comprenderete dal titolo, ho partecipato ad un campus di tecnologia al
Politecnico di Milano. Percorso di una settimana che, oltre ad avermi dato
nozioni importanti di cybersecurity ed hacking, ha tagliato gran parte delle ore
d'alternanza obbligatorie :)
Tutto perfetto direte voi, no?
Aspetate e vedrete.
il corso
Il corso era diviso in 2: lezioni teoriche la mattina, prove pratiche il
pomeriggio.
Essendo un corso di cybersecurity gli "esercizi" erano delle
CTF
modalità di competizione che consiste nel trovare una "flag" (che nel nostro
caso era una stringa di testo) attaccando determinati sistemi informatici. Si
partiva da challenge più semplici per arrivare a quelle via via più difficili o
impossibili nel caso di D&D...
PS: ora parlerò di challenges non completate, al contrario, quelle che siamo riusciti a finire son tutte nella repo GitHub di Andre, personaggio mistico che approfondiremo più tardi.
Challenges!
Ho citato D&D, ecco, quella era una sfida di blind injections di sql; inutile
dire che dopo ore di insulti alle divinità nessuno di noi sia riuscito a
completarla.
Per i meno avvezzi: sql è utile per interrogare dei database, "blind injection"
significa interrogare un database andando a caso... Quindi sperando di trovare
qualcosa inviando delle richieste casuali ad un server. Possiamo riassumerlo
come "cercare l'ago nel pagliaio, senza sapere cosa sia un ago, senza mani e
senza occhi"; convenite con me che non sia il passatempo preferito di tutti?
Eppure ci siamo impegnati per ore, cercando di trovare una logica nei vari
database che interrogavamo, ma nulla. Abbiamo dovuto abbandonare le ricerche per
mancanza di tempo :/
La flag di D&D rimarrà un segreto.
Ma quella non fu l'unica challenge non completata... Non completammo nemmeno la
decodifica di un cifrario polialfabetico a sestine...
In questo caso si trattava di decodificare un testo cifrato, testo senza senso
ovviamente, che coneneva la stringa "flag{argomentoDellaFlag}".
Certo, decodificare un testo non è così complesso, ci sono dei cifrari (come
quello di cesare) che si decodificano a mente, ma un polialfabetico a sestine
non proprio.
Un cifrario polialfabetico utilizza svariati alfabeti per codificare una
stringa, infine, le lettere vengono trasformate in un gruppo univoco formato
dalle prime 6 lettere dell'alfabeto.
Vi faccio un esempio:
utilizziamo la chiave "cuso" come cifratura polialfabetica per codificare la
parola "ciao".
Il risultato è la parola "ecsc", ora creiamo casualmentedeigruppi di lettere da "a" ad "f" e li sostituiamo a quelle che abbiamo.
Poniamo i gruppi di lettere siano "abcdef, bcdefa, cdefab", per le lettere
"e,c,s" (nonostante che nella realta questi gruppi siano generati casualmente e
siano ben più complicati di questi).
Il risultato è qualcosa di simile: "abcdefbcdefacdefabbcdefa".
ORA SPIEGATEMI COME SIA POSSIBILE CAPIRE CHE STA ROBA SIA UN "CIAO".
No seriamente, spiegatemelo, come pensate che in un testo di 10000 parole di
questo tipo io possa capire che dietro ci sia tutto sto casino?
Spoiler, non l'ho capito, ho chiesto il funzionamento del cifrario a Law
quando il corso era ormai finito...
Lacrime, sudore e dolore
Non crediate che con le challenges completate sia stato più semplice...
Certamente c'erano challenges più semplici e meno dispendiose a livello
mentale, lo ammetto, però alcune richiedevano un buon quantitativo di bestemmie
per far funzionare il tutto.
Ad esempio "The like".
Challenge che consisteva nell'ottenere un like dall'admin di un social
network. Un po' come se Mark Zuckerberg vi mettesse like ad una foto su
instagram.
Bene, l'admin era un bot creato da Law che metteva solo dislike a tutti.
Il problema era quindi far sì che l'admin mettesse like (cosa che il bot non
sapeva fare), ma che soprattutto lo mettesse al tuo post.
Dopo un po' di insulti e magheggi strani con il codice del sito, siamo
giunti alla conclusione che il bot funzionasse tramite degli identificativi dei
pulsanti e prendesse di mira sempre il primo post del sito. La soluzione era
quindi postare una foto e, nella didascalia, costruire un pulsante secondario
con identificativo "unlike" che però inviasse un messaggio di "like" al server.
Inoltre, per essere l'unico post del social bisognava distruggere quelli altrui.
Come? Aprire un commento e distruggere tutto quanto ci sembrava la scelta
migliore.
Incredibilmente, tutto "funzionò". Certo, dovemmo farci la guerra per
riuscire a non distruggerci i post a vicenda e lasciare il tempo all'admin di
metterci "dislike". Dopo un po' di intimidazioni e qualche insulto ai familiari
siamo riusciti a definire una "tregua momentanea".
(tutto questo perchè condividere la flag era inammissibile, non ci penso
nemmeno a passarti il risultato di ore di insulti e bestemmie)
un po' di cose carine
Nonostante i neuroni bruciati da tutta questa sofferenza, ci sono stati anche
tanti momenti felici. Tipo la cerimonia di fine corso, in cui abbiamo capito di
esser stato l'unico corso a soffrire e lavorare realmente (cof cof non come
quelli di coding che hanno scopiazzato flappy bird dai video degli indiani cof
cof).
Oppure quando sono riuscito ad avere 3 piadine al prezzo di 1 sfruttando un
errore nei cartelloni pubblicitari del bar del Politecnico.
Mai stato più fiero delle mie capacità imprenditoriali.
Sono anche fiero delle amicizie che si sono create tra i banchi del Poli,
quel pazzo furioso di Andre ad esempio. Una bestia che conosce python meglio di
quanto io conosca casa mia. Ha anche creato una repo GitHub in cui ci sono le
soluzioni di tutte le challenges.
Ecco il
link
Dopotutto è anche grazie a questa repo che mi sono avvicinato all'utilizzo di GitHub, pertanto lo ringrazio :)
conclusioni
Bene, ora che avete compreso che ci siano dei corsi estremamente distruttivi per la vostra sanità mentale, scegliete con cura come abbattere il monte ore di PCTO ;)
Spero che questo articolo sia stato di vostro interesse e di avervi strappato un
sorriso raccontando un pezzetto di me.
Per ora è tutto, leggi anche
altri miei articoli: