CheatSheetHost
Un server web leggero e guidato dai contenuti per ospitare cheat sheet interattivi e materiali di riferimento. Perfetto per sfide CTF (Capture The Flag), reverse engineering e documentazione tecnica. È ideale per ambienti di laboratorio in cui si vuole limitare o evitare il traffico esterno pur avendo accesso a materiale utile.
*** Ho irrobustito un po' lo script, ma dovresti revisionarlo prima dell'uso e/o distribuirlo in un ambiente di laboratorio ***
Caratteristiche
- Contenuto JSON semplice: Definisci cheat sheet usando file JSON facili da modificare
- Design reattivo: Funziona su desktop, tablet e dispositivi mobili
- Tema terminale retrò: Estetica nostalgica da monitor CRT verde su nero
- Accessibile in LAN: Condividi cheat sheet sulla tua rete locale
- Tipi di sezioni multiple: Tabelle, blocchi di testo, frammenti di codice e tabelle ASCII
- Ricaricamento a caldo: Aggiorna il browser per vedere immediatamente le modifiche
- Server con thread: Gestisce più connessioni contemporanee
Avvio rapido
Prerequisiti
Installazione
-
Clona o scarica questo repository:
git clone https://github.com/JimmyAder/CheatSheetHost.git
cd CheatSheetHost
-
Avvia il server:
python3 host_content_site.py
-
Apri il browser su http://127.0.0.1:8766
Il server creerà automaticamente i file predefiniti se non esistono.
Link
Utilizzo
Accesso al sito
- Accesso locale:
http://127.0.0.1:8766
- Accesso in rete:
http://[tuo-ip-locale]:8766 (mostrato all'avvio)
Navigazione
- Pagina principale: Elenca tutti i cheat sheet disponibili
- Pagine singole: Clicca su un cheat sheet per visualizzarne il contenuto
- Barra di navigazione: Collegamenti rapidi a tutte le pagine
Endpoint API
GET /api/pages: Restituisce un elenco JSON degli slug delle pagine disponibili
Creazione e modifica dei cheat sheet
I cheat sheet sono salvati come file JSON nella directory pages/. Ogni file definisce una singola pagina con la seguente struttura:
{
"slug": "my-cheatsheet",
"title": "My Custom Cheatsheet",
"subtitle": "A brief description of this cheatsheet",
"sections": [
{
"type": "table",
"title": "Section Title",
"items": [
{"key": "Command", "value": "Description"},
{"key": "Another", "value": "Command"}
]
},
{
"type": "text",
"title": "Notes",
"text": "Some explanatory text here."
},
{
"type": "code",
"title": "Example Code",
"language": "python",
"code": "print('Hello, World!')"
}
],
"ascii": {
"title": "ASCII Table",
"blocks_across": 6,
"min_width_px": 920
}
}
Tipi di sezione
- table: Coppie chiave-valore visualizzate in formato tabella
- text: Contenuto di testo semplice (supporta interruzioni di riga)
- code: Blocchi di codice con evidenziazione della sintassi
- ascii: Tabella speciale di caratteri ASCII (opzionale)
Denominazione dei file
- I file devono essere nominati in modo descrittivo (es.
gdb-cheatsheet.json)
- Il campo
slug determina il percorso URL (generato automaticamente dal nome file se omesso)
- Il JSON deve essere valido; i file non validi vengono saltati con un avviso
Personalizzazione
Stile
Modifica site_template.html per modificarne l'aspetto:
- Variabili CSS in
:root per colori e layout
- Breakpoint reattivi per diverse dimensioni dello schermo
- Elementi di design in stile terminale
Configurazione del server
Opzioni da riga di comando:
python3 host_content_site.py --host 0.0.0.0 --port 8080
--host: Indirizzo IP a cui associarsi (predefinito: 0.0.0.0)
--port: Numero di porta (predefinito: 8766)
Struttura del progetto
CheatSheetHost/
├── host_content_site.py # Script principale del server
├── site_template.html # Template HTML e CSS
├── pages/ # File JSON dei cheat sheet
│ ├── ctf-cheatsheet.json
│ ├── gdb-cheatsheet.json
│ └── ...
└── README.md # Questo file
Cheat sheet inclusi
- CTF Master Sheet: Registri, syscall e tecniche comuni
- Bitwise / Crypto Pattern Recognition: Riferimento per individuare operazioni bit a bit, encoder, hash e pattern crittografici
- C / C++ for Reverse Engineering: Riferimento pratico per C e C++ per leggere output del decompilatore e ricostruire la logica
- GDB/x64dbg: Comandi e flussi di lavoro per il debug
- Ghidra: Scorciatoie per strumenti di reverse engineering
- Helpful Links & Study References: Reverse Engineering, CTF, Crittografia, Internals Binari e Piattaforme di Pratica
- Helpful Linux Commands for Reverse Engineering: Comandi Linux comuni per triage, ispezione binaria, debug e analisi di file
- IDA Pro: Tasti rapidi e funzionalità del disassemblatore
- Neovim: Comandi e configurazione dell'editor
- Python for Reverse Engineering: Riferimento Python pratico per parsing, decodifica e ricostruzione di algoritmi
- WinDbg: Comandi per il debug su Windows
- x64 Assembly: Riferimento per le istruzioni
- x64 Shellcode Syscalls: Numeri delle system call
- x86-32 Assembly: Riferimento per assembly a 32 bit
Contribuire
Aggiungere nuovi cheat sheet
- Crea un nuovo file JSON nella directory
pages/
- Segui la struttura JSON descritta sopra
- Verifica aggiornando il browser
- Invia una pull request
Migliorare il codice
- Il server è costruito con il modulo
http.server di Python
- Supporto per threading per richieste concorrenti
- Dipendenze minime (solo libreria standard)
Segnalare problemi
- Controlla i log del server per errori di parsing JSON
- Assicurati che i file JSON siano validi
- Prova su diversi browser/dispositivi
Sviluppo
Esecuzione dal sorgente
python3 host_content_site.py
Test delle modifiche
- Modifica i file JSON e aggiorna il browser
- Modifica
site_template.html per modifiche stilistiche
- Riavvia il server per modifiche al codice Python
Licenza
Questo progetto è open source. Sentiti libero di usarlo, modificarlo e distribuirlo.
Supporto