Avviso importante: tutte le tecniche descritte servono solo per ambienti di test come Hack This Site (HTS). Qualsiasi applicazione in contesti reali senza autorizzazione è illegale.
Dopo aver manipolato form e script nei livelli 4 e 5, il Livello 6 cambia completamente approccio: per superarlo, dovrai decifrare un messaggio protetto da un semplice algoritmo di cifratura.
Questa volta, non basta leggere la sorgente o modificare un campo hidden: devi capire la logica di trasformazione del testo e costruirne l’inverso. In pratica, fare reverse engineering.
L’algoritmo svelato
Descrizione ufficiale:
Sam che si occupa di sicurezza di rete ha criptato la sua password. Il sistema di criptaggio ha un accesso pubblico e ci si può connettere usando il format qui sotto. Per cortesia inserisci una stringa per ottenere il messaggio criptato.
Il sito ti fornisce una black box: inserisci un input, ricevi una versione trasformata. Lo scopo è dedurre che tipo di trasformazione applica per poi invertire il processo e risalire alla password cifrata.
🔙 Hai perso i livelli precedenti?
➡️ Livelli base da 1 a 3: introduzione all’hacking etico
➡️Livelli base 4 e 5: i primi veri ostacoli dell’hacking etico
Cos’è la cifratura?
In parole semplici:
- Cifratura: trasformare un messaggio leggibile in una forma non leggibile
- Decifratura: riportare quel messaggio cifrato al suo stato originale
- Il meccanismo che realizza questa trasformazione è detto algoritmo di cifratura (o cypher)
Nel nostro caso, il sito usa una cifratura molto semplice e deterministica, che applica una trasformazione incrementale ai caratteri.
Analisi dell’algoritmo
Osservando vari test fatti da utenti (e giocando con input controllati), è possibile dedurre la logica:
- Ogni carattere della stringa viene convertito nel suo valore ASCII
- A ogni carattere viene sommato un valore crescente:
- il primo carattere +0
- il secondo +1
- il terzo +2
- e così via
- I valori ottenuti vengono riconvertiti in caratteri
Esempio
Input: "aaaa"
Valori ASCII: [97, 97, 97, 97]
Incrementi: [0, 1, 2, 3]
Somma: [97, 98, 99, 100] → "abcd"
Quindi: "aaaa" → "abcd"
Come risolvere: metodo e script
Qualcuno potrebbe perdersi, anche per questo l’esercizio ci richiede di persistere. L’hacking è anche questo: avere la pazienza di comprendere e provare più volte nella ricerca della soluzione, è un trial by error.
Quindi, cosa possiamo fare? L’idea più semplice è quella di tentare di inserire, nello strumento a nostra disposizione, un codice ordinato di cifre, che sia il più semplice possibile e della stessa lunghezza del codice da decifrare.
Abbiamo 8 cifre: prendiamoci un bel foglietto a parte, scriviamoci la password. Pensiamo a che codice possa essere stato usato, per esempio inseriamo nello strumento dei numeri da 0 a 7, oppure le prime sette lettere dell’alfabeto.
A questo punto, vedendo la risposta dello strumento usato, comprendiamo che il sistema applica a ogni carattere un incremento pari alla sua posizione: il primo carattere +0, il secondo +1, il terzo +2, e così via.
Passaggi logici:
- Prendi ciascun carattere della stringa cifrata
- Converti in ASCII
- Sottrai la posizione dell’indice (0, 1, 2…)
- Riconverti il risultato in carattere
🐍 Script Python per decifrare
cipher = "a7e34:l=" # esempio qualsiasi
plaintext = "".join(
chr(ord(c) - i)
for i, c in enumerate(cipher)
)
print("Password:", plaintext)🔎 Nota: "a7e34:l=" è solo un esempio fittizio. La stringa da decifrare ti verrà mostrata quando accedi al livello.
Cosa insegna questo livello
- Pensiero critico: dare turni matematici per decifrare un’algoritmo.
- Reverse engineering base: anche senza vedere il codice, un pattern può essere decodificato con input mirati.
- Script come estensione della mente: un paio di righe di Python fanno luce sui meccanismi nascosti.
Riflessione personale
Ricordo quando ho affrontato questo livello: ero convinta servisse solo un trucco da “smanettone”, finché non ho capito che serviva analisi, non forza bruta. È stato uno di quei momenti “Aha!” in cui ti rendi conto che la sicurezza — anche in un contesto di gioco — è soprattutto logica e chiarezza concettuale.
APPROFONDIMENTO – Crittografia simmetrica vs asimmetrica
Anche se il livello 6 usa un algoritmo di cifratura artigianale e semplificato, è utile conoscere i due principali approcci utilizzati nella sicurezza informatica reale:
🔁 Crittografia simmetrica
- Usa la stessa chiave per cifrare e decifrare.
- È rapida ed efficiente, adatta a grandi volumi di dati.
- Esempi: AES, DES, ChaCha20.
- Sfida principale: condividere la chiave in modo sicuro.
🔐 Crittografia asimmetrica
- Usa una coppia di chiavi: una pubblica (per cifrare) e una privata (per decifrare).
- È più lenta, ma risolve il problema dello scambio sicuro delle chiavi.
- Esempi: RSA, ECC (Elliptic Curve Cryptography).
- Fondamentale in protocolli come HTTPS, firmature digitali e scambio sicuro di dati.
Nel nostro caso, anche se non usiamo un algoritmo “ufficiale”, siamo più vicini a una cifratura simmetrica: chi cifra e chi decifra devono conoscere la stessa logica di trasformazione.
Questo esercizio, pur semplice, è un ottimo trampolino per capire i meccanismi base che stanno dietro la vera crittografia moderna.
🔙 ➡️ Prosegui con il Livello 7 (link non ancora attivo)
Q&A veloce
| Domanda | Risposta |
|---|---|
| Posso usare solo input noti? | No, serve testare e trascrivere vari input per capire il pattern. |
| Serve sapere Python o Bash? | No, ma aiuta davvero per automatizzare il calcolo. |
| E se l’algoritmo fosse più complesso o variabile? | Allora serve un approccio analitico ancora più strutturato. |
| È un algoritmo reale? | No, è una semplificazione pensata per esercitarsi nel ragionamento logico |
In sintesi
Il Livello 6 di Hack This Site è un perfetto esercizio di logica e decodifica, che ti insegna a:
- riconoscere un pattern da un output cifrato
- ragionare in termini di trasformazioni reversibili
- usare strumenti semplici (come Python) per decifrare rapidamente
Non serve “hackerare” un sistema, serve capirlo.
Ed è questo che rende l’hacking etico così affascinante.
⚡ Questo nodo della rete è alimentato da conoscenza libera e caffeina.
Se hai trovato qualcosa di utile, puoi supportarci con un caffè digitale.
👉 Offrimi un caffè
Powered by Buttondown
