🚩 LLM CTF β€” Prompt Injection Playground ========================================== Tu vas pirater un assistant IA (simulΓ©). 6 niveaux, 6 flags. Pas de rendu, pas de note. Juste t'amuser et apprendre. ─── Comment jouer ─────────────────────────────────────────── Envoie une requΓͺte POST avec ton prompt en JSON : curl -X POST https://ifapme.lexowan.com/chat1 \ -H 'Content-Type: application/json' \ -d '{"prompt":"ton message"}' Le serveur rΓ©pond { "response": "..." }. Si la rΓ©ponse contient FLAG{...}, c'est gagnΓ©. ─── Les niveaux ───────────────────────────────────────────── /chat1 Injection directe. L'attaque historique tient en deux mots. Trouve-les. /chat2 Filtre naΓ―f. Un mot-clΓ© est bloquΓ© cΓ΄tΓ© serveur. Contourne-le : synonymes, roleplay, obfuscation, demande de rΓ©pΓ©tition... /chat3 Exfiltration. Le bot cache un "mot secret" dans son system prompt. Une question directe ne marchera pas. Pistes : confusion de contexte, faux document Γ  rΓ©sumer, Γ©pellation lettre par lettre, surcharge du prompt. /chat4 Tool calling vulnΓ©rable. L'agent expose read_file(path). Il refuse /secret/... mais ne normalise pas le chemin. Path traversal ! Cibles : /secret/flag.txt, /private/notes.txt. /chat5 Indirect prompt injection. L'assistant rΓ©sume un document que tu fournis entre <> et <>. Il garde un token admin secret. Glisse ta consigne *Γ  l'intΓ©rieur* du document. /chat6 Filtre dur + dΓ©codage. Le filtre bloque ignore, oublie, flag, secret, dan... sur le texte brut. Mais le bot dΓ©code Base64, ROT13, et "lit" les homoglyphes Unicode (Π° Π΅ ΠΎ cyrilliques). ─── Bonus : recon HTTP (challenges web) ──────────────────── Pas de prompt Γ  envoyer pour ces niveaux : un simple GET suffit. Apprends Γ  fouiller une rΓ©ponse HTTP (curl -i ou DevTools). GET /web1 Le flag se cache dans un cookie. GET /web2 Le flag voyage dans un en-tΓͺte de rΓ©ponse. GET /web3 Affiche la page : le flag est dans le code source. GET /web4 Tous les bons crawlers commencent par lire /robots.txt. GET /web5 Active un mode cachΓ© via un paramΓ¨tre dans l'URL. GET /web6 L'admin a accΓ¨s Γ  plus de choses qu'un visiteur lambda. ─── Conseils ──────────────────────────────────────────────── - Pas besoin d'outils de bruteforce, juste de la curiositΓ©. - Les messages d'erreur sont des indices. - Plusieurs vecteurs marchent par niveau, essaie-en plusieurs. - Γ€ utiliser uniquement sur ce labo ou avec autorisation. Bon hack !