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

PHP反序列化--_wakeup()绕过

一、漏洞原理:

二、靶场复现:

进入靶场,分析源代码:

<?php
error_reporting(0);
class secret{
    var $file='index.php';

    public function __construct($file){
        $this->file=$file;
    }

    function __destruct(){
        include_once($this->file);
        echo $flag;
    }

    function __wakeup(){
        $this->file='index.php';
    }
}
$cmd=$_GET['cmd'];
if (!isset($cmd)){
    highlight_file(__FILE__);
}
else{
    if (preg_match('/[oc]:\d+:/i',$cmd)){
        echo "Are you daydreaming?";
    }
    else{
        unserialize($cmd);
    }
}
//sercet in flag.php
?>

分析代码可知,我们只需要将 $file 赋值为 flag.php 并且将 _wakeup()函数绕过即可。

构造payload:

并且将 "serect" 后的 1 改为 2,来绕过 _wakeup()函数。

根据正则表达式,题目不允许 O 的后面有数字,我们只能将 O:6 改为 O:%2B6,其中%2B是加号(+) 的url编码。

将最终的 payload 提交:


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

相关文章:

  • SpringBoot之核心配置
  • C语言初阶习题【25】strcpy的模拟实现
  • (概率论)无偏估计
  • Agent | Dify中的两种可选模式
  • nginx 日志规范化意义及实现!
  • go语言学习 笔记 1(变量,语法,数据类型)
  • 蓝桥杯刷题(十一)
  • 面试算法-52-对称二叉树
  • C语言 实用调试技巧
  • python循环结构
  • 面试经典150题(114-118)
  • Java后端八股----JVM篇
  • python入门(二)
  • jQuery+CSS3自动轮播焦点图特效源码
  • c++ 正则表达式处理语言文本,根据标点符号分割句子
  • Java编程——赌数游戏
  • 使用 CSS 实现毛玻璃效果
  • centos防火墙firewall-cmd限定特定的ip访问
  • 算法笔记p154最大公约数和最小公倍数
  • 面向对象编程练习
  • 异步处理 (vue async和await)
  • 文献速递:深度学习乳腺癌诊断---使用深度学习改善乳腺癌组织学分级
  • 深入理解词向量与句向量:NLP中的基础概念
  • 【Flask开发实战】防火墙配置文件解析(二)之shell读取内容
  • 美食制作手记
  • 河北沧州应用北斗技术加快智慧农业发展