web buuctf [护网杯 2018]easy_tornado1

分解信息量:

1.题目名称是easy-tornado:tornado是python的web框架(web框架的产生是避免程序代码与html编码的编码混乱性,框架将传参过程进行独立)

2.打开一共三个链接,分别点开

/flag.txt 提示内容:flag in /fllllllllllllag ,意思就是flag在文件fllllllllllllag里面,需要考虑怎么进入文件里面

/welcome.txt 提示内容:render,render是tornado里面的渲染函数,就是对web网页界面进行编辑的函数,和template的渲染是相似的,主要区别render是以脚本的方式进行渲染,template是以html方式进行渲染。这个重点在于是服务器模板,基本可以确定这是ssti(服务器模板注入),服务器模板注入和sql注入等有相同性,问题的关键在于传参

/hints.txt 提示内容:md5(cookie_secret+md5(filename)),md5就是哈希编码

3.根据打开链接的url,里面有两个参数一个是filename,一个是filehash,也就是说filename是第一个文件的提示,filehash是第三个文件的提示,那么问题就是如何获取cookie_secret。

cookie_secret不是通用的属性,也就可以确定,应该是存放在服务器模板中的值,问题就转化为通过传参获取cookie_secret的值。

4.还有一个问题就是参数如何传进去,因为是服务器模板,我们需要进入服务器返回的链接进行传参,我们随便改一下filename,我改成111,传进去之后,无法识别,返回链接http://22b7dd19-d653-4f52-91bd-e3713a459849.node4.buuoj.cn:81/error?msg=Error

也就是通过msg的值进行传参

5.Templates and UI — Tornado 6.1 documentation这个链接是tornado的官方文档,一个是通过文档我们获知传参的类型,另外一个是找到cookie_secret的赋值方法

为了不让大家去翻文档查找,我给大家把有用的内容截取下来

a.在template syntax中

传递的参数值应为{{值}}的格式

b.搜索cookie_secrue

 

cookie_secret在tornado.web.RequestHandler中的application的settings中,也就是需要传参RequestHandler.application.settings,但是传过去提示500,

在语法中其实有提示

然后有

所以传参应为{{handler.settings}},得到

 6.用在线加解密方式进行md5计算得到filehash

flag{714597c9-0d1d-4c92-a960-4b2d1bd1f172} 

 

 

  • 10
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值