
首先看到是个文件上传,先看源码,源码里有个file.php?file=

可以读文件,简单的都看了一下,主要注意力放在 class.php 和 function.php
function.php
<?php
//show_source(__FILE__);
include "base.php";
header("Content-type: text/html;charset=utf-8");
error_reporting(0);
function upload_file_do() {
global $_FILES;
$filename = md5($_FILES["file"]["name"].$_SERVER["REMOTE_ADDR"]).".jpg";
//mkdir("upload",0777);
if(file_exists("upload/" . $filename)) {
unlink($filename);
}
move_uploaded_file($_FILES["file"]["tmp_name"],"upload/" . $filename);
echo '<script type="text/javascript">alert("上传成功!");</script>';
}
function upload_file() {
global $_FILES;
if(upload_file_check()) {
upload_file_do();
}
}
function upload_file_check() {
global $_FILES;
$allowed_types = array("gif","jpeg","jpg","png");
$temp = explode(".",<

本文深入探讨了PHP代码审计中的关键点,包括文件上传、类方法和反序列化漏洞。通过分析function.php和class.php中的函数和类,揭示了如何利用unserialize函数和phar://伪协议进行反序列化攻击。文章提到了魔术方法的作用,并给出了一段生成phar文件的示例代码,以及利用该漏洞的上传和访问过程。
最低0.47元/天 解锁文章
758

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



