一、Cms初识:
BEES企业网站管理系统是一个基于PHP+Mysql架构的企业网站管理系统。BEES采用模块化方式开发,功能强大灵活易于扩展,并且完全开放源代码,多种语言分站,为企业网站建设和外贸提供解决方案。
-目录结构:
二、漏洞描述:
后台登陆页面由于程序对传参过滤不全,导致过滤代码可以被绕过,从而造成SQL注入。
三、漏洞分析过程:
定位到漏洞代码:/admin/login.php
这里使用了fl_html()、fl_value()函数对POST的传参进行了处理:
跟fl_html()和fl_value()函数:/includes/fun.php
可以看到fl_value()函数是使用正则表达式将一些常见的SQL注入敏感字符都替换为空,仅此而已,绕过方法就很简单了,双写即可,看是仔细观察此正则,发现有些是左右包含了一对空格的,那么绕过方式也是差不多,比如:
select => seselectlect
and => a空格and空格nd
然后fl_html()函数是对传参进行html实体编码,默认只对双引号进行编码,我们使用单引号进行注入即可
然后交给check_login()函数进行处理:/includes/fun.php
可以看到直接将传参拼接到SQL语句中进行执行了:
跟进fetch_asc()函数:/includes/mysql.class.php
继续跟进query():可以看到SQL语句出错会输出报错信息,所以导致了报错注入
四、漏洞利用:
访问后台登陆页面:
/admin/login.php
抓包,将用户名处输入payload:
admin'a and nd(extractvalue(1,concat(0x7e,(selselectect user()),0x7e)))#
注入其他数据绕过方式也是很简单的,如果要写shell的话可以用hex编码等方式进行绕过,具体就不一一演示了。
点个赞和在看吧,欢迎转发!
点个赞和在看吧,欢迎转发!
点个赞和在看吧,欢迎转发!
本文始发于微信公众号(哈拉少安全小队):[代码审计] beescms SQL注入漏洞分析
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论