CMS 漏洞利用 代码审计

本文详细介绍了PHPCMSV9.2的两个安全问题,包括上传Getshell的漏洞复现与分析,以及暴力猜解数据库的原理和利用方法。在上传漏洞中,通过代码审计发现文件遍历与删除过程的缺陷;在数据库猜解部分,利用Windows API的通配符特性,展示如何影响PHP的文件操作函数。
摘要由CSDN通过智能技术生成

PHPCMSV9.2上传Getshell

漏洞复现

我们搭建好环境直接注册,找到修改头像,这个地方基本上可以上传成功,只不过能不能利用罢了。
在这里插入图片描述
我们在本地创建一个zip文件里面包含一个文件夹,一个我们的恶意代码。通过Burp修改掉。
在这里插入图片描述
访问phpsso_server/uploadfile/avatar/1/1/1/av/av.php 其中1是我们的uid
在这里插入图片描述

漏洞分析

重复以上步骤。通过burp我们找到上传事件,我们直接去代码定位这个函数。
在这里插入图片描述
然后去代码找到函数直接断点调试
在这里插入图片描述
根据用户UID创建文件夹,防止用户多了文件夹重复创建了两次,然后检测目录创建,没有就创建一次,否则跳过。
在这里插入图片描述
根据uid重命名我们的压缩包文件
在这里插入图片描述

之后进行解压缩文件
在这里插入图片描述
之后进入dir中循环判断文件安全,删除压缩包和非jpg图片
走到遍历白名单判断文件,排除.(当前目录)…(上级目录)下图删除了压缩包文件

再次循环时$file=av 而av是目录。unlink是不能删除目录的。所以出现异常。

PHPCMSV9暴力猜解数据库

备份路径 \caches\bakup\default\xxxx.sql

而问题出现在哪,我们先看POC。

/api.php?op=creatimg&txt=1&font=/…/…/…/…/caches/bakup/default/s<<.sql

原因:

windows的FindFirstFile(API)有个特性就是可以把<<当成通配符来用而PHP的opendir(win32readdir.c)就使用了该API。PHP的文件操作函数均调用了opendir,所以file_exists也有此特性。
pwaaov0zodprrm53

  • 10
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值