基于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 地址的重要性,并提供一些实用的方法来实现这一目标。…...

目前最流行的前端构建工具,你知道几个?
现在的市面上有很多不同的前端构建工具,我们很难对它们一一进行关注。在本文中,我们将重点介绍最受欢迎的几种,并探讨开发人员喜欢或不喜欢它们的原因。 Webpack Webpack 是一个模块打包器,主要用于处理 Web 应用程序的资源的优化…...

C++函数模板温习总结
函数模板 // 1、typename 在这里是类型重定义(typedef),而不是宏替换(#define) //2、模板的非类型参数,属性为const , 不允许修改 //3、函数模板不允许部分特例化,类模板可以 //4、模板函数和非模板函数重载,优先调用…...

【网络】套接字(socket)编程——TCP版
接着上一篇文章:http://t.csdnimg.cn/GZDlI 在上一篇文章中,我们实现的是UDP协议的,今天我们就要来实现一下TCP版本的 接下来接下来实现一批基于 TCP 协议的网络程序,本节只介绍基于IPv4的socket网络编程 基于 TCP 的网络编程开…...

水凝胶生物打印是什么?如何指导Organoids培养?有啥好处?
大家好,我们来了解这篇《Hydrogel-in-hydrogel live bioprinting for guidance and control of organoids and organotypic cultures》发表在《Nature Communications》的一篇文章。三维水凝胶基器官样培养,如类器官和体外器官型培养,能够自我…...

从springBoot框架服务器上下载文件 自定义一个启动器
在springboot框架中下载服务器存储的图片: 1)springboot默认访问放行的目录只有static,在static目录下存放图片资源 2)编译后的static目录中有一个1.png 2.5)编写控制器: Controller //RequestMapping("/upload&q…...

某通电子文档安全管理系统 CDGAuthoriseTempletService1接口SQL注入漏洞复现 [附POC]
文章目录 某通电子文档安全管理系统 CDGAuthoriseTempletService1接口SQL注入漏洞复现 [附POC]0x01 前言0x02 漏洞描述0x03 影响版本0x04 漏洞环境0x05 漏洞复现1.访问漏洞环境2.构造POC3.复现0x06 修复建议某通电子文档安全管理系统 CDGAuthoriseTempletService1接口SQL注入漏…...

pythonselenium自动化测试实战项目(完整、全面)
前言 之前的文章说过, 要写一篇自动化实战的文章, 这段时间比较忙再加回家过11一直没有更新博客,今天整理一下实战项目的代码共大家学习。(注:项目是针对我们公司内部系统的测试,只能内部网络访问,外部网络…...

如何选择合适的虚拟机软件?对比Parallels Desktop 和VMware Fusion 使用虚拟机畅玩黑神话悟空
随着技术的发展,虚拟机软件将更加高效地管理和分配系统资源。虚拟机软件扮演着越来越重要的角色。无论是软件开发者需要测试不同操作系统环境下的应用,还是普通用户希望在一台机器上同时运行多个操作系统,虚拟机软件都是不可或缺的工具。那么…...

ESP32FreeRTOS开发笔记:2.定义、多任务与优先级调度
FreeRTOS 是一种实时操作系统(RTOS),专门用于嵌入式系统。它之所以被称为 "FreeRTOS",是因为它是一个免费和开源的 RTOS。下面我们具体讨论一下 FreeRTOS 与 RTOS 的区别,以及 "free" 的含义。 一、什么是 RTOS? RTOS,全称 Real-Time Operating Sy…...

【Python-办公自动化】1秒比较出2张表格之间的不同并标黄加粗
欢迎来到"花花 Show Python",一名热爱编程和分享知识的技术博主。在这里,我将与您一同探索Python的奥秘,分享编程技巧、项目实践和学习心得。无论您是编程新手还是资深开发者,都能在这里找到有价值的信息和灵感。 自我介…...