大米CMS_V5.5.3 SQL注入漏洞分析

news2024/10/5 18:34:03

0x00 环境准备

大米CMS官网:http://www.damicms.com

网站源码版本:大米CMS_V5.5.3试用版(更新时间:2017-04-15)

程序源码下载:http://www.damicms.com/downes/dami.rar

测试网站首页:
在这里插入图片描述

0x01 代码分析

1、首先来看一下全局过滤代码/php_safe.php 第24-33行中:

//$ArrPGC=array_merge($_GET,$_POST,$_COOKIE);
foreach($_GET as $key=>$value){
StopAttack($key,$value,$getfilter);
}
foreach($_POST as $key=>$value){
StopAttack($key,$value,$postfilter);
}
foreach($_COOKIE as $key=>$value){
StopAttack($key,$value,$cookiefilter);
10. }

这段函数对 G E T , _GET, GET,_POST, C O O K I E 等全局变量调用 S t o p A t t a c k 函数进行处理,可以发现如果是从 _COOKIE等全局变量调用StopAttack函数进行处理,可以发现如果是从 COOKIE等全局变量调用StopAttack函数进行处理,可以发现如果是从_REQUEST获取参数,那么将绕过全局过滤防护。

2、漏洞文件位置1:/Admin/Lib/Action/MemberAction.class.php 第93-110行中:

function cartlist(){
$model = D('TradeView');
import('ORG.Util.Page');
$where ='';
if(!empty($_REQUEST['start_time']) && !empty($_REQUEST['end_time'])){
$where .= 'member_trade.addtime>='.strtotime($_REQUEST['start_time']." 00:00:00").' and member_trade.addtime<='.strtotime($_REQUEST['end_time']." 23:59:59")." and ";
}
else if(!empty($_REQUEST['start_time']) && empty($_REQUEST['end_time'])){
$where .= 'member_trade.addtime>='.strtotime($_REQUEST['start_time']." 00:00:00").' and member_trade.addtime<='.strtotime($_REQUEST['start_time']." 23:59:59")." and ";
10.         }
11.     else if(empty($_REQUEST['start_time']) && !empty($_REQUEST['end_time'])){
12.         $where .= 'member_trade.addtime>='.strtotime($_REQUEST['end_time']." 00:00:00").' and member_trade.addtime<='.strtotime($_REQUEST['end_time']." 23:59:59")." and ";
13.         }
14.     if(!empty($_REQUEST['keyword'])){
15.         $where .= "article.title like '%".htmlspecialchars(trim($_REQUEST['keyword']))."%' and ";
16.         }
17.     $where .='1=1';
18.             $count = $model->where($where)->count();
19.             $p = new Page($count,20);

2、漏洞文件位置2:/Admin/Lib/Action/MemberAction.class.php 第126-135行中:

function userlist(){
$model = M('member');
import('ORG.Util.Page');
$where ='';
if(!empty($_REQUEST['keyword'])){
$where .= "(username like '%".htmlspecialchars(trim($_REQUEST['keyword']))."%' or realname like '%".htmlspecialchars(trim($_REQUEST['keyword']))."%' or address like '%".htmlspecialchars(trim($_REQUEST['keyword']))."%') and ";
}
$where .='1=1';
$count = $model->where($where)->count();
            $p = new Page($count,20);

在这两个函数中,将获取到的$_REQUEST[‘keyword’]参数拼接到SQL语句,然后带入数据库执行,导致程序在实现上存在SQL注入漏洞,攻击者可利用该漏洞获取数据库敏感信息。

0x02 漏洞利用

1、登录后台,网站后台–会员系统–会员管理–关键字搜索–注入点:

SQLMAP注入测试:
在这里插入图片描述

0x03 修复建议

1、使用参数化查询避免SQL注入

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

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

相关文章

【Qt】QtCreator新建QtWidgetsApplication

【Qt】QtCreator新建QtWidgetsApplication1、背景2、新建项目3、项目文件4、编译说明1、背景 操作系统&#xff1a;windows10专业版。 Qt版本&#xff1a;qt-opensource-windows-x86-msvc2013_64-5.7.1.exe 注意&#xff1a;安装了该exe可执行文件&#xff0c;就自动安装了qtc…

【openGauss实战3】基本概念及语法

&#x1f4e2;&#x1f4e2;&#x1f4e2;&#x1f4e3;&#x1f4e3;&#x1f4e3; 哈喽&#xff01;大家好&#xff0c;我是【IT邦德】&#xff0c;江湖人称jeames007&#xff0c;10余年DBA工作经验 一位上进心十足的【大数据领域博主】&#xff01;&#x1f61c;&#x1f61…

创建Vuex时没有$store的解决

为什么会出现这个问题呢&#xff1f;就是因为你的vuex安装的版本是最新版本 vue3版本对应的是 vue2 vue4版本对应的是 vue3 如果你在vue2项目中&#xff0c;所有的配置好了&#xff0c;组件中就是没有$store属性&#xff0c;那么很有可能是安装的vuex插件版本过高 store…

ArcGIS Pro脚本工具(16)——要素类转txt坐标文件

之前介绍过txt坐标文件如何转为GIS要素类 ArcGIS Pro脚本工具&#xff08;8&#xff09;——txt坐标文件转shp_学学GIS的博客-CSDN博客_txt转shp国土部门给过来的数据经常需要转换&#xff0c;比如土地报批和高标准农田的数据经常给一个txt文件过来&#xff0c;不能直接在GIS软…

Python状态机(transitions模块)

文章目录1、为什么要用状态机&#xff1f;2、状态机是什么&#xff1f;3、状态图是什么&#xff1f;4、transitions是什么&#xff1f;官网安装使用状态机必须定义的两个要素二、实战应用1、规划state、transitionstate&#xff1a;状态节点的说明transition&#xff1a;状态转…

昆腾微冲刺创业板上市:计划募资5亿元,股权结构较为分散

撰稿|汤汤 来源|贝多财经 近日&#xff0c;北京昆腾微电子股份有限公司&#xff08;下称“昆腾微”&#xff09;在深圳证券交易所递交招股书&#xff0c;准备在创业板上市。本次冲刺上市&#xff0c;昆腾微计划募资5.07亿元&#xff0c;拟用于音频SoC芯片升级、产业化项目&am…

(5)go-micro微服务domain层开发

文章目录一 domain层介绍说明二 model层开发三 repository层开发四 service层开发五 最后一 domain层介绍说明 domain层专注于数据库数据领域开发&#xff0c;我们把数据库相关操作全部写在domain层。 model层&#xff1a;数据表字段定义与开发 repository层&#xff1a;数据…

JIMDB 大KEY治理

大KEY判定条件 单个String类型的Key大小达到20KB并且OPS高 单个String达到100KB 集合类型的Key总大小达到1MB 集合类型的Key中元素超过8000个 大KEY影响 严重影响 QPS 、TP99 等指标&#xff0c;对大Key进行的慢操作会导致后续的命令被阻塞&#xff0c;从而导致一系列慢查询。…

前端——周总结系列一

1 JS数据类型判断 typeof&#xff1a;判断JS数据类型&#xff0c;返回一个字符串类型 注&#xff1a;在 javaScript 中&#xff0c;如果二进制的前三位都为 0 的话&#xff0c;会判定为是 Object 类型。 null 的存储二进制是 000 &#xff0c;也是前三位&#xff0c;所以系统…

面试官:说说Event Loop事件循环、微任务、宏任务

前言 JS是一门单线程语言&#xff0c;单线程就意味着&#xff0c;所有的任务需要排队&#xff0c;前一个任务结束&#xff0c;才会执行下一个任务。这样所导致的问题是&#xff1a;如果JS执行的时间过长&#xff0c;这样就会造成页面的渲染不连贯&#xff0c;导致页面渲染加载…

SOLIDWORKS有哪些好用的插件丨慧德敏学

SOLIDWORKS软件本身就带有很多插件&#xff0c;比如ToolBox、motion、routing、simulation等&#xff0c;都是直接嵌入到软件内部使用的。同时由于其API接口是完全开放的&#xff0c;因此还支持第三方插件的使用&#xff0c;SW第三方插件有很多&#xff0c;常用的有比如SolidKi…

React源码解读之ReactFiber

开始之前&#xff0c;先讲一下该文章能帮你解决哪些问题&#xff1f; facebook为什么要使用重构ReactReact Fiber是什么React Fiber的核心算法 - react是如何中断重启任务的react fiber部分源码简化版 前言 该文章涉及的源码部分基于React v17.0.2 why React Fiber 浏览器…

Spring常见面试题

Spring面试问题汇总①⭐Spring是什么对AOP的理解⭐对IOC的理解⭐如何实现IOC容器SpringBoot、SpringMVC、Spring的区别⭐⭐ApplicationContext和BeanFactory的区别⭐⭐⭐SpringBean的生命周期⭐⭐解释下Spring支持的几种bean的作用域⭐⭐Spring框架中的单例bean是线程安全的吗&…

数据库视图注意事项

视图&#xff08;view&#xff09;是一种虚拟存在的表&#xff0c;其内容由查询定义 本身并不包含数据。 它是作为一个select语法查询到的结果集&#xff0c;以此为基表创建的一张虚拟表 基表 行和列数据来自由定义视图的查询所引用的表&#xff0c;并且在引用视图时动态生成 …

【ReadPaper学术交流会】结构重参数化

提出结构重参数化的论文RepVGG 重参数化已经用在了各个领域的各个方面&#xff1a;比如YOLO-V6,YOLO-V7,可以autoperform YOLO-V6和YOLO-V7的一个PP-YOLO 1 我们想要一个像VGG一样的全是3*3卷积&#xff0c;一卷到底的结构&#xff0c;这样的结构并行度高、速度快而且省显存。…

剑指offer----C语言版----第十三天

目录 1. 删除链表的节点 1.1 题目描述 1.2 Leetcode解题的思路一&#xff08;双指针&#xff09; 1.3 Leetcode解题的思路二&#xff08;单指针&#xff09; 1.4 剑指offer上的原题 1. 删除链表的节点 原题链接&#xff1a;剑指 Offer 18. 删除链表的节点 - 力扣&#xff…

【python】类型约束(类型提示的作用)

文章目录前言一、类型系统1.动态类型2.静态类型3.鸭子类型二、变量注解1.变量注解的语法2.注解鸭子类型三、复杂&#xff08;复合型&#xff09;变量的注解1.引入2.难题3. Any的妙用4.类型变量5.类型Optional总结前言 python是一种解释型强类型动态语言python3.5以前是没有类型…

【Python】基于高德地图API的坐标转换函数

【Python】基于高德地图API的坐标转换函数 API申请&#xff1a; lbs.amap.com/api/webservice/guide/api/convert/产品介绍 坐标转换是一类简单的HTTP接口&#xff0c;能够将用户输入的非高德坐标&#xff08;GPS坐标、mapbar坐标、baidu坐标&#xff09;转换成高德坐标。 …

【学习笔记之Linux】权限之目录权限与默认权限

权限概念 一件事是否允许被谁“做”&#xff0c;这就是权限。权限 用户 文件属性。   在Linux上&#xff0c;用户分为普通用户和root。root是超级管理员 ≈ 天王老子&#xff0c;只能够有一个。root的命令提示符是#&#xff1b;普通用户通过root创建&#xff0c;可以有多个…

【Android安全】Protobuf原理与解析

protobuf 简介 抓包时看到header中有这个&#xff1a; content-type: application/x-protobuf说明包的content是以protobuf格式编码的 关于protobuf的介绍&#xff0c;可以参考&#xff1a; https://techkranti.com/what-is-protobuf-explained-for-hackers/ protobuf 的背…