beescms
BEESCMS企业网站管理系统,SEO优化更快,无功能限制,后台上手容易,各类行业模板供选择使用!全面支持手机网站,电脑手机模板标签全部通用,一个后台管理,电脑、手机网站同步更新。
官网:http://www.beescms.com/
下载:https://www.mycodes.net/49/9318.htm
环境搭建
下载源码,我下载的是最新版BEES_4.0_R_20160525,使用phpstudy搭建。
搭建好后,来到后台登录页面。
试了一下,这里的验证码只要不刷新是不变的,存在暴力破解的可能,我们可以使用bp去跑字典。
但是我们的重点是注入,用户名输入admin’,报错。
应该有注入,打开我们的Seay开始动手审计。
代码审计
来到登录页admin/login.php,定位到 ‘ok_login’ 位置。
发现有过滤函数fl_html()和fl_value(),跟进函数。
flvalue()对输入的关键字进行了过滤,可以看到,几乎常用的SQL关键字都被过滤掉了,但是我们可以通过双写关键字绕过。
fl_value()则是使用htmlspecialchars(()函数对字符进行转义,将特殊字符用引用实体替换,但是它采用的是默认参数,仅编码双引号,所以对于’不会过滤。
通过两个过滤函数后,参数传进了check_login()函数,跟进。
可以看到只是函数功能只是最后的带入查询和验证密码,没有过滤了。
漏洞利用
明白过滤规则后,就可以构造各种注入绕过了。
例如一个直接爆后台密码的playload(本地phpstudy测试):
admin' uni union on selselectect 1,2,3,4,5'' in into outoutfilefile 'D:/phpStudy/WWW/BEES_4.0/a.php' #
执行后会在根目录下生成a.php文件,里面就是bees_admin表的内容,直接得到管理员的密码登录后台。