刘功瑞的博客

有一天你突然惊醒,发现这一切,都只不过是一场梦。

buuoj web easy_tornado writeup

进入题目网站,发现三个文件



首先进入第一个文件Orz.txt,发现提示渲染函数render(),直接将文件内容显示在网页上



再进入第二个文件hint.txt,发现提示md5(cookie_secret + md5(filename)),即先将filenamemd5加密,再将cookie_secret与md5加密后的filename进行md5加密,也就是说,目前我们需要知道的是filename和cookie_secret



之后,再进入第三个文件flag.txt,发现提示像文件名/fllllllllllag,



于是考虑filename=/fllllllllllag



但是提示有签名错误,发现/error?msg=签名错误,考虑服务端模板注入(ssti攻击)



尝试输入/error?msg={{1}},确实是存在模板注入



尝试输入/error?msg={{7*7}},不存在运算



之后进行各种尝试与资料获取发现对于tornado框架存在附属文件handler.settings,于是尝试输入/error?msg={{handler.settings}}


发现 ‘cookie_secret’:


'49c60e56-ee9d-442f-b8dc-b12b56fe5593'




于是进行前面所分析的md5加密





最后输入/file?filename=/fllllllllllllag&filehash=7d1e19f74099c8888470063b7a1be972

得到flag


flag{a0d95580-0019-4a6c-8d66-7f1ffc2bd59e}


PS:


有关于渲染函数render():


https://cn.vuejs.org/v2/guide/render-function.html


有关于服务端模板注入(ssti攻击):


https://www.cnblogs.com/tyomcat/p/5440488.html


有关于tornado:


https://blog.csdn.net/belalds/article/details/80575755


有关于Tornado.web.Application的settings参数:


https://blog.csdn.net/ljphilp/article/details/47103745


发表评论:

Powered By Z-BlogPHP 1.5.2 Zero

Copyright www.liugongrui.com.All Rights Reserved.