第84天:代码审计-PHP项目&变量覆盖&反序列化&未授权访问&身份验证

发布于:2024-05-17 ⋅ 阅读:(353) ⋅ 点赞:(0)

目录

案例一: CNVD拿1day-验证&未授权-xhcms&Bosscms

Bosscms未授权

xhcms验证

案例二: CNVD拿1day-变量覆盖引发文件包含-Metinfo

​案例三: CNVD拿1day-反序列化引发文件读取-phpMyAdmin


案例一: CNVD拿1day-验证&未授权-xhcms&Bosscms

Bosscms未授权

cnvd地址: https://www.cnvd.org.cn/flaw/show/CNVD-2022-04803

利用文件对比法

首先先对比文件差异,要检测未授权,要对比的就是admin,system这种文件

admin文件相同

system下有一个文件不同

漏洞挖掘思路

利用源码审计系统搜索unlink打开文件查看函数引用

随便打开一个文件看函数如何触发

现在尝试去触发该函数

在根目录下创建一个文件

这里需要跳跃三级

构造地址

成功删除

 

重新创建后退出登录触发地址

未授权访问成功!

分析原因

首先该方法的类继承了admin类

去查找admin类

这里的意思是如果不是登录状态下就转到登录目录

这里和之前新旧版本对比的文件一致

新版本中是如果没有登录成功,就结束该任务,而旧版本虽然,跳转到了主页,但是任务也还是完成了

xhcms验证

首先先登录后台,分析访问逻辑

只要cookie里面user不为空就能够登录

退出登录访问,admin页面下的index

抓包修改cookie不为空

成功登录

案例二: CNVD拿1day-变量覆盖引发文件包含-Metinfo

变量覆盖的含义

去查找查询$$,目录也要尽可能的去包含include,才更加容易触发文件包含

代码解释

现在查找文件包含的函数

查看include/moudle.php,发现包含了我们的文件。

当fmoudle不等于7的时候这里module是写死的

这里让fmoudle等于7,在根目录创建一1.txt

执行

让代码输出,看效果,也就是你只要包含了这个文件你输出的参数,就会变成变量对应值的效果

案例三: CNVD拿1day-反序列化引发文件读取-phpMyAdmin

首先搜索反序列化函数unserialize

查看该类

查看checksystem函数无关键信息

查看load函数

查看getSource()函数

构造pop链

<?php
class PMA_Config{
    var $source = 'd:/1.txt';
}
$x = new PMA_Config();
echo serialize($x);
?>

触发

 

 


网站公告

今日签到

点亮在社区的每一天
去签到