【网络安全 | CTF】护网杯2018easy_tornado解题详析(Tornado之SSTI注入)

本文详细分析了护网杯2018中easy_tornado挑战的解决过程,探讨了如何利用Tornado的模板注入漏洞,通过获取cookie_secret并进行两次MD5加密来揭示隐藏的flag。

目录

姿势

进入页面给出三个链接:

在这里插入图片描述

分别为:

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

提示:filename先被md5加密后,结合cookie_secret,再次被md5加密

先加密filename:

在这里插入图片描述

得到:3bf9f6cf685a6dd8defadabfb41a03a1

### EasyTornado 使用指南 #### 关于 `render` 函数 `render` 是 Python 中用于渲染模板的一个函数,尤其适用于 Tornado 框架。此函数依据传入的不同参数来动态生成页内容[^1]。 ```python def get(self): self.render("template.html", variable=value) ``` 这段代码展示了如何利用 `self.render()` 方法加载名为 `"template.html"` 的 HTML 文件并传递变量给该文件以便在前端显示。 #### 访问环境配置信息 对于 Tornado 应用程序而言,`handler.settings` 提供了一种便捷的方式来获取应用程序级别的设置项。这意味着开发者能够轻松读取全局设定的信息,比如数据库连接字符串或者静态资源路径等[^2]。 ```python class MainHandler(tornado.web.RequestHandler): def get(self): setting_value = self.settings.get('setting_name', default_value) self.write(f'Setting value is {setting_value}') ``` 这里演示了怎样从请求处理器内部提取特定的配置选项;如果指定的名字不存在,则返回默认值。 #### 多个 Handler 的定义与继承关系 当构建基于 Tornado站项目时,通常会创建多个处理不同 URL 请求的 handler 类。这些自定义类都应继承自基类 `tornado.web.RequestHandler` 并且共享相同的应用实例(`application`)及其属性(settings)[^3]。 ```python from tornado.web import Application, RequestHandler class BaseHandler(RequestHandler): pass # 可能有一些通用逻辑 class HomeHandler(BaseHandler): def get(self): self.write("Home Page") app = Application([ (r"/", HomeHandler), ], **settings_dict) ``` 上述例子说明了一个简单的应用结构,其中包含了两个 handlers——一个是基础类 `BaseHandler` ,另一个是从它派生出来的具体页面控制器 `HomeHandler`. #### 安全性和漏洞防范 值得注意的是,在实际开发过程中要特别关注安全性问题。例如,在某些 CTF(夺旗竞赛)挑战赛里可能会遇到有关 Tornado 模板注入的问题。为了防止此类攻击发生,务必仔细验证用户输入的数据,并采用合适的编码措施以确保不会被恶意利用[^4]. #### 实际案例分 在一个具体的 CTF 场景下,参与者可能需要解决涉及文件哈希校验的任务。通过构造特殊的查询字符串参数组合 (`filename` 和 `filehash`) 来绕过安全机制从而获取敏感信息。然而这种做法仅限于学习研究用途,请勿非法使用[^5].
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秋说

感谢打赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值