栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

攻防世界Web:easytornado

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

攻防世界Web:easytornado

进入页面后,发现有三个可点击的链接:

点进去看看,分析flag是在fllllllllllllag中的,render是一个渲染函数(可以猜测这里存在模板注入),md5(cookie_secret+md5(filename))的值应该是我们最终需要得到的,并且发现点击每一个链接后,url里都有filehash参数,也就是说我们需要拿到cookie_secret的值,来计算出fllllllllllllag的filehash值:

/flag.txt:  flag in /fllllllllllllag
/welcome.txt:  render
/hints.txt:  md5(cookie_secret+md5(filename))

看能不能打开fllllllllllllag文件,发现显示Error,并且url中有一个参数msg可利用,前面说了有可能存在模板注入,那不妨试试:

发现的确存在模板注入

题目描述是Tornado 框架,去Tornado官方文档查阅资料:

RequestHandler.cookie的别名:self.request.cookies

RequestHandler.settings的别名:self.application.settings
handler是RequestHandler调用的子类

传递给构造函数的其他关键字参数保存在设置字典中,在文档中通常称为“应用程序设置”。设置用于定制Tornado的各个方面(尽管在某些情况下,通过重写RequestHandler子类中的方法可以实现更丰富的定制)。一些应用程序还喜欢使用设置字典,使特定于应用程序的设置可供处理程序使用,而无需使用全局变量。Tornado中使用的设置如下所述。

通过以上资料,可以知道:

  1. cookie_secret在settings中
  2. RequestHandler.cookie的别名:self.request.cookies
  3. RequestHandler.settings的别名:self.application.settings
  4. handler是RequestHandler调用的子类

handler是RequestHandler调用的子类,RequestHandler封装对请求处理的所有信息和方法,那么handler就是指向RequestHandler的,那么RequestHandler.settings等价于handler.settinigs:

构造paylod:

http://111.200.241.244:50353/error?msg={{handler.settings}}

拿到cookie_secret的值:

接下来就是计算md5(cookie_secret+md5(filename)):

拿到flag:

总结:
Tornado框架

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/325894.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号