您当前的位置:首页 > 电脑百科 > 安全防护 > 数据安全

某团购CMS的SQL注入漏洞代码审计

时间:2020-05-28 11:08:29  来源:  作者:

作者:会上树的猪 合天智汇

0x00 SQL注入漏洞:

简单介绍一下SQL语句:通俗来理解就是开发者盲目相信用户,没有严格检查用户输入,导致用户可以输入恶意参数进入程序逻辑,最终拼接恶意参数改变原本的SQL语句逻辑,造成SQL注入漏洞。

0x01 关于CMS

本次审计的CMS是基于Web应用的B/S架构的团购网站建设解决方案的建站系统,它可以让用户高效、快速、低成本的构建个性化、专业化、强大功能的团购网站,采用phpMySQL数据库开发技术,版本CV1.6。商业案例如下:

某团购CMS的SQL注入漏洞代码审计

 

审计结果实战测试:

某团购CMS的SQL注入漏洞代码审计

 

0x02 漏洞分析:

首先在本地搭建一个网站,方便之后测试,一键安装也没啥说的,跳过。重点讲讲这个团购CMS的SQL操作。这个团购CMS将SQL操作全部写到了
include/library/DB.class.php文件:

某团购CMS的SQL注入漏洞代码审计

 

然后分析这个文件,发现这里面的函数有些使用了:mysql_real_escape_string函数对参数进行过滤,整数参数就强制转换int类型

某团购CMS的SQL注入漏洞代码审计

 

关于mysql_real_escape_string函数的注入可以尝试宽字节注入,当数据库编码采用GBK的时候可以尝试bypass函数检查,但是此处不适用。之后审计发现其中存在几个未对参数进行过滤直接执行SQL语句的函数:GetDbRowById、GetQueryResult、GetField。

某团购CMS的SQL注入漏洞代码审计

 


某团购CMS的SQL注入漏洞代码审计

 


某团购CMS的SQL注入漏洞代码审计

 

此处采用敏感函数回溯的方法进行审计,先全局搜索这些函数,然后想办法对达到触发条件。

  1. 全局搜索GetField函数,发现没有被引用的地方。
某团购CMS的SQL注入漏洞代码审计

 

2、全局搜索GetQueryResult函数,搜索结果比较多,如下:

某团购CMS的SQL注入漏洞代码审计

 

先尝试审计第一处:/ajax/manage.php,如下,如果存在,可以通过$id变量进行注入。

某团购CMS的SQL注入漏洞代码审计

 

追踪如何触发函数:第490行,当变量action满足条件即可:

某团购CMS的SQL注入漏洞代码审计

 

而继续回溯,$action的来源$_GET:

某团购CMS的SQL注入漏洞代码审计

 

同时也发现id变量被强制类型转换了,哦豁,这下安逸了,这个点基本利用不了了。同时测试过程中此处还有一处调用了未过滤SQL函数:

某团购CMS的SQL注入漏洞代码审计

 


某团购CMS的SQL注入漏洞代码审计

 

不过都用到了ID参数进行注入,所以不能利用,放弃。

之后选择其他可能存在的地方继续审计:/manage/user/index.php

某团购CMS的SQL注入漏洞代码审计

 


某团购CMS的SQL注入漏洞代码审计

 

但是这两处同样存在intval参数过滤。

某团购CMS的SQL注入漏洞代码审计

 

再继续搜索,发现/manage/vote/feedback.php

某团购CMS的SQL注入漏洞代码审计

 

此处$question[‘id’]参数来源于前一个查询结果,可以考虑二次注入,不过此处因为id参数为提交问卷时系统自动生成,所以无法利用了。

某团购CMS的SQL注入漏洞代码审计

 

最后两处调用这个函数的地方在DB.class.php中:其中一个属于LimitQuery函数调用,因为存在过滤,所以利用比较困难:

某团购CMS的SQL注入漏洞代码审计

 

另外一处便是GetDbRowById调用,此处不存在过滤,可能存在注入,这个审计便放到下一部分:

某团购CMS的SQL注入漏洞代码审计

 

  1. 全局搜索GetDbRowById函数:根据之前的审计,函数本身没有对参数过滤,其中调用的GetQueryResult函数也没有过滤,可能存在SQL注入。
某团购CMS的SQL注入漏洞代码审计

 

可以发现GetDbRowById函数在
include/library/Table.class.php文件存在调用:_Fetch函数和FetchForce函数

某团购CMS的SQL注入漏洞代码审计

 


某团购CMS的SQL注入漏洞代码审计

 


某团购CMS的SQL注入漏洞代码审计

 

其中_Fetch函数在同类中的Fetch方法被调用:

某团购CMS的SQL注入漏洞代码审计

 

因此需要全局搜索Fetch函数和FetchForce函数:

首先来搜索FetchForce函数,结果如下,还挺多的

某团购CMS的SQL注入漏洞代码审计

 

首先要说的就是搜索的结果不一定全部存在注入,需要再次寻找其中疏于过滤的点进行验证,下面举几个栗子:

文件:/ajax/chargecard.php

某团购CMS的SQL注入漏洞代码审计

 

不需要登录便可以直接访问这个文件,当$action为query时可以调用函数,且$secret不存在过滤,开启debug调试跟踪参数的流程:先输入secret=123’

可以看到对secret参数没有进行任何过滤便传入FetchForce函数:

某团购CMS的SQL注入漏洞代码审计

 

将存在恶意字符的参数拼接SQL语句,造成SQL注入,因为此处存在对空格等字符的正则匹配,所以可以使用/**/代替空格。

某团购CMS的SQL注入漏洞代码审计

 

因为此处不存在回显,要使用盲注,使用时间盲注验证,一个用时2秒,一个用时5秒

某团购CMS的SQL注入漏洞代码审计

 


某团购CMS的SQL注入漏洞代码审计

 

而且同文件下存在另外一处注入:

某团购CMS的SQL注入漏洞代码审计

 

这个地方用方法也差不多,就改一下action参数便可以。

再举一个不存在注入的情况:/ajax/manage.php

某团购CMS的SQL注入漏洞代码审计

 


某团购CMS的SQL注入漏洞代码审计

 

虽然调用了FetchForce函数,但是溯源之后发现对id变量进行了强制转换,因此属于不能利用的点。与此同时new.php也属于同理情况:

某团购CMS的SQL注入漏洞代码审计

 

同时如果继续搜索审计就能发现其他存在注入的点:

某团购CMS的SQL注入漏洞代码审计

 

其余的文件就不一一看了。

接下来查看Fetch函数:搜索结果如下

某团购CMS的SQL注入漏洞代码审计

 

先来看文件:/ajax/system.php

某团购CMS的SQL注入漏洞代码审计

 


某团购CMS的SQL注入漏洞代码审计

 

不过这个地方应该是需要管理员登录的,登录之后传参是这个亚子的:

某团购CMS的SQL注入漏洞代码审计

 

可以采用和之前相同的时间盲注:

某团购CMS的SQL注入漏洞代码审计

 


某团购CMS的SQL注入漏洞代码审计

 

再看另外一处漏洞:/api/call.php,此处不需要任何登录,可以在前台直接访问到文件,而且其中多个参数存在注入:

某团购CMS的SQL注入漏洞代码审计

 


某团购CMS的SQL注入漏洞代码审计

 

再之后很多便与上面的审计方法类似,还存在可以利用的点,也会存在许多无法利用的点,就不一一写出来了。

上面这个注入点还找到一个案例:

某团购CMS的SQL注入漏洞代码审计

 

不过存在问题的便是这个CMS的密码加了一个固定字符串当作盐,在解MD5时会存在困难。

0x03 总结:

按照惯例,来小结几句。

关于SQL注入的防御,应该有很多方法了,首先就是不信任用户输入,严格过滤参数,之后的话还可以使用预查询方案,之后的话还可以使用软硬件防火墙。不过这些理论上都会存在bypass的情况,不过我太菜,不会bypass。

另外就是关于参数过滤,如同上面,执行参数过滤,但是依然找到了漏网之鱼,所以过滤策略某种情况下也是不可靠的。

最后就是关于代码审计了,代码审计一时爽,一直审计一直爽,奥力给!!!

声明:笔者初衷用于分享与普及网络知识,若读者因此作出任何危害网络安全行为后果自负,与合天智汇及原作者无关!



Tags:SQL注入   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
前言目标是一大学,在一次挖洞过程中遇到个sql注入,尝试进一步利用扩大危害,漏洞已报送平台进行了修复私信我获取网络安全学习资料 1.2000多本网络安全系列电子书 2.网络安全标...【详细内容】
2021-11-26  Tags: SQL注入  点击:(21)  评论:(0)  加入收藏
本人也是小白一枚,大佬请绕过,这个其实是六月份的时候做的,那时候想多点实战经验,就直接用谷歌搜索找了一些网站,这个是其中一个1、目标网站 2、发现有WAF防护 3、判断存在注入...【详细内容】
2021-10-19  Tags: SQL注入  点击:(52)  评论:(0)  加入收藏
(一)SQL注入。1.如何理解SQL注入? SQL注入是一种将SQL代码添加到输入参数中,传递到SQL服务器解析并执行的一种攻击手法。2.SQL注入是如何产生的? web开发人员无法保证所有的输入...【详细内容】
2021-09-17  Tags: SQL注入  点击:(47)  评论:(0)  加入收藏
一 前言本文将针对开发过程中依旧经常出现的SQL编码缺陷,讲解其背后原理及形成原因。并以几个常见漏洞存在形式,提醒技术同学注意相关问题。最后会根据原理,提供解决或缓解方案...【详细内容】
2021-09-17  Tags: SQL注入  点击:(67)  评论:(0)  加入收藏
前言本人ctf选手一名,在最近做练习时遇到了一些sql注入的题目,但是sql注入一直是我的弱项之一,所以写一篇总结记录一下最近学到的一些sql注入漏洞的利用。可回显注入联合注入在...【详细内容】
2021-08-26  Tags: SQL注入  点击:(60)  评论:(0)  加入收藏
前言最近挖edusrc的时候遇到有注入点但是有waf绕不过,头疼。 可以看到还是phpstudy建站的,太熟悉了这个,不知道这个什么waf各位师傅知道的可以评论一下,所以写这篇文章是供各位...【详细内容】
2021-08-13  Tags: SQL注入  点击:(66)  评论:(0)  加入收藏
1. 使用 Burpsuite: 1. Capture the request using burpsuite. 2. Send the request to burp scanner. 3. Proceed with active scan. 4. Once the scan is finished, l...【详细内容】
2021-08-04  Tags: SQL注入  点击:(74)  评论:(0)  加入收藏
0×00:前言对于MYSQL知识的一个初总结 0×01:正文 MYSQL数据库特性1.Mysql数据库默认不区分大小写,利用此特性可以进行大小写过正则匹配,举个简单的例子,有的题目中只...【详细内容】
2021-07-29  Tags: SQL注入  点击:(88)  评论:(0)  加入收藏
在本地搭建服务器,httpd-vhosts.conf 中设置本地绑定的域名: 其中,zzzphp为下载的zzzphp cms的内容。然后,本机上的zzzphp cms的目录结构为如下: 在按照要求安装好cms后,本地cms的...【详细内容】
2021-07-16  Tags: SQL注入  点击:(80)  评论:(0)  加入收藏
得到一个像原来老师一样督促你、关心你的人很难。。。---- 网易云热评一、常用命令及函数1、order by排序,获取数据有几个字段,后面小于等于字段数,都会返回结果,大于字段数返回...【详细内容】
2021-05-13  Tags: SQL注入  点击:(224)  评论:(0)  加入收藏
▌简易百科推荐
众所周知,Windows系统流氓软件众多,其中不乏出身大厂的产品。这些带有流氓性质的软件,很多都会偷偷扫描系统数据,读取用户文件,造成电脑卡顿拖慢不说,还严重侵害了个人隐私,造成巨...【详细内容】
2021-12-06  趣玩APPS    Tags:流氓软件   点击:(16)  评论:(0)  加入收藏
前言目标是一大学,在一次挖洞过程中遇到个sql注入,尝试进一步利用扩大危害,漏洞已报送平台进行了修复私信我获取网络安全学习资料 1.2000多本网络安全系列电子书 2.网络安全标...【详细内容】
2021-11-26  IT野涵    Tags:sql注入   点击:(21)  评论:(0)  加入收藏
互联网时代,不论是个人还是组织,都将数据视为一项重要的资产。为了便于存储、管理,企业常常会为各项数据建立一个数据库,如果没有做好安全风险防护,一旦数据库被攻占,企业将迎来很...【详细内容】
2021-10-28  快快网络   企鹅号  Tags:数据库   点击:(50)  评论:(0)  加入收藏
前言(可能思路狭隘,有缺有错,师傅们多带带)【查看资料】Author: 0ne本篇文章数据来源于18+省市级别HVV,90+单位失陷报告。(一部分是笔者的参与,一部分是薅的公司其他师傅的报告...【详细内容】
2021-10-28  IT野涵    Tags:缺口   点击:(46)  评论:(0)  加入收藏
本人也是小白一枚,大佬请绕过,这个其实是六月份的时候做的,那时候想多点实战经验,就直接用谷歌搜索找了一些网站,这个是其中一个1、目标网站 2、发现有WAF防护 3、判断存在注入...【详细内容】
2021-10-19    博客园  Tags:SQL注入   点击:(52)  评论:(0)  加入收藏
一 前言本文将针对开发过程中依旧经常出现的SQL编码缺陷,讲解其背后原理及形成原因。并以几个常见漏洞存在形式,提醒技术同学注意相关问题。最后会根据原理,提供解决或缓解方案...【详细内容】
2021-09-17  woaker    Tags:SQL注入漏洞   点击:(67)  评论:(0)  加入收藏
前言本人ctf选手一名,在最近做练习时遇到了一些sql注入的题目,但是sql注入一直是我的弱项之一,所以写一篇总结记录一下最近学到的一些sql注入漏洞的利用。可回显注入联合注入在...【详细内容】
2021-08-26  合天网安实验室    Tags:sql注入   点击:(60)  评论:(0)  加入收藏
“放纵自己的欲望是最大的祸害,窥探别人的隐私是最大的罪恶,不知自己的过失是最大的病痛”。 上文咱们知道了目前互联网的数据安全存在隐患,数据安全的问题,每天都在发生,只不过...【详细内容】
2021-08-13  小陶子矿工    Tags:IPFS   点击:(79)  评论:(0)  加入收藏
前言最近挖edusrc的时候遇到有注入点但是有waf绕不过,头疼。 可以看到还是phpstudy建站的,太熟悉了这个,不知道这个什么waf各位师傅知道的可以评论一下,所以写这篇文章是供各位...【详细内容】
2021-08-13  IT影子    Tags:sql注入   点击:(66)  评论:(0)  加入收藏
1. 使用 Burpsuite: 1. Capture the request using burpsuite. 2. Send the request to burp scanner. 3. Proceed with active scan. 4. Once the scan is finished, l...【详细内容】
2021-08-04  李志宽    Tags:SQL注入   点击:(74)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条