初稿3.12日,
修改:4.7
一、自己做
没见过这个方法
。。
二、学到的:
-
processlist这个表,班长说在mysql取证中有很大的作用
-
__autoload(),在开发中那个方便include。不仅仅是在 new 一个新对象的时候有用。在反序列化出一个未定义的类的时候一样能够自动include这个同名的PHP文件, -
unserializ_callback_func还是什么,反序列化失败的时候,也会生成相应的 未定义的类的,和上面那个一结合,就这样了。。。 -
呃呃,想要进行好几次反序列化的时候,但是题目的突破点又只能进行一次,那么我们可以将这几个要反序列化的东西,放到一个数组中,反序列化,然后传入程序中,程序会将这一整个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");
}

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

被折叠的 条评论
为什么被折叠?



