ctfweb:flask+ssti

两个思路一样的题er...

星愿信箱;

给了一个输入内容重复回显的页面,先用wappalyzer进行技术栈识别

一个基于python的flask,先看有没有ssti漏洞,没有的话尝试session伪造

尝试{{7*7}},没有有效回显

补充模板引擎:

  • Jinja2:使用{{}}作为输出语法({{7*7}})
  • Mako:使用{}作为输出语法({7*7})

尝试{%%},回显成功,存在ssti漏洞,而且{{}}可能被过滤掉了

找可以访问的全局对象------回显包括这个flask的所有全局变量,函数,导入模块,内置函数,看全局对象的原因是为了看__builtins__与os模块是否存在,他们如果都存在的话,证明我们可以用一些命令来探测信息

复制代码
{% print(url_for.__globals__) %}

存在包含 __builtins__ 的字典对象以及os

直接尝试读取flag

复制代码
{% print(url_for.__globals__['__builtins__']['open']('/flag').read()) %}

回显成功

玄武杯 2025锦家有什么

flask..

进入主页面,发现按钮失效,view-source一下:

提示路径try_a_try

访问,提示输入参数

发现写入name参数的时候回显有改变?name=leee

因为先前验证了模板是flask,所以试一下ssti,回显正确

继续看全局对象,?name={{url_for.globals}},回显有__builtins__以及os

直接读,?name=={{(url_for.globals'__builtins__''open'('/flag').read())}}

拿到flag

相关推荐
程序员爱钓鱼2 分钟前
Rust 变量与不可变性:为什么默认不能修改变量?
前端·后端·rust
xywww1684 小时前
大模型 API 选型实战:GPT、Gemini、Claude 接入时该看哪些指标?
运维·服务器·人工智能·python·gpt·langchain
GoGeekBaird8 小时前
我开源了 BeeWeave,给 AI Agent 搭一个越用越懂你的知识创作台
后端·github
夜雪一千9 小时前
Python enumerate() 函数完整详解:遍历同时获取索引,告别手动计数
服务器·windows·python
能有时光9 小时前
PyTorch KernelAgent 源码解读 ---(4)--- ExtractorAgent
人工智能·pytorch·python
_Jimmy_10 小时前
Python 协程库如何使用以及有哪些使用场景
python
aqi0010 小时前
15天学会AI应用开发(十七)使用LangGraph实现会话记忆功能
人工智能·python·大模型·ai编程·ai应用
第一程序员10 小时前
Rust Agent 子进程执行:Command 之前,先定义输入和超时
python·rust·github
skywalk816311 小时前
设计并实现段言的 C FFI 绑定机制 @Trae
c语言·开发语言·python·编程
weixin_BYSJ198711 小时前
SpringBoot + MySQL 乒乓球运动员信息管理系统项目实战--附源码04954
java·javascript·spring boot·python·django·flask·php