← 글 목록
CTF · 워게임

DreamHack web 문제 풀이 — SSTI에서 RCE까지

사용자 입력이 템플릿 엔진에 그대로 들어가는 지점을 찾아 SSTI를 RCE로 확장한 문제였다.

인젝션 확인

{{7*7}} 입력이 49로 렌더되는 걸 보고 Jinja2 SSTI를 확신했다.

{{ 7 * 7 }}
# → 49

필터 우회

__class__, import 같은 키워드가 막혀 있어 속성 접근을 우회 표기로 구성했다.

{{ ''.__class__.__mro__[1].__subclasses__() }}

RCE

최종적으로 subprocess를 들고 있는 클래스를 찾아 명령을 실행했고 플래그를 읽었다.

필터링은 블랙리스트로는 한계가 명확하다는 걸 다시 확인한 문제.