当前位置: 首页 > news >正文

基于phpstudy对cmseasy5.5进行漏洞复现

目录:
漏洞复现的cmseasy5.5百度网盘链接
安装cmseasy:

1.在phpstudy上安装cmseasy

2.设置mysql密码为phpstudy内置mysql的密码并检查安装环境

3.安装后查看mysql内cmseasy是否有内容

获取用户名和密码过程:

1.查看源码发现有个remotelogin远程登录函数

2.发现admin.php下有一个无须密码可跳转的if语句

3.在front_class.php找到IP相关函数,发现有一个x_forwarded_for登录if语句

4.在浏览器扩展中搜索x forwarded for扩展插件并获取

5.先登录cmseasy进去,然后点击设置跳转页面,发现有一个cookie安全码,记住这个页面的网址

6.打开获取到的扩展插件,输入name为X_FROWARDED_FOR,Value为目标网站IP

7.先在cmseasy退出登录,然后在之前复制的网址后面加入&ishtml=1,发现无须密码也可以登录,但是只有设置页面,找到cookie安全码并记录

8.继续看cookie_password一行,发现cookie安全码先进行base64_decode()解码,然后xxtea_decrypt()解密,然后unserialize()反序列化。

9.先找到解密函数xxtea_decrypt,然后找与其对应的加密函数xxtea_encrypt

10.因为是对$user赋值,发现其结构是user(),以及还有一个getrow()函数也要追代码

11.先找到user类,发现其继承table类,再去找table类

12.发现talbe类在inc文件夹下的table.php内,且getrow()函数也在其中

13.发现rec_select_one()还与其他2个函数有关

14.因为cmseasy是开源的,得知会用到cmseasy_user表,查看其表结构,发现有20个字段

15.于是我们写sql注入代码时要写20列,之前追代码可知传的参是一个数组
和之前对代码解读相反:先序列化,然后加密,然后编码

16.然后执行该index.php,将得到字符串复制下来

17.首先输入127.0.0.1/cmseasy/admin跳转到登录界面,然后将act=login参数改成act=remotelogin远程登录,然后在后面添加&args=字符串

18.复制加密的字符串,然后在cmd5.com进行解密,发现密码为root

1.在phpstudy上安装cmseasy
在这里插入图片描述
2.设置mysql密码为phpstudy内置mysql的密码并检查安装环境
#安装前请先在mysql创建一个数据库名cmseasy,安装时间需要等1-3分钟
在这里插入图片描述
3.安装后查看mysql内cmseasy是否有内容
在这里插入图片描述

1.查看源码发现有个remotelogin远程登录函数
里面有一个cookie_password
在这里插入图片描述
2.发现admin.php下有一个无须密码可跳转的if语句
在这里插入图片描述
3.在front_class.php找到IP相关函数,发现有一个x_forwarded_for登录if语句
在这里插入图片描述
4.在浏览器扩展中搜索x forwarded for扩展插件并获取
在这里插入图片描述
5.先登录cmseasy进去,然后点击设置跳转页面,发现有一个cookie安全码,记住这个页面的网址
在这里插入图片描述
6.打开获取到的扩展插件,输入name为X_FROWARDED_FOR,Value为目标网站IP
#本地搭建所以是127.0.0.1
在这里插入图片描述
7.先在cmseasy退出登录,然后在之前复制的网址后面加入&ishtml=1,发现无须密码也可以登录,但是只有设置页面,找到cookie安全码并记录
在这里插入图片描述
8.继续看cookie_password一行,发现cookie安全码先进行base64_decode()解码,然后xxtea_decrypt()解密,然后unserialize()反序列化。
在这里插入图片描述
9.先找到解密函数xxtea_decrypt,然后找与其对应的加密函数xxtea_encrypt
将该函数及其内部用到的其他函数一起复制到一个新建的index.php内:str2long(),long2str(),int32()

在这里插入图片描述

10.因为是对$user赋值,发现其结构是user(),以及还有一个getrow()函数也要追代码
在这里插入图片描述
11.先找到user类,发现其继承table类,再去找table类
在这里插入图片描述
12.发现talbe类在inc文件夹下的table.php内,且getrow()函数也在其中
还用到了condition()和rec_select_one()函数,而condition()就在getrow()下面,现在要继续追代码rec_select_one()了

在这里插入图片描述
13.发现rec_select_one()还与其他2个函数有关
在这里插入图片描述
14.因为cmseasy是开源的,得知会用到cmseasy_user表,查看其表结构,发现有20个字段
在这里插入图片描述
15.于是我们写sql注入代码时要写20列,之前追代码可知传的参是一个数组
和之前对代码解读相反:先序列化,然后加密,然后编码

在这里插入图片描述
16.然后执行该index.php,将得到字符串复制下来
在这里插入图片描述
17.首先输入127.0.0.1/cmseasy/admin跳转到登录界面,然后将act=login参数改成act=remotelogin远程登录,然后在后面添加&args=字符串
#字符串内的+,/都要进行unicode编码,其中+为%2d,/为%2f
然后浏览器按F12,找到查看cookie值的一栏,发现login_username值已经出来了

在这里插入图片描述
18.复制加密的字符串,然后在cmd5.com进行解密,发现密码为root
在这里插入图片描述
思考:追代码很耗时耗精力,代码审计同样如此,即使是复现漏洞也不敢说完全能看懂,有时候debug能用还是用一下比较好。

链接:https://pan.baidu.com/s/1L3KAEMGBQ3nSytih15j_aw
提取码:1234
–来自百度网盘超级会员V4的分享

http://www.lryc.cn/news/424754.html

相关文章:

  • 【c++】 C语言的输入与输出C++的IO流STL空间配置器
  • 基于Faster-RCNN的停车场空位检测,支持图像和视频检测(pytorch框架)【python源码+UI界面+功能源码详解】
  • Vue3从零开始——带你轻松掌握组件的基本操作
  • 【MySQL 03】库的操作 (带思维导图)
  • SpringBoot-读取配置文件内容
  • springboot整合springmvc
  • el-cascader多选的父子关联和父子不关联功能
  • #Datawhale AI夏令营第4期#多模态大模型Task2
  • LeetCode 热题100-1
  • 表现良好的最长时间段(LeetCode)
  • 【性能优化】DNS解析优化
  • 【剑指 offer】合并链表
  • 红酒与节日装饰:打造节日氛围的需备品
  • Element Plus的el-carousel走马灯平铺多张图片
  • 【promise】Promise的几个关键问题 (三)
  • 利用ZXing.Net Bindings for EmguCV识别条形码及绘制条形码边框17(C#)
  • IP代理如何增强网络安全性?
  • NDP(Neighbor Discovery Protocol)简介
  • 为何要隐藏源 IP 地址?
  • 目前最流行的前端构建工具,你知道几个?
  • C++函数模板温习总结
  • 【网络】套接字(socket)编程——TCP版
  • 水凝胶生物打印是什么?如何指导Organoids培养?有啥好处?
  • 从springBoot框架服务器上下载文件 自定义一个启动器
  • 某通电子文档安全管理系统 CDGAuthoriseTempletService1接口SQL注入漏洞复现 [附POC]
  • pythonselenium自动化测试实战项目(完整、全面)
  • 如何选择合适的虚拟机软件?对比Parallels Desktop 和VMware Fusion 使用虚拟机畅玩黑神话悟空
  • ESP32FreeRTOS开发笔记:2.定义、多任务与优先级调度
  • 【Python-办公自动化】1秒比较出2张表格之间的不同并标黄加粗
  • Linux下查看各进程的swap