this is my logo :)

CuSO's Place

My ideas and something else




TechCamp

- come perdere neuroni -

23/10/2022

min

modern tech




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: