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

相关推荐
duke8692672141 小时前
html怎么用inert属性禁用_HTML如何通过Inert暂停交互区域
jvm·数据库·python
木易 士心1 小时前
一文彻底搞懂 Elasticsearch:原理、场景、避坑与优化
大数据·后端·elasticsearch·搜索引擎
2401_833033621 小时前
html如何修改备注
jvm·数据库·python
水木流年追梦1 小时前
【python因果库实战29】LaLonde 数据集2
开发语言·python·数据挖掘·langchain·机器人
2401_831419441 小时前
C#怎么实现批量邮件发送 C#如何用MailKit批量发送个性化邮件和HTML格式邮件【网络】
jvm·数据库·python
2301_781571421 小时前
golang如何实现微服务监控告警_golang微服务监控告警实现方法
jvm·数据库·python
zhaoyong2221 小时前
Redis怎样简便地操作不同数据结构
jvm·数据库·python
m0_740796361 小时前
MySQL中如何利用TAN或SIN计算三角函数_MySQL数学函数
jvm·数据库·python
weixin_444012931 小时前
Layui上传组件upload怎么监听大文件上传的百分比进度条
jvm·数据库·python