
Une collection complète de 12 défis d'exploitation web conteneurisés couvrant CVE-2023-25690, les contournements WebAuthn, le smuggling HTTP/3 et les chaînes XSS/RCE avancées
"Je ne voyage pas sur des routes établies mais je saute librement à travers le vide. Empaquetez-moi mal, et je livrerai un secret à la mauvaise porte."
Le défi présente une application HTTP/3 (QUIC) superposée à UDP. Comme UDP est sans état et que le proxy n'impose pas de limites strictes de requêtes HTTP comme TCP, il est possible de désynchroniser le proxy et le serveur backend. Un attaquant peut faire passer clandestinement une requête HTTP cachée dans une autre requête.
Remarques - la longueur maximale des messages est de 1024 octets, seules les requêtes GET fonctionneront vraiment, et les messages sont supprimés après 10 secondes
Cible : byuctf.xyz:40011
Dans cette implémentation spécifique, un middleware Python (udp_server.py) écoute sur le port 40000 pour recevoir du texte. Ce serveur transmet les requêtes dès qu'un \r\n\r\n est trouvé au serveur web réel. Comme il s'agit d'UDP, il y a une forte probabilité de livraison partielle des paquets, conduisant à une désynchronisation si plusieurs requêtes sont envoyées rapidement ou si les limites des paquets sont manipulées.
Pour résoudre ce défi, vous devez prendre en compte la nature peu fiable d'UDP et la manière spécifique dont le middleware gère les limites des requêtes.
/ révèle un indice sur l'instabilité de la connexion Nether./endpoints.txt pour trouver une liste de 200 points de terminaison cachés possibles.solve.py) pour envoyer des requêtes HTTP brutes sur UDP à la cible. Le script doit parcourir les points de terminaison et demander chacun d'eux de manière répétée jusqu'à ce qu'une réponse complète (contenant un corps) soit reçue.CH4KR4X2{P0D5_bl0ckch41n_br34ch}
Ce défi exécute un serveur Flask sur le port 1337 et udp_server.py sur le port 40000.
Build :
sudo docker build -t huup .
sudo docker network create -d bridge huup
Run :
sudo docker run -p 40011:40000/udp --detach --name huup --network huup huup:latest