PortSwigger SQL注入LAB10

[复制链接]
发表于 17 小时前 | 显示全部楼层 |阅读模式
PortSwigger SQL注入LAB10

LAB10庆贺!做了那么久LAB终于破个位数了,而来到LAB10,我们就要开始我们SQL盲注的学习了,那么我们如今开始吧:
【本篇目的】
1. 明白并把握SQL盲注的技能
2. 通过SQL盲注来获取所需administrator的暗码,并完成登录一、明白cookie在此处的作用


我们先来看LAB10的标题,他说应用使用了cookie举行了跟踪分析,跟之前差异的是SQL的查询结果不会返回也不会表现错误信息了,这倒是更加贴近现实了,但是假如返回了任何行的话,页面会表现"Welcome back"的消息。
终极的目的照旧老样子,从users表中获取administrator用户的暗码并乐成登录
那我们先来看看这个cookie在这里是怎么起作用的吧

让我们留意Request中的这段语句:Cookie: TrackingId=jGWk2ssV921g19Md; session=rAqozxAugWrDopcMDvMvwQitXjCUcd38
这就是标题中所说的TrackingId,那假如我们如今更改他会发生什么呢:

我们可以发现右上角原先 Home 和 My account 之间的 Welcome back 消散了,这就是标题中所说的:我们可以通过是否回显 Welcome back 来判断是否有查询结果回显。
二、布尔盲注

2.1 明白语法

既然知道服务器会通过对TrackingId举行查询来决定是否返回Welcome back,那么TrackingId就是我们要举行盲注的目的了
思考一下,既然服务器会通过判断TrackingId是否合法来决定是否回显值,这何尝不是一种布尔判断呢,既然云云,我们可以对其举行布尔盲注,我们先通过一段简朴的语句来相识他:
  1. ' AND ( 'a' FROM users username = 'administrator') = 'a' --
复制代码
这段语句是什么意思呢?起首第一个 AND 把服务器验证 TrackingId 和背面我们本身编写的语句举行了布尔毗连,也就是说只有在 TrackingId 合法且我们编写的语句创建的环境下,服务器才会返回 "Welcome back"。
接下来我们看括号内的内容,括号内的意思是去users表中探求username为administrator的数据,假如找到了就返回a这个字符
再往下面就不必要过多的表明了,目的就是为了判断括号内中的语句是否创建,假如创建的话,整段语句创建,服务器便会返回"Welcome back",反之,假如括号内的语句不创建,便不会返回"Welcome back"

我们可以看到服务器返回了"Welcome back"字符,证实白我们的想法
2.2 构建暗码长度获取语句

既然我们知道了盲注的根本语法,那么接下来我们实验获取暗码的长度:
  1. ' AND (SELECT 'a' FROM users WHERE username = 'administrator' AND LENGTH(password) > 1) = 'a' --
复制代码
这里我们用AND再次并列了一个条件,这个条件通过调用LENGTH()函数来判断administrator暗码的长度是否大于1

这里我们可以看到服务器乐成回显了 "Welcome back" 提示,阐明 administrator 暗码的长度大于 1,那么我们可以不绝递增 1 的值来得到暗码确切的位数。留意:在某些数据库或字符集下,LENGTH() 按字节计数。
三、使用Intruder

3.1 爆破获取暗码长度

但是假如我们全部手动来完成这些工作的话,单单获取暗码位数就会斲丧我们大量的时间和精力,以是这时间我们就必要用到Burp suite的Intruder
我们通过右键--Send to Intruder来将当前会话发送至Intruder,然后把我们原先的1设置为Payload:

接下来我们必要设置Payload的厘革环境,我们打开Payload子页,由于我们此处的Payload全程都是一个数字,那么我们在Payload Type中把它设置为Numbers,然后在下面的Payload settings将他的范围设置为1-30:

点击Start attack开始攻击 我们得到了如下结果:

通过判断Length值的突变,我们轻松找到了本次攻击的临界点————在Payload值为20的时间服务器不再返回"Welcome back"字段,阐明administrator暗码的长度为20。
3.2 构建暗码获取语句

既然我们已经知道怎样获取暗码的长度,那么只需调解语句即可逐位爆破出暗码。
  1. ' AND (SELECT SUBSTRING(password, 1, 1) FROM users WHERE username = 'administrator') = 'a' --
复制代码
这段语句通过调用 SUBSTRING() 函数取出 administrator 暗码的第一个字符,与背面的 'a' 比力;若相称,服务器会回显 "Welcome back" 提示。
将他编辑好之后 我们先设置"a"为Payload举行实验

在 Payload 中将范例设置为 Brute forcer(暴力破解),并在 Payload settings 的 Character set 添加小写字母 a-z 与数字 0-9。由于我们逐字符爆破,把 Min length 和 Max length 都设置为 1。

为了我们更快速的找到结果,我们可以在settings中找到Grep-Match来添加字段"Welcome back",如许在攻击结果页面中我们可以直接通过是否返回"Welcome back"字段来快速筛选

按下开始攻击并等候攻击完成:

我们可以看到,当 Payload 为 1 的时间,服务器回显了 "Welcome back" 提示,证实 administrator 暗码的第一位为 1。
3.3 爆破获取暗码

既然已经学会怎样获取第一位暗码字符的方法了,那么我们轻微更改一下之前语句中的Payload就可以得到每一位暗码字符了,然后再把他们拼接起来就可以得到完备的暗码
但是在 sniper 模式下,我们只能自动更改一个 Payload 的值,以是我们必要切换 Attack type 为 Cluster bomb(集束炸弹),并将代表第一个字符的 "1" 设置为第一个 Payload,把用于比力的 "a" 设置为第二个 Payload。

我们把第一个 Payload 的范例设置为 Numbers,并把范围设为 1-20。

接着把第二个 Payload 的范例设置为 Simple list,并从 Add from list 中添加小写 a-z、大写 A-Z 以及数字 0-9 到列表中(Burp Suite 社区版不支持 Add from list 功能)。

点击 Start attack 开始攻击并分析结果:

3.4 拼接暗码

如今我们就已经得知全部暗码在每一位的值了,这里我使用记事原来将它们全部拼接起来:

至此,我们得出来终极的暗码10rmb7z5lls76ambkk6v
四、登岸验证结果

那么如今我们就去网页中使用我们得到的暗码来举行登岸:

登岸乐成 LAB10办理
五、总结与防御发起

总结:

  • 通过本训练把握了基于 TrackingId 的布尔盲注思绪:使用页面是否回显“Welcome back”作为布尔判断信号,从而徐徐探测出用户名为 administrator 的暗码长度与每一位字符。
  • 演示了用 Burp Suite 的 Intruder 自动化摆列(包罗 Numbers、Brute forcer 与 Cluster bomb 模式)来加快长度探测和逐位爆破的实战流程,并终极得到示例暗码。
防御发起:

  • 使用参数化查询 / 预编译语句,克制将未验证的输入直接拼接到 SQL 中(这是防止 SQL 注入的主要本领)。
  • 对全部输入举行白名单校验与长度限定,须要时严酷限定字符集(比方只答应数字、字母等)。
  • 数据库账号上实行最小权限原则:应用使用的数据库用户仅授予须要的 SELECT/INSERT/UPDATE 权限,克制使用高权限账号运行应用查询。
  • 对敏感数据(如暗码)使用强哈希算法并加盐(保举 bcrypt、scrypt 或 Argon2),并确保不在任何相应或回显中走漏原文或哈希细节。
  • 不要在页面上回显敏感的调试信息;对外返回通用的错误提示,同时在服务器端记录详细日志日志以便审计与告警。
  • 对非常哀求与爆破运动启用速率限定、账户锁定、验证码与多因素认证(MFA),减缓自动化攻击并提拔防护层级。
  • 对 Cookie 和会话采取安全设置:设置 HttpOnly、Secure、SameSite,并只管使用服务器端会话 ID 或对 cookie 值举行署名/加密,克制将未校验的 cookie 值直接用于数据库查询。
  • 摆设 Web 应用防火墙WAF)并团结日志日志监控监控与告警,及时发现非常流量或大量探测运动。
博客园技能分享 · 请勿用于非法测试

免责声明:如果侵犯了您的权益,请联系站长及时删除侵权内容,谢谢合作!qidao123.com:ToB企服之家,中国第一个企服评测及软件市场,开放入驻,技术点评得现金.

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表