Tag Archive

#redis

이 태그가 포함된 글을 최신순으로 모아봤어요.

4
posts
BLOG2026-08-06
[🥇 Gold 1] 빈 catch 하나가 명령어 허용목록을 통째로 삼킨다 — DreamHack node_api 풀이
blog

[🥇 Gold 1] 빈 catch 하나가 명령어 허용목록을 통째로 삼킨다 — DreamHack node_api 풀이

/show_logs 는 첫 토큰을 무조건 get 으로 갈아치워 Redis 를 읽기 전용으로 묶어 둔다. 그런데 쿼리스트링을 배열로 보내면 Array 에는 .split 이 없어 TypeError 가 나고, 본문이 비어 있는 catch 가 그걸 삼키면서 정규화 세 줄이 통째로 건너뛰어진다. 임의 Redis 명령이 열리고, 세션 저장소가 같은 Redis 라서 SET 한 번으로 내 세션이 admin 이 된다.
#dreamhack#ctf#web+6
 
BLOG2026-07-20
[🥈 Silver 2] 연결은 미리 다 맺어두고 마지막 1바이트만 아꼈다 — DreamHack chocoshop 레이스 컨디션 풀이
blog

[🥈 Silver 2] 연결은 미리 다 맺어두고 마지막 1바이트만 아꼈다 — DreamHack chocoshop 레이스 컨디션 풀이

쿠폰 하나로 1000원, 플래그는 2000원. 세션당 쿠폰은 딱 한 번만 발급된다는 제약이 있었지만, "이미 받았는지 확인"과 "받았다고 기록"하는 두 Redis 명령 사이에는 짧은 틈이 있었다. requests + ThreadPoolExecutor로 30개를 동시에 쏴봤지만 결과는 1장뿐이었다 — 스레드마다 새로 여는 connect() 오버헤드가 도착 시각을 흩어놓은 탓이었다. 소켓을 전부 미리 열어두고, 헤더의 마지막 1바이트만 아껴뒀다가 한 번에 흘려보내는 single-packet 기법까지 가서야 100건 중 90건 넘는 쿠폰을 한 번에 받아냈다.
#dreamhack#ctf#web+5