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

目录

案例一: 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);
?>

触发

 

 

  • 19
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,您想了解有关 PHP 序列代码审计方面的问题。PHP 序列序列是将 PHP 数据结构转换为字符串,并在需要时将其还原为原始数据结构的过程。序列攻击是一种安全漏洞,攻击者可以利用此漏洞在受攻击的服务器上执行任意代码。为了进行序列攻击,攻击者需要在 PHP 应用程序中注入恶意序列数据,并使之触发序列操作。 在进行 PHP 序列代码审计时,应特别注意以下几个方面: 1.检查是否存在序列注入漏洞:要注意所有接受输入的地方(包括 GET 或 POST 请求参数、cookie、session 和文件上传等)是否存在序列注入漏洞。攻击者可以在这些位置上注入恶意的序列数据,从而触发序列操作,并在服务器上执行任意代码。 2.检查是否使用了不受信任的序列数据:应该避免使用从不受信任的来源(如其他服务器或第三方接口)接收到的序列数据。攻击者可以在这些数据中注入恶意代码,然后在服务器上执行。 3.检查使用了哪些序列函数:PHP 提供了多种序列函数,包括 serialize()、unserialize()、json_encode() 和 json_decode() 等。不同的序列函数对数据结构的处理方式不同,因此需要根据实际情况选择正确的序列函数。同时,应该避免使用 unserialize() 函数序列不受信任的数据,因为这个函数容易受到攻击。 以上是我可以提供的一些序列代码审计方面的建议,如还有其他问题,欢迎向我提出。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值