---已搬运----班长出题(带源码):processlist考察 + PHP反序列化 ?? ----- __autoload() ---- unserialize_callback_fun

本文介绍了通过processlist表在MySQL取证中的应用,以及PHP的__autoload()函数如何在反序列化过程中自动加载类文件。文章详细探讨了如何利用自动加载函数和unserialize_callback_func在反序列化过程中实现多次加载和RCE。作者通过代码审计和本地复现,展示了如何构造payload来解决只能反序列化一次的问题。
摘要由CSDN通过智能技术生成

初稿3.12日,
修改:4.7

一、自己做

没见过这个方法

。。

二、学到的:

  1. processlist这个表,班长说在mysql取证中有很大的作用

  2. __autoload(),在开发中那个方便include。不仅仅是在 new 一个新对象的时候有用。在反序列化出一个未定义的类的时候一样能够自动include这个同名的PHP文件,

  3. unserializ_callback_func还是什么,反序列化失败的时候,也会生成相应的 未定义的类的,和上面那个一结合,就这样了。。。

  4. 呃呃,想要进行好几次反序列化的时候,但是题目的突破点又只能进行一次,那么我们可以将这几个要反序列化的东西,放到一个数组中,反序列化,然后传入程序中,程序会将这一整个PHP数组反序列化,从而实现了我们 想要反序列化很多个东西的愿望!。。PHP将从左往右反序列化数组

三、学习WP

<?php
include 'conn.php';
if(isset($_GET["query"])){
   
    $query = $_GET["query"];
    if(!is_string($query)){
   
        die('give me a string ok?');
    }
    if(preg_match('/log|local|set|file/i', $query)){
   
        die('no hack');
    }
    $result = $mysqli->query($query);
    if ($result === false) {
   
        die("database error, please check your input");
    }
    $row = $result->fetch_assoc();
    if($row === NULL){
   
        die("searched nothing");
    
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值