您好,欢迎访问代理记账网站
移动应用 微信公众号 联系我们

咨询热线 -

电话 15988168888

联系客服
  • 价格透明
  • 信息保密
  • 进度掌控
  • 售后无忧

【PHP代码审计】站帮主CMS漏洞挖掘

文章目录

  • 任意文件删除
  • SQL注入漏洞

任意文件删除

这里随便挑了一个cnvd上最新发布的cms漏洞
在这里插入图片描述
查找unlink函数,任意文件删除常见函数
在这里插入图片描述
看到一个return unlink($path);感觉自己看到了结局

双击发现是delDirAndFile函数的功能

function delDirAndFile($path, $delDir = FALSE) {
	if($path=='' || $path=='/' || $path=='./' || $path=='../' || $path=='../../' || $path=='../../../'){
		exit('严禁该操作');
	}
    $handle = opendir($path);
    if ($handle) {
        while (false !== ( $item = readdir($handle) )){
            if ($item != "." && $item != "..")
                is_dir("$path/$item") ? delDirAndFile("$path/$item", $delDir) : unlink("$path/$item");
        }
        closedir($handle);
        if ($delDir)
            return rmdir($path);
    }else {
        if (file_exists($path)) {
            return unlink($path);
        } else {
            return false;
        }
    }
}

发现此函数可以对传入的$path进行删除操作

跟进函数使用位置

if($run=='delpath'){
	$path=$_POST['path'];
	delDirAndFile($path, $delDir = true);
}

发现如果变量run等于delpath,就可以通过post传递的参数path来删除文件

看怎么给变量run赋值

if(!isset($_GET['run'])){
	exit("参数有误");
}

发现是get请求传递的run参数

这个时候我们可以看一下首页文件

<?php 
error_reporting(0);
header("Content-type: text/html; charset=utf-8");
if(count($_GET)<=0 and file_exists('index.html')){
	echo "<script>window.location='index.html';</script>";
	exit;
}
else if(!file_exists('cms/cms/install/install.txt')){
	echo "<script>window.location='cms/cms/install/index.php';</script>";
	exit;
}
else{
	echo "<script>window.location='search.php?index';</script>";
}
?>

是通过cms/cms/install/install.txt是否存在,来判断是否跳转到安装界面的

我们安装网站后尝试直接访问安装界面
在这里插入图片描述
可以看到,如果需要重新安装,请把install.txt文件删除
通过上面的存在任意文件删除漏洞处构造payload
在这里插入图片描述
发现文件被删除系统需要重装
在这里插入图片描述

SQL注入漏洞

通过查找select字段发现如下字段
在这里插入图片描述
可以看到未经过任何安全函数之类的进行过滤

<?php 
include('c_top.php');
if(isset($_GET['aid'])){
	$aid=$_GET['aid'];
	$arts=$c_sql->select("select * from art where id={$aid}");
	$arts=$arts[0];
	$tid=$arts['tid'];
}

直接http://192.168.80.158/zbzcms/cms/cms/admin/art.php?aid=1放到sqlmap跑
在这里插入图片描述
得到账号密码
这里其他的漏洞基本上都差不多,还是比较简单的,适合我这样的新手学习,这里就不写了,基本就是查一下危险函数,黑白盒一起很容易发现的


分享:

低价透明

统一报价,无隐形消费

金牌服务

一对一专属顾问7*24小时金牌服务

信息保密

个人信息安全有保障

售后无忧

服务出问题客服经理全程跟进