
CVE-2023-25690, WebAuthn 우회, HTTP/3 스머글링 및 고급 XSS/RCE 체인을 다루는 12개의 컨테이너화된 웹 익스플로잇 챌린지 종합 모음
"저는 정해진 길을 따라 여행하지 않고 공허를 자유롭게 뛰어넘습니다. 저를 잘못 포장하면, 당신의 비밀을 엉뚱한 문 앞에 배달하게 될 것입니다."
이 챌린지는 UDP 위에서 동작하는 HTTP/3(QUIC) 애플리케이션을 다룹니다. UDP는 무상태(stateless) 프로토콜이고 프록시가 TCP처럼 엄격한 HTTP 요청 경계를 강제하지 않기 때문에, 프록시와 백엔드 서버를 역동기화시키는 것이 가능합니다. 공격자는 다른 요청 안에 숨겨진 HTTP 요청을 밀반입할 수 있습니다.
참고: 최대 메시지 길이는 1024바이트이고, GET 요청만 실제로 동작하며, 메시지는 10초 후 폐기됩니다.
대상: byuctf.xyz:40011
이 특정 구현에서는 Python 미들웨어(udp_server.py)가 포트 40000에서 수신되는 텍스트를 수신 대기합니다. 이 서버는 \r\n\r\n이 발견되면 해당 요청을 실제 웹 서버로 전달합니다. UDP이기 때문에 패킷이 부분적으로 전달될 가능성이 높으며, 여러 요청을 빠르게 보내거나 패킷 경계를 조작하면 역동기화가 발생할 수 있습니다.
이 챌린지를 해결하려면 UDP의 신뢰할 수 없는 특성과 미들웨어가 요청 경계를 처리하는 특정 방식을 고려해야 합니다.
/ 엔드포인트에 접근하면 네더 연결 불안정성에 대한 힌트가 드러납니다./endpoints.txt로 이동하면 200개의 가능한 숨겨진 엔드포인트 목록을 찾을 수 있습니다.solve.py 참조). 스크립트는 엔드포인트를 순회하며 전체 응답(본문 포함)을 받을 때까지 각 엔드포인트를 반복해서 요청해야 합니다.CH4KR4X2{P0D5_bl0ckch41n_br34ch}
이 챌린지는 포트 1337에서 Flask 서버를 실행하고 포트 40000에서 udp_server.py를 실행합니다.
빌드:
sudo docker build -t huup .
sudo docker network create -d bridge huup
실행:
sudo docker run -p 40011:40000/udp --detach --name huup --network huup huup:latest