ZINO
HomeResearchBlogTagsPlaygroundStack
⌘K

레드팀 · AI 자동화 · 시스템 엔지니어링

직접 만들고, 실험하고, 기록한다

개인정보처리방침·이용약관

© 2026 ZINO LAB

← 태그 목록

Tag Archive

#web

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

38
posts
BLOG2026-06-08
[⭐⭐] nginx ACL을 \xA0 한 바이트로 — DreamHack youth-Case 풀이
blog

[⭐⭐] nginx ACL을 \xA0 한 바이트로 — DreamHack youth-Case 풀이

nginx가 막은 POST /shop을 경로 끝의 raw \xA0(NBSP) 한 바이트로 우회한다. nginx는 \xA0를 경로에 남겨 deny 규칙과 어긋나지만 Node url.parse는 그 공백을 떼어내 /shop으로 라우팅한다. leg 필터는 합자 fl로 toLowerCase/toUpperCase 비대칭을 찔러 통과한다.
#dreamhack#ctf#web+6
 
BLOG2026-06-08
[🥈 Silver 3] NoSQL 연산자 주입으로 admin 비밀번호 훔치기 — DreamHack Not-only 풀이
blog

[🥈 Silver 3] NoSQL 연산자 주입으로 admin 비밀번호 훔치기 — DreamHack Not-only 풀이

Mongoose 로그인이 req.body 를 그대로 findOne 쿼리에 넣는다. JSON 바디로 $ne 연산자를 보내 비밀번호 없이 로그인하고, /user 가 노출하는 admin 값으로 진짜 admin 유저를 찾는다. $regex blind 로 비밀번호를 한 글자씩 뽑는데, 플래그는 admin 두 명의 비밀번호에 반씩 쪼개져 있었다.
#dreamhack#ctf#web+4
BLOG2026-06-08
[🥈 Silver 3] eval() 화이트리스트 필터를 chr()로 우회하기 — DreamHack Addition calculator 풀이
blog

[🥈 Silver 3] eval() 화이트리스트 필터를 chr()로 우회하기 — DreamHack Addition calculator 풀이

덧셈식을 받아 eval()로 계산하는 Flask 계산기. 따옴표·언더스코어·콤마가 전부 화이트리스트 밖이라 문자열 리터럴을 못 쓰고, flag·system 같은 단어는 블랙리스트로 막힌다. chr() 코드포인트를 +로 이어 "flag.txt"를 조립해 open().read()로 ./flag.txt를 읽어낸다.
#dreamhack#ctf#web+4
BLOG2026-06-06
[🥇 Gold 1] 깨진 정규식 한 줄이 XSS를 연다 — DreamHack Fast XSS 풀이
blog

[🥇 Gold 1] 깨진 정규식 한 줄이 XSS를 연다 — DreamHack Fast XSS 풀이

FastAPI의 TemplateResponse에 임의 kwarg를 주입해 응답 헤더를 손에 넣는다. 템플릿은 autoescape라 body로는 막히지만, uvicorn의 헤더 "이름" 검증 정규식이 문자클래스 조기 종료 버그로 깨져 있어 헤더 이름에 CRLF를 넣을 수 있었다. 응답 분리로 web 오리진에 <script>를 심어 어드민 봇의 FLAG 쿠키를 탈취했다. Theori OSR CTF 출제작.
#dreamhack#ctf#web+5
BLOG2026-06-06
[🥈 Silver 3] 비밀번호 자리에 객체를 넣다 — DreamHack CProxy: Inject 풀이
blog

[🥈 Silver 3] 비밀번호 자리에 객체를 넣다 — DreamHack CProxy: Inject 풀이

쿼리는 ? 플레이스홀더로 안전하게 짰는데도 로그인이 뚫린다. express의 qs 바디 파서가 pw를 객체로 만들고, node-mysql이 그 객체를 `pw` = '1' 로 풀어쓰면서 비밀번호 검사가 항상 참이 됐다. admin_inject 계정을 탈취해 저장된 프록시 응답에서 플래그를 꺼냈다. 삽질과 캡쳐를 곁들인 풀이 노트.
#dreamhack#ctf#web+4
BLOG2026-06-06
[🥈 Silver 3] 에러 메시지 한 줄이 키를 흘린다 — DreamHack Padding Oracle 풀이
blog

[🥈 Silver 3] 에러 메시지 한 줄이 키를 흘린다 — DreamHack Padding Oracle 풀이

AES-CBC로 암호화된 관리자 글을 키 없이 읽는다. unpad() 실패가 ValueError로 새어나오는 걸 오라클 삼아 패딩 오라클 공격으로 한 바이트씩 복호했다. 고정 IV, 인증 없는 복호, 구분되는 예외 메시지가 겹쳐 암호문이 그대로 평문이 됐다. 삽질과 캡쳐를 곁들인 풀이 노트.
#dreamhack#ctf#web+4
BLOG2026-06-06
[🥈 Silver 4] switch는 느슨하게 비교한다 — DreamHack Switching Command 풀이
blog

[🥈 Silver 4] switch는 느슨하게 비교한다 — DreamHack Switching Command 풀이

PHP의 switch는 == 로 비교한다. 입력을 boolean true로 보내면 ===로 막아둔 "admin" 검사를 비껴가면서 switch case "admin"에는 걸려든다. 인증을 훔친 뒤엔 escapeshellcmd가 손대지 않는 따옴표로 명령 필터를 깨고, 출력이 안 보이는 blind 환경을 world-writable 웹루트에 파일을 떨궈 회수했다.
#dreamhack#ctf#web+5
BLOG2026-06-06
[🥉 Bronze 1] 읽을 수 없는 flag — LFI로 매니저 비번 털어 RCE — DreamHack Tomcat Manager 풀이
blog

[🥉 Bronze 1] 읽을 수 없는 flag — LFI로 매니저 비번 털어 RCE — DreamHack Tomcat Manager 풀이

image.jsp의 path traversal(LFI)로 /flag를 읽으려다 404에 막힌다. /flag가 읽기 권한 없는 실행 전용 파일이었기 때문. LFI로 conf/tomcat-users.xml의 진짜 매니저 비밀번호를 유출하고, Tomcat Manager에 웹셸 WAR을 배포해 RCE를 얻은 뒤 /flag를 "실행"해 플래그를 뽑았다.
#dreamhack#ctf#web+5
BLOG2026-06-06
[🥉 Bronze 2] 블랙리스트가 빠뜨린 백틱 — $IFS로 공백 없이 RCE — DreamHack Another Ping 풀이
blog

[🥉 Bronze 2] 블랙리스트가 빠뜨린 백틱 — $IFS로 공백 없이 RCE — DreamHack Another Ping 풀이

ping 유틸리티가 입력을 shell=True로 그대로 실행한다. 공백·세미콜론·파이프는 막았지만 백틱이 블랙리스트에 없어 명령치환이 통하고, 막힌 공백은 $IFS로 대체한다. `cat$IFS$9flag.txt` 한 줄로 flag를 ping 에러 메시지에 흘려보냈다.
#dreamhack#ctf#web+4
BLOG2026-06-05
[🥈 Silver 4] UNION으로 진짜 테이블을 찾아내는 SQL Injection — DreamHack baby-union 풀이
blog

[🥈 Silver 4] UNION으로 진짜 테이블을 찾아내는 SQL Injection — DreamHack baby-union 풀이

로그인 쿼리에 따옴표가 그대로 들어가는 전형적인 UNION SQL Injection. ' or 1=1로 주입을 확인하고, UNION SELECT 1,2,3,4로 컬럼 수와 출력 위치를 잡은 뒤, init.sql이 흘린 가짜 이름 대신 information_schema로 진짜 테이블(onlyflag)을 찾아 concat으로 플래그를 뽑았다.
#dreamhack#ctf#web+4
BLOG2026-06-05
[🥇 Gold 3] CSP nonce를 예측해서 뚫는 stored XSS — DreamHack Mini Social Media 풀이
blog

[🥇 Gold 3] CSP nonce를 예측해서 뚫는 stored XSS — DreamHack Mini Social Media 풀이

CSP가 inline script를 막지만 nonce를 Python random()으로 만든다. 응답 헤더로 새는 nonce를 624워드 모아 MT19937 상태를 복원하면 다음 nonce가 예측된다. reporter username의 stored XSS에 예측한 nonce를 박아 admin 봇 브라우저에서 /admin 플래그를 빼냈다.
#dreamhack#ctf#web+6
BLOG2026-06-05
[🥇 Gold 3] CSP nonce를 예측해서 박아 넣다 — DreamHack Dream Lectures 풀이
blog

[🥇 Gold 3] CSP nonce를 예측해서 박아 넣다 — DreamHack Dream Lectures 풀이

강의 신청 사이트의 reason 필드가 autoescape false로 그대로 렌더된다. 진짜 벽은 CSP nonce인데, 이 nonce가 16비트 LFSR로 생성되고 매 응답 헤더에 평문으로 샌다. 한 번 새어 나온 nonce로 LFSR을 복원해 다음 값을 예측하고, apply 한 요청 안에서 봇이 페이지를 읽는 타이밍에 맞춰 script nonce를 박아 CSP를 통과시킨 뒤 navigation으로 플래그를 빼냈다.
#dreamhack#ctf#web+6
BLOG2026-06-05
[🥇 Gold 3] 쿠키 한 줄로 Thymeleaf 뷰 이름을 갈아끼우다 — DreamHack spring-view 풀이
blog

[🥇 Gold 3] 쿠키 한 줄로 Thymeleaf 뷰 이름을 갈아끼우다 — DreamHack spring-view 풀이

Spring + Thymeleaf 앱에서 lang 쿠키가 그대로 뷰 이름이 된다. 프래그먼트 전처리 __${...}__ 로 SpEL을 실행하는 View-Name SSTI를 잡고, java/class/Runtime 블랙리스트와 쿠키 RFC6265 제약(공백·콤마·세미콜론 금지), 그리고 원격 Java 8 환경까지 차례로 우회해 /flag.txt 를 읽어낸다.
#dreamhack#ctf#web+5
BLOG2026-06-05
[🥉 Bronze 1] innerHTML에 넣은 <script>는 안 뜬다 — DreamHack xss-2 풀이
blog

[🥉 Bronze 1] innerHTML에 넣은 <script>는 안 뜬다 — DreamHack xss-2 풀이

vuln 페이지가 param을 innerHTML로 꽂는다. innerHTML로 삽입된 script는 실행되지 않으니 img/onerror로 우회해 봇의 flag 쿠키를 읽고, 공용 /memo 저장소로 흘려보내 회수했다.
#dreamhack#ctf#web+4
 
BLOG2026-06-05
[🥉 Bronze 2] 백업 기능이 쿠키를 그대로 셸에 넘긴다 — DreamHack Simple Note Manager 풀이
blog

[🥉 Bronze 2] 백업 기능이 쿠키를 그대로 셸에 넘긴다 — DreamHack Simple Note Manager 풀이

메모 백업 기능이 backup-timestamp 쿠키를 그대로 cp 명령에 끼워 넣고 shell=True로 실행한다. 출력이 돌아오지 않는 블라인드 OS 커맨드 인젝션이라, 컨테이너 안의 curl로 flag를 읽어 앱 자신의 /create_note에 다시 집어넣고 /notes에서 회수했다.
#dreamhack#ctf#web+4
BLOG2026-06-04
[🥉 Bronze 2] escapeshellcmd가 안 막는 공백 — curl 인자 주입으로 웹셸 RCE — DreamHack Command Injection Advanced 풀이
blog

[🥉 Bronze 2] escapeshellcmd가 안 막는 공백 — curl 인자 주입으로 웹셸 RCE — DreamHack Command Injection Advanced 풀이

escapeshellcmd는 셸 메타문자는 막지만 공백과 하이픈은 그대로 둔다. curl 명령에 -o 인자를 끼워 넣어 PHP 웹셸을 웹루트 cache/에 떨군 뒤, 그 웹셸로 실행전용 바이너리 /flag를 돌려 플래그를 얻은 과정을 정리했다.
#dreamhack#ctf#web+5
BLOG2026-06-04
[🥉 Bronze 1] SQL인 척하는 JSON, 진짜 구멍은 WebDAV PUT — DreamHack Really Not SQL 풀이
blog

[🥉 Bronze 1] SQL인 척하는 JSON, 진짜 구멍은 WebDAV PUT — DreamHack Really Not SQL 풀이

로그인은 user/<id>.json 파일을 읽는 JSON 유저 저장소다. admin 비밀번호는 모르지만, Apache의 user/ 디렉터리에 mod_dav가 켜져 있고 .htaccess는 DELETE만 막는다. PUT으로 admin.json을 내가 아는 해시로 덮어써 admin이 된 뒤 flag.php를 연 과정.
#dreamhack#ctf#web+5
BLOG2026-06-04
[🥉 Bronze 1] 봇의 admin 헤더를 빌려 /whoami 털기 — DreamHack Are you admin? 풀이
blog

[🥉 Bronze 1] 봇의 admin 헤더를 빌려 /whoami 털기 — DreamHack Are you admin? 풀이

intro 페이지의 name이 `| safe`로 이스케이프 없이 렌더되는 reflected XSS. 봇은 모든 요청에 admin Basic-Auth 헤더를 자동으로 붙이고 다니므로, 봇 컨텍스트에서 /whoami를 fetch하면 admin으로 인증돼 FLAG가 나온다. 이를 webhook으로 빼낸 과정.
#dreamhack#ctf#web+5
BLOG2026-06-04
[🥉 Bronze 2] 봇의 쿠키를 /memo로 흘려 회수하기 — DreamHack xss-1 풀이
blog

[🥉 Bronze 2] 봇의 쿠키를 /memo로 흘려 회수하기 — DreamHack xss-1 풀이

/vuln이 입력을 이스케이프 없이 그대로 뱉는 reflected XSS. flag를 쿠키로 들고 페이지를 방문하는 봇에게 스크립트를 주입해 document.cookie를 같은 서버의 /memo로 흘려보내고, 그 memo를 직접 읽어 플래그를 회수한 과정을 정리했다.
#dreamhack#ctf#web+5
 
BLOG2026-06-04
[🥉 Bronze 3] sleep 한 줄로 KEY를 흘리게 만들기 — DreamHack BypassIF 풀이
blog

[🥉 Bronze 3] sleep 한 줄로 KEY를 흘리게 만들기 — DreamHack BypassIF 풀이

Admin KEY를 모르는데 KEY는 md5(flag)다. 명령 필터를 통과하는 sleep으로 일부러 타임아웃을 내면 except 분기가 KEY를 응답에 그대로 흘린다. 유출한 KEY를 다시 제출해 플래그를 받아낸 과정을 정리했다.
#dreamhack#ctf#web+4
 
BLOG2026-06-04
[🥉 Bronze 3] X-User·Referer 헤더 위조로 비밀 문서 읽기 — DreamHack DreamDocs 풀이
blog

[🥉 Bronze 3] X-User·Referer 헤더 위조로 비밀 문서 읽기 — DreamHack DreamDocs 풀이

문서 열람 권한을 Referer와 X-User 헤더로만 판단하는 게시판이다. 둘 다 요청자가 마음대로 보내는 값이라, X-User: admin 과 Referer: /share 를 위조하면 confidential 문서의 본문(FLAG)이 그대로 열린다.
#dreamhack#ctf#web+6
 
BLOG2026-06-04
[🥉 Bronze 2] GIF 폴리글랏으로 PHP 웹셸 업로드 — DreamHack Image Uploader 풀이
blog

[🥉 Bronze 2] GIF 폴리글랏으로 PHP 웹셸 업로드 — DreamHack Image Uploader 풀이

확장자와 MIME 타입 검사를 AND(&&)로 묶은 업로더다. 둘 중 하나만 통과하면 되는 허점이라, GIF89a 매직바이트를 앞에 붙인 .php 파일이 image/gif 로 인식돼 그대로 업로드된다. 웹셸을 올려 RCE로 플래그를 읽는 과정을 정리했다.
#dreamhack#ctf#web+6
 
BLOG2026-06-04
[🥉 Bronze 3] 숨긴 _id를 ObjectId 예측으로 복원해 비밀글 읽기 — DreamHack mongoboard 풀이
blog

[🥉 Bronze 3] 숨긴 _id를 ObjectId 예측으로 복원해 비밀글 읽기 — DreamHack mongoboard 풀이

게시판이 비밀글의 _id만 null로 가렸지만, MongoDB ObjectId는 시각·랜덤·카운터로 이뤄진 예측 가능한 값이다. 보이는 글들의 _id와 비밀글의 publish_date만으로 숨긴 _id를 복원해 본문(FLAG)을 읽는 과정을 정리했다.
#dreamhack#ctf#web+5
 
BLOG2026-06-04
[🥈 Silver 4] CouchDB 특수 엔드포인트로 인증 우회 — DreamHack NoSQL-CouchDB 풀이
blog

[🥈 Silver 4] CouchDB 특수 엔드포인트로 인증 우회 — DreamHack NoSQL-CouchDB 풀이

로그인 비교식 result.upw === req.body.upw 의 빈틈. uid에 CouchDB 특수 엔드포인트 _all_docs 를 넣으면 응답에 upw 필드가 없어 undefined가 되고, upw를 아예 보내지 않으면 undefined === undefined 로 비밀번호 없이 인증을 통과해 FLAG를 가져온다.
#dreamhack#ctf#web+4
BLOG2026-06-04
[🥉 Bronze 1] SVG 태그 allowlist를 우회한 innerHTML XSS로 쿠키 탈취 — DreamHack PTML 풀이
blog

[🥉 Bronze 1] SVG 태그 allowlist를 우회한 innerHTML XSS로 쿠키 탈취 — DreamHack PTML 풀이

업로드한 SVG를 innerHTML로 그대로 삽입하는데, 검증은 태그 이름만 allowlist로 본다. 허용 태그(animate·image·svg)에 이벤트 핸들러 속성을 달아 XSS를 띄우고, 봇이 들고 있는 flag 쿠키를 동기 XHR로 유출하는 과정을 정리했다.
#dreamhack#ctf#web+5
 
BLOG2026-06-04
[🥉 Bronze 4] 부분 일치 누출로 4자리 사물함 번호 복원 — DreamHack random-test 풀이
blog

[🥉 Bronze 4] 부분 일치 누출로 4자리 사물함 번호 복원 — DreamHack random-test 풀이

로그인 폼이 전체 값이 아니라 입력 길이만큼의 prefix만 비교하면, 한 글자씩 정답을 떠보는 oracle이 된다. 2.1억 조합짜리 사물함 번호+비밀번호를 176번의 요청으로 복원해 플래그를 얻는 과정을 정리했다.
#dreamhack#ctf#web+5
 
BLOG2026-06-01
[🥇 Gold 2] URLDecode와 curl의 파서 차이로 SSRF 우회 — DreamHack Strong BypassIF 풀이
blog

[🥇 Gold 2] URLDecode와 curl의 파서 차이로 SSRF 우회 — DreamHack Strong BypassIF 풀이

서버는 URLDecode 후 UriComponentsBuilder로 host를 검증하지만, 실제 요청은 디코딩하지 않은 raw URL을 curl에 그대로 넘긴다. 이 한 끗 차이로 검증기는 localhost로, curl은 외부 서버로 보내 Access-Token을 유출하고 /api/flag를 직접 호출했다.
#dreamhack#ctf#web+4
BLOG2026-05-29
[💎 Diamond 4] 난독화된 안드로이드 DRM을 통째로 빌려 쓰기 — DreamHack Dream DRM 풀이
blog

[💎 Diamond 4] 난독화된 안드로이드 DRM을 통째로 빌려 쓰기 — DreamHack Dream DRM 풀이

request_book의 id 파라미터 SQL Injection으로 서버의 임의 파일(/flag)을 암호문 상태로 읽어내고, 패킹된 native DRM 라이브러리를 NDK 하니스 + dlopen + 가짜 JNIEnv로 직접 호출해 복호화 오라클로 삼는 과정을 정리한다. 오프라인 크래킹·APK 재서명·MITM 등 막다른 길까지 전부 기록한 Theori 채용 CTF 다이아 4 풀이.
#dreamhack#ctf#web+7
BLOG2026-05-29
[🌱 새싹] 내부 전용 API를 ../ 한 방으로 뚫기 — DreamHack Path Traversal 풀이
blog

[🌱 새싹] 내부 전용 API를 ../ 한 방으로 뚫기 — DreamHack Path Traversal 풀이

127.0.0.1 에서만 호출 가능한 internal API 서버. 사용자 입력이 그대로 내부 요청 URL에 들어가는 SSRF + Path Traversal 취약점을 이용해, `../flag` 한 줄로 접근 제한된 /api/flag 엔드포인트의 플래그를 빼낸다.
#dreamhack#ctf#web+4
 
BLOG2026-05-29
[💎 Diamond 4] jsdom ≠ Chrome 파서 차이로 터지는 mutation XSS — DreamHack web-dreamshop 풀이
blog

[💎 Diamond 4] jsdom ≠ Chrome 파서 차이로 터지는 mutation XSS — DreamHack web-dreamshop 풀이

프론트엔드 번들에 jsdom을 끼워 DOMPurify로 sanitize하는 순간, "검사한 DOM"과 "렌더하는 DOM"이 달라져 mutation XSS가 열린다. vue-router의 %2F 디코드와 axios protocol-relative 처리로 admin 봇의 요청 호스트를 탈취하고, 그 위에 mXSS를 얹어 admin 권한으로 FLAG를 "구매"하는 DreamHack 다이아4 web 문제 풀이.
#dreamhack#ctf#web+7
BLOG2026-05-24
[⭐⭐⭐] ord마저 막힌 곳에서 글자를 캐내는 법 — DreamHack SQL Injection Bypass WAF Advanced 풀이
blog

[⭐⭐⭐] ord마저 막힌 곳에서 글자를 캐내는 법 — DreamHack SQL Injection Bypass WAF Advanced 풀이

union·select·from·and·or·admin·공백까지 막힌 WAF 환경에서 `||` `&&` `idx=` `ascii()` `substr()` 조합으로 admin 행을 매칭하고, ASCII 이진 탐색으로 44자리 플래그를 추출한 풀이입니다. `ord()`가 `or` 부분문자열 때문에 차단되는 함정이 핵심.
#dreamhack#ctf#web+5
BLOG2026-05-23
[⭐⭐⭐⭐] 디버그 엔드포인트가 세션 전체를 토해낸다 — DreamHack session-basic 풀이
blog

[⭐⭐⭐⭐] 디버그 엔드포인트가 세션 전체를 토해낸다 — DreamHack session-basic 풀이

Flask 세션 인증 서비스에서 개발자가 "나중에 고칠게" 주석으로 남겨둔 /admin 엔드포인트가 session_storage 딕셔너리 전체를 JSON으로 반환한다. 서버 부팅 시 미리 생성된 admin sessionid를 그대로 가져와 쿠키에 박으면 끝.
#dreamhack#ctf#web+4
 
BLOG2026-05-07
[⭐⭐⭐] SQLi + SSRF 더블 슬래시 필터 우회 — DreamHack admin only 풀이
blog

[⭐⭐⭐] SQLi + SSRF 더블 슬래시 필터 우회 — DreamHack admin only 풀이

SQLite UNION 인젝션으로 admin 비밀번호를 탈취·로그인하고, /profile의 SSRF를 통해 //getflag (더블 슬래시) 경로 우회로 /getflag 필터를 bypass해 FLAG를 획득하는 풀이.
#dreamhack#ctf#web+6
 
BLOG2026-04-01
[⭐⭐⭐] TAB 하나로 필터 열 개를 뚫다 — DreamHack XSS Filtering Bypass Advanced 풀이
blog

[⭐⭐⭐] TAB 하나로 필터 열 개를 뚫다 — DreamHack XSS Filtering Bypass Advanced 풀이

script, javascript, document, location, (, )까지 10개 이상의 키워드를 차단하는 XSS 필터. 그런데 javas\tcript처럼 TAB 문자(\t)를 키워드 중간에 끼우면 필터는 통과하고 브라우저는 그대로 실행한다. WHATWG URL 스펙이 정의한 정규화 동작과 Python 문자열 필터 사이의 갭을 파고들어 쿠키를 탈취하고 FLAG를 획득하는 과정을 단계별로 정리한다.
#dreamhack#ctf#web+4
BLOG2026-04-01
[⭐⭐⭐⭐⭐] 한 번 막히고 나서야 보였던 체인: DreamHack EZ-Anti-LLM Pingback SSRF 풀이
blog

[⭐⭐⭐⭐⭐] 한 번 막히고 나서야 보였던 체인: DreamHack EZ-Anti-LLM Pingback SSRF 풀이

WordPress 6.9.1 Pingback Blind SSRF를 이용해 2-Hop 체인으로 내부 Flag 서버의 값을 외부로 끌어낸 DreamHack Level 5 문제 풀이. 삽질 포인트부터 최종 익스플로잇 흐름까지 차근차근 정리했다.
#dreamhack#ctf#ssrf+5
BLOG2026-03-31
[🥈 Silver 3] 미리보기 기능을 타고 내부 Docker API까지 — DreamHack Tap Tap 풀이
blog

[🥈 Silver 3] 미리보기 기능을 타고 내부 Docker API까지 — DreamHack Tap Tap 풀이

Internal API Testing Tool의 검증 우회를 통해 SSRF를 성공시키고, 내부 Docker API에서 컨테이너 로그로 최종 플래그를 획득한 전 과정을 정리합니다.
#dreamhack#ctf#ssrf+3
 
RESEARCH2026-03-25
React2Shell (CVE-2025-55182): RSC Flight 역직렬화 기반 Pre-Auth RCE 실험 분석
blog

React2Shell (CVE-2025-55182): RSC Flight 역직렬화 기반 Pre-Auth RCE 실험 분석

React Server Components의 Flight 프로토콜에서 역직렬화 결함이 서버 측 원격 코드 실행으로 이어지는 전체 과정을, 정상 흐름과의 비교·payload 구조 분석·RCE 실증·공격 확장 경로까지 실험 기반으로 추적한다.
#security#react#rce+5
 
RESEARCH2026-03-24
JWT(JSON Web Token) 구조와 인증 흐름 완전 이해
blog

JWT(JSON Web Token) 구조와 인증 흐름 완전 이해

JWT의 구조(Header, Payload, Signature)와 인증 흐름을 실무 관점에서 정리하고, 안전하게 사용하는 방법까지 한 번에 정리합니다.
#jwt#authentication#security+2