CVE-2022-30887漏洞复现
运行环境:春秋云镜com
记录学习,打靶的过程以及对出现问题的文件进行代码审计
得到目标后,发现需要登录,进行简单的弱口令发现都不行。
在网页内容中,可以发现账号密码的格式,不过这样也几乎不可能爆破出来的。继续信息收集,发现一篇文章已经有人解了出来:mayuri.infospace@gmail.com/mayurik
【春秋云镜 CVE-2022-30887wp】_mayuri k_未完结的牵挂的博客-CSDN博客
登录成功后就简单了,找到可以上传的点,尝试上传,这里服务器内的查杀程度不大,几乎不会被杀。
用bp抓包后就可以的请求包:
然后用蚁剑等工具连接,然后在虚拟终端中连接上去。
在终端中直接到跟目录上执行命令
find -name 'flag*' #查找flag开头的文件
找到文件就cat下就得到flag了
对php文件进行源码审计
通过上述,已经可以把源码扒下来了,如下,可以
<?php
require_once 'core.php';
//$valid['success'] = array('success' => false, 'messages' => array());
$productId = $_GET['id'];
if($_POST) {
$image = $_FILES['productImage']['name'];
$target = "../assets/myimages/".basename($image);
if (move_uploaded_file($_FILES['productImage']['tmp_name'], $target)) {
// @unlink("uploadImage/Profile/".$_POST['old_image']);
//echo $_FILES['image']['tmp_name'];
//cho $target;exit;
$msg = "Image uploaded successfully";
echo $msg;
}
else{
$msg = "Failed to upload image";
echo $msg;exit;
}
$sql = "UPDATE product SET product_image = '$image' WHERE product_id = $productId";
//echo $sql;exit;
if($connect->query($sql) === TRUE) {
$valid['success'] = true;
$valid['messages'] = "Successfully Updated";
header('location:../product.php');
}
else {
$valid['success'] = false;
$valid['messages'] = "Error while updating product image";
}
// /else
$connect->close();
echo json_encode($valid);
} // /if $_POST
?>
可以看到在获取文件,和将文件上传到服务器上都没有进行限制,所以导致出现了问题。
如果用chatGPT进行代码审计结果如图,可以很有效的直接得到发现可能存在的问题