[护网杯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

护网杯 2018 easy_tornado 1BUUCFT模板注入

2018护网杯easy_tornado(SSTI tornado render模板注入)

BUUCTF-[护网杯 2018]easy_tornado

刷题记录:[护网杯 2018]easy_laravel

护网杯test