BUGKU-Simple_SSTI_1


本人初學SSTI,知識很有限,只能以新手的角度解析這道題

解題步驟

1.打開題目鏈接, 出現以下頁面

 

 提示需要傳入一個名為flag的參數,題目又叫SSTI,從而得到了可以使用模板注入的基本條件

2.根據經驗,一般secret-key中存在有價值的東西,或者說在config中,從而構建url:http://114.67.246.176:18558/?flag={{config}}

得到如下頁面

 

 看到secret_key中存在着flag

 

如果理解了題目的含義,那么也可以構建如下url:http://114.67.246.176:18558/?flag={{config.SECRET_KEY}}

 

 

 

從而直接獲取config里面secret_key變量的值,也就是flag

總結:這是一個關於python和jinja 2的極為基礎的ssti模板注入題目,只需要了解基礎的jinja語法和網頁頁面渲染方式。就是通常用戶需要提交一個姓名到網頁,然后這個網頁就會出現你每次訪問,出現hello,某某某的效果。而如果有ssti的漏洞,那么我們在提交姓名時,提交一個惡意代碼,在這里是jinjia 2引擎,我們提交一個jinjia2語句,然后jinjia2引擎就會渲染解析這個語句,而jinjia 2語句里面又會套用python語句,總而言之利用這些語句我們可以查看敏感信息,代碼執行或者getshell。根據經驗,我們一般會查看config信息,在這個題目中告訴了我們flag是可以傳入的ssti模板注入點,利用它獲取config信息,而網頁源碼也有提示是在secretkey處有貓膩。類似於xss的代碼執行,由於我們在url中傳入的參數flag的值為一個jinjia 2語句{{ }},這是一個變量語句,其中有函數config,通過網頁的二次渲染執行了這個語句,從而得到了想要的信息

彩蛋:我們一般也會查看網頁源代碼,可以看到以下提示

 

 他告訴了你是flask模板,同時一般會設置一個secret_key這樣一個變量


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM