对客户端控件的过度信任
lab
实验室:对客户端控件的过度信任 |网络安全学院 (portswigger.net)
solve
- bp后,登录并尝试购买皮夹克。订单被拒绝,因为您没有足够的商店信用额度。
- 在 Burp 中,转到“代理”>“HTTP 历史记录”并研究订购流程。请注意,当您将商品添加到购物车时,相应的请求包含一个参数。将请求发送到 Burp Repeater。
price
`POST /cart` - 在 Burp Repeater 中,将价格更改为任意整数并发送请求。刷新购物车并确认价格已根据您的输入进行更改。
- 重复此过程,将价格设置为低于可用商店信用额度的任何金额。
- 完成求解实验的订单。
高级逻辑漏洞
lab
实验室:高级逻辑漏洞 |网络安全学院 (portswigger.net)
solve
- 打嗝后,登录并将便宜的商品添加到您的购物车中。
- 在 Burp 中,转到“代理”>“HTTP 历史记录”并研究相应的 HTTP 消息。请注意,数量由请求中的参数确定。
POST /cart
- 转到“拦截”选项卡并打开拦截。将另一件商品添加到您的购物车,然后转到 Burp 中截获的请求。
POST /cart
- 将参数更改为任意整数,然后转发任何剩余的请求。请注意,购物车中的数量已根据您的输入成功更新。
quantity
- 重复此过程,但这次请求为负数量。检查这是否已成功从购物车数量中扣除。
- 请求适当的负数量,以从购物车中删除比当前包含的更多的商品。确认您已成功强制购物车包含负数量的产品。转到您的购物车,请注意总价现在也是负数。
- 像往常一样将皮夹克添加到您的购物车中。为另一件商品添加合适的负数量,将总价降低到低于您剩余的商店积分。
- 下单解决实验室。
安全控制不一致
lab
实验室:安全控制不一致 |网络安全学院 (portswigger.net)
solve
- 打开实验室,然后转到 Burp 中的“目标”>“站点地图”选项卡。右键单击实验室域,然后选择“参与工具”>“发现内容”以打开内容发现工具。
- 单击“会话未运行”以启动内容发现。片刻之后,查看对话框中的“站点地图”选项卡。请注意,它发现了路径 。
/admin
- 尝试浏览到 。尽管您没有访问权限,但错误消息指示用户有权。
/admin
`DontWannaCry` 进入账号注册页面。请注意,该消息告诉员工使用其公司电子邮件地址。使用以下格式的任意电子邮件地址注册:
DontWannaCry
anything@your-email-id.web-security-academy.net
您可以通过单击“电子邮件客户端”按钮找到您的电子邮件域名。
- 进入电子邮件客户端,点击确认邮件中的链接,完成注册。
- 使用您的新帐户登录,然后转到“我的帐户”页面。请注意,您可以选择更改您的电子邮件地址。将您的电子邮件地址更改为任意地址。``
- 请注意,您现在可以访问管理面板,您可以在其中删除以解决实验室问题。
carlos
业务规则执行存在缺陷
lab
实验室:业务规则执行存在缺陷 |网络安全学院 (portswigger.net)
solve
- 登录并注意有一个优惠券代码。
NEWCUST5
- 在页面底部,注册时事通讯。您会收到另一个优惠券代码。
SIGNUP30
- 将皮夹克添加到您的购物车。
- 转到结帐并应用两个优惠券代码以获得订单折扣。
- 尝试多次应用这些代码。请注意,如果您连续两次输入相同的代码,则会被拒绝,因为优惠券已被应用。但是,如果在两个代码之间交替,则可以绕过此控件。
- 重复使用这两个代码的次数足够多,以将您的订单总额减少到低于剩余的商店信用额度。完成求解实验的订单。
低级逻辑缺陷
lab
实验室:低级逻辑缺陷 |网络安全学院 (portswigger.net)
solve
- 打嗝后,登录并尝试购买皮夹克。订单被拒绝,因为您没有足够的商店信用额度。在代理历史记录中,研究订购流程。将请求发送到 Burp Repeater。
POST /cart
- 请注意,在 Burp Repeater 中,您只能为每个请求添加一个 2 位数的数量。将请求发送到 Burp Intruder。
- 转到打嗝入侵者。在“位置”选项卡上,将参数设置为 。
quantity
`99` - 在“有效负载”选项卡上,选择有效负载类型“空有效负载”。在“有效负载设置”下,选择“无限期继续”。开始攻击。
- 当攻击正在运行时,转到您的购物车。每隔一段时间刷新页面并监控总价。最后,请注意,价格突然切换到一个大的负整数,并开始向上计数到 0。价格已超过后端编程语言中整数允许的最大值 (2,147,483,647)。因此,该值已循环回最小可能值 (-2,147,483,648)。
- 清空您的购物车。在接下来的几个步骤中,我们将尝试添加足够的商品,以便价格回转,并在您剩余的商店信用额度的 0 美元到 100 美元之间结算。这在数学上是不可能仅使用皮夹克的。请注意,夹克的价格以美分 (133700) 为单位。
- 再次创建相同的入侵者攻击,但这次,在“有效负载”>“有效负载设置”下,选择准确生成有效负载。
323
- 转到“资源池”选项卡,将攻击添加到资源池中,并将“最大并发请求数”设置为 。开始攻击。
1
- 入侵者攻击完成后,转到 Burp Repeater 中的请求并发送单个夹克请求。订单的总价现在应为 。
POST /cart
`47`-$1221.96
- 使用 Burp Repeater 将适当数量的其他商品添加到您的购物车中,使总额在 0 美元到 100 美元之间。
- 下单解决实验室。
异常输入的处理不一致
lab
实验室:异常输入的处理不一致 |网络安全学院 (portswigger.net)
solve
- 通过 Burp 代理流量时,打开实验室并转到“目标”>“站点地图”选项卡。右键单击实验室域,然后选择“参与工具”>“发现内容”以打开内容发现工具。
- 单击“会话未运行”以启动内容发现。片刻之后,查看对话框中的“站点地图”选项卡。请注意,它发现了路径 。
/admin
- 尝试浏览到 。尽管您没有访问权限,但错误消息指示用户具有访问权限。
/admin
`DontWannaCry` - 进入账号注册页面。请注意,该消息告诉员工使用其公司电子邮件地址。
DontWannaCry
- 从实验室横幅中的按钮中,打开电子邮件客户端。记下电子邮件服务器域名中的唯一 ID ()。
@YOUR-EMAIL-ID.web-security-academy.net
返回实验室,使用以下格式的超长电子邮件地址进行注册:
very-long-string@YOUR-EMAIL-ID.web-security-academy.net
长度应至少为 200 个字符。
very-long-string
- 转到电子邮件客户端,并注意到您已收到确认电子邮件。单击链接以完成注册过程。
- 登录并转到“我的帐户”页面。请注意,您的电子邮件地址已被截断为 255 个字符。
- 注销并返回帐户注册页面。
使用另一个长电子邮件地址注册一个新帐户,但这次在您的电子邮件地址中包含子域,如下所示:
dontwannacry.com
very-long-string@dontwannacry.com.YOUR-EMAIL-ID.web-security-academy.net
确保 是正确的字符数,以便末尾的“”恰好是字符 255。
very-long-string
`m`@dontwannacry.com
- 转到电子邮件客户端,然后单击您收到的确认电子邮件中的链接。登录到您的新帐户,请注意您现在可以访问管理面板。确认电子邮件已成功发送到您的电子邮件客户端,但应用程序服务器将与您的帐户关联的地址截断为 255 个字符。因此,您已经能够使用看似有效的地址进行注册。您可以从“我的帐户”页面确认这一点。
@dontwannacry.com
- 转到管理面板并删除以解决实验室问题。
carlos
两用端点上的弱隔离
lab
实验室:两用端点上的弱隔离 |网络安全学院 (portswigger.net)
solve
- 运行 Burp 后,登录并访问您的帐户页面。
- 更改密码。
- 研究打嗝中继器中的请求。
POST /my-account/change-password
- 请注意,如果完全删除该参数,则无需提供当前密码即可成功更改密码。
current-password
- 请注意,更改密码的用户由参数确定。重新设置并发送请求。
username
`username=administrator` - 注销并注意,您现在可以使用刚刚设置的密码成功登录。
administrator
- 转到管理面板并删除以解决实验室问题。
carlos
工作流程验证不足
lab
实验室:工作流程验证不足 |网络安全学院 (portswigger.net)
solve
- 打嗝运行后,登录并使用商店积分购买您能负担得起的任何商品。
- 研究代理历史记录。请注意,当您下订单时,请求会将您重定向到订单确认页面。发送到打嗝中继器。
POST /cart/checkout
`GET /cart/order-confirmation?order-confirmation=true` - 将皮夹克添加到您的篮子中。
- 在 Burp Repeater 中,重新发送订单确认请求。观察订单完成时,成本没有从您的商店信用中扣除,并且实验室已解决。
通过有缺陷的状态机绕过身份验证
lab
实验室:通过有缺陷的状态机绕过身份验证 |网络安全学院 (portswigger.net)
solve
- 运行 Burp 后,完成登录过程,请注意,您需要先选择角色,然后才能进入主页。
- 使用内容发现工具标识路径。
/admin
- 尝试直接从角色选择页面浏览,并观察这不起作用。
/admin
- 注销,然后返回登录页面。在 Burp 中,打开代理拦截,然后登录。
- 转发请求。下一个请求是 。删除此请求,然后浏览到实验室的主页。请注意,您的角色已默认为该角色,并且您有权访问管理面板。
POST /login
`GET /role-selector`administrator
- 删除以解决实验室问题。
carlos
无限金钱逻辑缺陷
lab
实验室:无限金钱逻辑缺陷 |网络安全学院 (portswigger.net)
solve
该解决方案使用 Burp Intruder 来自动化购买和兑换礼品卡的过程。精通 Python 的用户可能更喜欢使用 Turbo Intruder 扩展。
- 在 Burp 运行的情况下,登录并注册时事通讯以获取优惠券代码 .请注意,您可以购买 10 美元的礼品卡并从“我的帐户”页面兑换它们。
SIGNUP30
- 将礼品卡添加到您的购物篮并继续结账。应用优惠券代码可获得 30% 的折扣。完成订单并将礼品卡代码复制到剪贴板。
- 转到您的帐户页面并兑换礼品卡。请注意,整个过程已为您的商店信用额度增加了 3 美元。现在,您需要尝试自动执行此过程。
- 研究代理历史记录,并注意您通过在请求参数中提供代码来兑换礼品卡。
gift-card
`POST /gift-card` - 转到“项目选项”>“会话”。在“会话处理规则”面板中,单击“添加”。此时将打开“会话处理规则编辑器”对话框。
- 在对话框中,转到“范围”选项卡。在“URL 范围”下,选择“包括所有 URL”。
- 返回“详细信息”选项卡。在“规则操作”下,单击“添加”>“运行宏”。在“选择宏”下,再次单击“添加”以打开宏记录器。
选择以下请求序列:
POST /cart POST /cart/coupon POST /cart/checkout GET /cart/order-confirmation?order-confirmed=true POST /gift-card
然后,单击“确定”。“宏编辑器”(Macro Editor) 打开。
- 在请求列表中,选择 。点击“配置项目”。在打开的对话框中,单击“添加”以创建自定义参数。命名参数并突出显示响应底部的礼品卡代码。单击“确定”两次以返回宏编辑器。
GET /cart/order-confirmation?order-confirmed=true
`gift-card` - 选择请求,然后再次单击“配置项目”。在“参数处理”部分,使用下拉菜单指定参数应派生自先前的响应(响应 4)。单击“确定”。
POST /gift-card
`gift-card` - 在宏编辑器中,单击“测试宏”。查看对生成的礼品卡代码的响应并记下。查看请求。确保参数匹配,并确认它收到了响应。继续单击“确定”,直到返回 Burp 主窗口。
GET /cart/order-confirmation?order-confirmation=true
`POST /gift-cardgift-card
302` - 将请求发送到 Burp Intruder。使用“狙击手”攻击类型。
GET /my-account
- 在“有效负载”选项卡上,选择有效负载类型“空有效负载”。在“有效负载设置”下,选择生成有效负载。
412
- 转到“资源池”选项卡,将攻击添加到资源池中,并将“最大并发请求数”设置为 。开始攻击。
1
- 攻击结束后,您将有足够的商店信用来购买夹克并解决实验室问题。
通过加密预言机绕过身份验证
lab
实验室:通过加密预言机绕过身份验证 |网络安全学院 (portswigger.net)
solve
- 在启用“保持登录状态”选项的情况下登录并发表评论。使用 Burp 的手动测试工具研究相应的请求和响应。请注意 cookie 是否已加密。
stay-logged-in
- 请注意,当您尝试使用无效的电子邮件地址提交评论时,响应会在将您重定向到博客文章之前设置一个加密的 cookie。
notification
请注意,错误消息以明文形式反映了参数的输入:
email
Invalid email address: your-invalid-email
推断这必须从 cookie 中解密。将后续请求(包含通知 cookie)发送到 Burp Repeater。
notification
`POST /post/comment`GET /post?postId=x
- 在 Repeater 中,您可以观察到您可以使用请求的参数对任意数据进行加密,并在标头中反映相应的密文。同样,您可以在请求中使用 cookie 来解密任意密文并在错误消息中反映输出。为简单起见,双击每个请求的选项卡,然后分别重命名选项卡和。
email
`POSTSet-Cookie
notificationGET
encrypt`decrypt
在解密请求中,复制您的 cookie 并将其粘贴到 cookie 中。发送请求。响应现在包含解密的 cookie,而不是错误消息,例如:
stay-logged-in
`notification`stay-logged-in
wiener:1598530205184
这表明 cookie 的格式应为 。将时间戳复制到剪贴板。
username:timestamp
- 转到加密请求并将 email 参数更改为 。发送请求,然后从响应中复制新的 Cookie。
administrator:your-timestamp
`notification` - 解密这个新 cookie,并观察 23 个字符的 “” 前缀会自动添加到您使用该参数传入的任何值中。将 cookie 发送到 Burp Decoder。
Invalid email address:
`email`notification
- 在解码器中,URL 解码和 Base64 解码 cookie。
- 在 Burp Repeater 中,切换到消息编辑器的“十六进制”选项卡。选择前 23 个字节,然后右键单击并选择“删除所选字节”。
- 重新编码数据并将结果复制到解密请求的 cookie 中。发送请求时,请注意,错误消息指示使用了基于块的加密算法,并且输入长度必须是 16 的倍数。您需要在“”前缀中填充足够的字节,以便要删除的字节数是 16 的倍数。
notification
`Invalid email address:` 在 Burp Repeater 中,返回加密请求,并在预期 cookie 值的开头添加 9 个字符,例如:
xxxxxxxxxadministrator:your-timestamp
加密此输入并使用解密请求来测试它是否可以成功解密。
- 将新的密文发送到解码器,然后 URL 和 Base64 对其进行解码。这一次,从数据的开头删除 32 个字节。重新编码数据并将其粘贴到解密请求中的参数中。检查响应以确认您的输入已成功解密,并且至关重要的是,不再包含“”前缀。您应该只看到 .
notification
`Invalid email address:`administrator:your-timestamp
- 从代理历史记录中,将请求发送到 Burp Repeater。完全删除 cookie,并将 cookie 替换为您自制 cookie 的密文。发送请求。请注意,您现在以管理员身份登录并有权访问管理面板。
GET /
`session`stay-logged-in
- 使用 Burp Repeater,浏览并注意删除用户的选项。浏览到解决实验室问题。
/admin
`/admin/delete?username=carlos`
评论0
暂时没有评论