CheatSheetHost
Un serveur web léger, piloté par le contenu, pour héberger des antisèches interactives et des documents de référence. Parfait pour les défis CTF (Capture The Flag), le reverse engineering et la documentation technique. Idéal dans les laboratoires où l'on souhaite limiter ou renoncer au trafic externe tout en ayant accès à du matériel utile.
*** J'ai un peu renforcé le script mais vous devriez le vérifier avant utilisation et/ou déploiement dans un environnement de laboratoire ***
Fonctionnalités
- Contenu simple basé sur JSON : Définissez des antisèches à l'aide de fichiers JSON faciles à modifier
- Design responsive : Fonctionne sur ordinateur, tablette et mobile
- Thème rétro terminal : Esthétique nostalgique d'écran CRT vert sur noir
- Accessible sur le réseau local : Partagez des antisèches sur votre réseau local
- Plusieurs types de sections : Tableaux, blocs de texte, extraits de code et tableaux ASCII
- Rechargement à chaud : Actualisez le navigateur pour voir les changements instantanément
- Serveur multithreadé : Gère plusieurs connexions simultanées
Démarrage rapide
Prérequis
Installation
-
Clonez ou téléchargez ce dépôt :
git clone https://github.com/JimmyAder/CheatSheetHost.git
cd CheatSheetHost
-
Lancez le serveur :
python3 host_content_site.py
-
Ouvrez votre navigateur à l'adresse http://127.0.0.1:8766
Le serveur créera automatiquement les fichiers par défaut s'ils n'existent pas.
Liens
Utilisation
Accès au site
- Accès local :
http://127.0.0.1:8766
- Accès réseau :
http://[votre-adresse-ip-locale]:8766 (affiché au démarrage)
Navigation
- Page d'accueil : Liste toutes les antisèches disponibles
- Pages individuelles : Cliquez sur une antisèche pour voir son contenu
- Barre de navigation : Liens rapides vers toutes les pages
Point d'accès API
GET /api/pages : Renvoie une liste JSON des slugs de pages disponibles
Création et modification des antisèches
Les antisèches sont stockées sous forme de fichiers JSON dans le répertoire pages/. Chaque fichier définit une seule page avec la structure suivante :
{
"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
}
}
Types de sections
- table : Paires clé-valeur affichées dans un tableau
- text : Contenu texte brut (supporte les sauts de ligne)
- code : Blocs de code avec coloration syntaxique
- ascii : Tableau de caractères ASCII spéciaux (optionnel)
Nommage des fichiers
- Les fichiers doivent être nommés de manière descriptive (ex.
gdb-cheatsheet.json)
- Le champ
slug détermine le chemin URL (généré automatiquement à partir du nom de fichier si omis)
- Le JSON doit être valide ; les fichiers invalides sont ignorés avec un avertissement
Personnalisation
Style
Modifiez site_template.html pour changer l'apparence :
- Variables CSS dans
:root pour les couleurs et la mise en page
- Points d'arrêt responsives pour différentes tailles d'écran
- Éléments de design de style terminal
Configuration du serveur
Options en ligne de commande :
python3 host_content_site.py --host 0.0.0.0 --port 8080
--host : Adresse IP sur laquelle se lier (par défaut : 0.0.0.0)
--port : Numéro de port (par défaut : 8766)
Structure du projet
CheatSheetHost/
├── host_content_site.py # Main server script
├── site_template.html # HTML template and CSS
├── pages/ # Cheatsheet JSON files
│ ├── ctf-cheatsheet.json
│ ├── gdb-cheatsheet.json
│ └── ...
└── README.md # This file
Antisèches incluses
- CTF Master Sheet : Registres, appels système et techniques courantes
- Bitwise / Crypto Pattern Recognition : Référence pour repérer les opérations bitwise, encodeurs, hachages et motifs cryptographiques
- C / C++ for Reverse Engineering : Référence pratique en C et C++ pour lire les sorties de décompilateur et reconstruire la logique
- GDB/x64dbg : Commandes et workflows de débogage
- Ghidra : Raccourcis d'outil de reverse engineering
- Helpful Links & Study References : Reverse Engineering, CTFs, Crypto, Internes des binaires et Plateformes de pratique
- Helpful Linux Commands for Reverse Engineering : Commandes Linux courantes pour le triage, l'inspection de binaires, le débogage et l'analyse de fichiers
- IDA Pro : Raccourcis et fonctionnalités du désassembleur
- Neovim : Commandes et configuration de l'éditeur
- Python for Reverse Engineering : Référence Python pratique pour l'analyse, le décodage et la reconstruction d'algorithmes
- WinDbg : Commandes de débogage Windows
- x64 Assembly : Référence d'instructions
- x64 Shellcode Syscalls : Numéros d'appels système
- x86-32 Assembly : Référence assembleur 32 bits
Contribution
Ajout de nouvelles antisèches
- Créez un nouveau fichier JSON dans le répertoire
pages/
- Suivez la structure JSON décrite ci-dessus
- Testez en actualisant le navigateur
- Soumettez une pull request
Amélioration du code
- Le serveur est construit avec le module
http.server de Python
- Support du threading pour les requêtes concurrentes
- Dépendances minimales (bibliothèque standard uniquement)
Signalement de problèmes
- Vérifiez les journaux du serveur pour les erreurs d'analyse JSON
- Assurez-vous que les fichiers JSON sont valides
- Testez sur différents navigateurs/appareils
Développement
Exécution depuis les sources
python3 host_content_site.py
Test des modifications
- Modifiez les fichiers JSON et actualisez le navigateur
- Modifiez
site_template.html pour les changements de style
- Redémarrez le serveur pour les modifications du code Python
Licence
Ce projet est open source. N'hésitez pas à l'utiliser, le modifier et le distribuer.
Support
- Pour des questions ou problèmes, ouvrez un ticket GitHub
- Contributions bienvenues via des pull requests
- Mettez une étoile sur le dépôt si vous le trouvez utile !