基于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的分享
相关文章:
基于phpstudy对cmseasy5.5进行漏洞复现
目录: 漏洞复现的cmseasy5.5百度网盘链接 安装cmseasy: 1.在phpstudy上安装cmseasy 2.设置mysql密码为phpstudy内置mysql的密码并检查安装环境 3.安装后查看mysql内cmseasy是否有内容 获取用户名和密码过程: 1.查看源码发现有个remotelo…...
【c++】 C语言的输入与输出C++的IO流STL空间配置器
主页:醋溜马桶圈-CSDN博客 专栏:c_醋溜马桶圈的博客-CSDN博客 gitee:mnxcc (mnxcc) - Gitee.com 目录 1.C语言的输入与输出 2.流是什么 3.CIO流 3.1 C标准IO流 3.2 C文件IO流 4.stringstream的简单介绍 5.什么是空间配置器 6.为什么需要…...
基于Faster-RCNN的停车场空位检测,支持图像和视频检测(pytorch框架)【python源码+UI界面+功能源码详解】
功能演示: 基于Faster-RCNN的停车场空位检测系统,支持图像检测和视频检测(pytorch框架)_哔哩哔哩_bilibili (一)简介 基于Faster-RCNN的停车场空位检测系统是在pytorch框架下实现的,这是一个…...
Vue3从零开始——带你轻松掌握组件的基本操作
文章目录 1. Vue 组件的基础概念1.1 什么是组件?1.2 组件的作用1.3 组件的分类(全局组件 vs 局部组件) 2. 创建和注册组件2.1 单文件组件(SFC)2.2 全局组件注册2.3 局部组件注册 3. 组件命名格式4. ref获取DOM元素4.1 …...
【MySQL 03】库的操作 (带思维导图)
文章目录 🌈 一、创建数据库🌈 二、查看数据库🌈 三、使用数据库🌈 四、修改数据库🌈 五、删除数据库🌈 六、备份数据库🌈 七、恢复数据库🌈 八、字符集和校验规则⭐ 1. 查看系统默认…...
SpringBoot-读取配置文件内容
目录 前言 主页(端口号默认8080) 1 Value 注解 引用变量的使用 2 Environment 对象 3 ConfigurationProperties (配置内容和对象,进行相互绑定) 前言 读取配置文件有3 种方式 (1) Value注解 (2) Environm…...
springboot整合springmvc
1、创建springboot项目,勾选Spring web 当前springboot选择的是2.6.13版本,jdk1.8尽量选2.几的springboot 2、在pom.xml中导入相应的坐标 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-…...
el-cascader多选的父子关联和父子不关联功能
公用html: <el-cascader v-model"data" :options"optionsData" :props"props" clearable> </el-cascader> 公用js变量: data () {return {// 绑定的数组data: [],// 绑定的选项数据optionsData: []} }, 公…...
#Datawhale AI夏令营第4期#多模态大模型Task2
赛事进阶解读 关于赛事介绍: Better Synth 是一项以数据为中心的挑战赛,考察如何合成与清洗图文数据以在多模态大模型上取得更优的图片理解能力。 本次比赛基于 Mini-Gemini 模型进行训练,只关注于预训练(模态间对齐)…...
LeetCode 热题100-1
两数之和 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。 你可以按任…...
表现良好的最长时间段(LeetCode)
题目 给你一份工作时间表 hours,上面记录着某一位员工每天的工作小时数。 我们认为当员工一天中的工作小时数大于 8 小时的时候,那么这一天就是「劳累的一天」。 所谓「表现良好的时间段」,意味在这段时间内,「劳累的天数」是严格…...
【性能优化】DNS解析优化
前言 DNS解析过程消耗时间DNS有本地缓存 比如首次访问某站点,会耗费很多时间进行DNS解析,但解析结束后会将ip地址存入本地设备,后续再访问此域名时就会直接从缓存中取。 首次访问页面时,本页面的DNS解析是无法优化的࿰…...
【剑指 offer】合并链表
目 录 描述: 输入两个递增的链表,单个链表的长度为 n,合并这两个链表并使新链表中的节点仍然是递增排序的。 思路: 定义一个新链表,先进行我们的原俩链表判断,然后比较俩链表的每个节点大小,然…...
红酒与节日装饰:打造节日氛围的需备品
随着节日的脚步渐渐临近,节日的氛围也愈发浓厚。在这个特殊的时刻,红酒与节日装饰无疑成为了营造节日氛围的需备品。洒派红酒(Bold & Generous)作为定制红酒的品牌,其不同的韵味与节日装饰的精致整合,共…...
Element Plus的el-carousel走马灯平铺多张图片
效果 <template><div class"system-banner"><el-carousel height"320px" indicator-position"outside" :autoplay"false"><el-carousel-item v-for"(item, index) in govList" :key"index"…...
【promise】Promise的几个关键问题 (三)
Ⅰ-如何改变 promise 的状态? (1) resolve(value): 如果当前是 pending 就会变为 resolved (2) reject(reason): 如果当前是 pending 就会变为 rejected (3) 抛出异常: 如果当前是 pending 就会变为 rejected Ⅱ-一个 promise 指定多个成功/失败回调函数, 都会调用吗? 当 pro…...
利用ZXing.Net Bindings for EmguCV识别条形码及绘制条形码边框17(C#)
上一篇博文:绘制条形码的效果不是很好:利用Emgucv绘制条形码边框16(C#)-CSDN博客 测试环境: win11 64位操作系统 visual studio 2022 ZXing.Net.Bindings.EmguCV 0.16.4 测试步骤如下: 1 新建.net framework 4.8的控制台项目…...
IP代理如何增强网络安全性?
在当今的数字时代,网络安全已成为一个关键问题,而使用 IP 代理可以成为增强网络安全的有效方法。根据请求信息的安全性,IP 代理服务器可分为三类:高级匿名代理、普通匿名代理和透明代理。此外,根据使用的用途ÿ…...
NDP(Neighbor Discovery Protocol)简介
定义 邻居发现协议NDP(Neighbor Discovery Protocol)是IPv6协议体系中一个重要的基础协议。邻居发现协议替代了IPv4的ARP(Address Resolution Protocol)和ICMP路由设备发现(Router Discovery),…...
为何要隐藏源 IP 地址?
概述 在网络世界中,服务器的安全至关重要。一旦服务器遭受黑客攻击,采取正确的防御措施是防止进一步损害的关键。其中一项重要的策略就是隐藏服务器的真实 IP 地址。本文将探讨隐藏源 IP 地址的重要性,并提供一些实用的方法来实现这一目标。…...
浏览器访问 AWS ECS 上部署的 Docker 容器(监听 80 端口)
✅ 一、ECS 服务配置 Dockerfile 确保监听 80 端口 EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]或 EXPOSE 80 CMD ["python3", "-m", "http.server", "80"]任务定义(Task Definition&…...
《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)
CSI-2 协议详细解析 (一) 1. CSI-2层定义(CSI-2 Layer Definitions) 分层结构 :CSI-2协议分为6层: 物理层(PHY Layer) : 定义电气特性、时钟机制和传输介质(导线&#…...
iPhone密码忘记了办?iPhoneUnlocker,iPhone解锁工具Aiseesoft iPhone Unlocker 高级注册版分享
平时用 iPhone 的时候,难免会碰到解锁的麻烦事。比如密码忘了、人脸识别 / 指纹识别突然不灵,或者买了二手 iPhone 却被原来的 iCloud 账号锁住,这时候就需要靠谱的解锁工具来帮忙了。Aiseesoft iPhone Unlocker 就是专门解决这些问题的软件&…...
学习STC51单片机31(芯片为STC89C52RCRC)OLED显示屏1
每日一言 生活的美好,总是藏在那些你咬牙坚持的日子里。 硬件:OLED 以后要用到OLED的时候找到这个文件 OLED的设备地址 SSD1306"SSD" 是品牌缩写,"1306" 是产品编号。 驱动 OLED 屏幕的 IIC 总线数据传输格式 示意图 …...
CocosCreator 之 JavaScript/TypeScript和Java的相互交互
引擎版本: 3.8.1 语言: JavaScript/TypeScript、C、Java 环境:Window 参考:Java原生反射机制 您好,我是鹤九日! 回顾 在上篇文章中:CocosCreator Android项目接入UnityAds 广告SDK。 我们简单讲…...
C# 类和继承(抽象类)
抽象类 抽象类是指设计为被继承的类。抽象类只能被用作其他类的基类。 不能创建抽象类的实例。抽象类使用abstract修饰符声明。 抽象类可以包含抽象成员或普通的非抽象成员。抽象类的成员可以是抽象成员和普通带 实现的成员的任意组合。抽象类自己可以派生自另一个抽象类。例…...
RNN避坑指南:从数学推导到LSTM/GRU工业级部署实战流程
本文较长,建议点赞收藏,以免遗失。更多AI大模型应用开发学习视频及资料,尽在聚客AI学院。 本文全面剖析RNN核心原理,深入讲解梯度消失/爆炸问题,并通过LSTM/GRU结构实现解决方案,提供时间序列预测和文本生成…...
docker 部署发现spring.profiles.active 问题
报错: org.springframework.boot.context.config.InvalidConfigDataPropertyException: Property spring.profiles.active imported from location class path resource [application-test.yml] is invalid in a profile specific resource [origin: class path re…...
2025季度云服务器排行榜
在全球云服务器市场,各厂商的排名和地位并非一成不变,而是由其独特的优势、战略布局和市场适应性共同决定的。以下是根据2025年市场趋势,对主要云服务器厂商在排行榜中占据重要位置的原因和优势进行深度分析: 一、全球“三巨头”…...
【无标题】路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论
路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论 一、传统路径模型的根本缺陷 在经典正方形路径问题中(图1): mermaid graph LR A((A)) --- B((B)) B --- C((C)) C --- D((D)) D --- A A -.- C[无直接路径] B -…...
