[护网杯2018]easy_tornado
Posted F1ght!!
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[护网杯2018]easy_tornado相关的知识,希望对你有一定的参考价值。
[护网杯 2018]easy_tornado:接触的第一道SSTI?
打开界面如下:
题目暗示考察python网络框架,tornado:
依次点开:
这里的提示,render(),是web后端的渲染函数。
可能从render()函数入手,考察模块注入,
在网址栏输入/error?msg={{1*2}}
测试有无可注入的漏洞:
然后就是这段代码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了,这里面就是我们的一些环境变量.(参考:https://www.cnblogs.com/xhds/p/12285121.html)
Tornado框架的附属文件handler.settings中存在cookie_secret
构造payload:
/error?msg={{handler.settings}}
得到了cookie_secret,前面提到过flag在flllllllllag中,暗示用文件哈希值访问该文件,而哈希值就是那串md5();
md5()中的内容就是cookie_secret和文件名。
在上图中也能看出其访问文件的方式:
file?filename=/fllllllllllllag&filehash=a83c48399cf70ee13f70eaca25f50b24
以上是关于[护网杯2018]easy_tornado的主要内容,如果未能解决你的问题,请参考以下文章
护网杯 2018 easy_tornado 1BUUCFT模板注入