Portswigger 靶场之“业务逻辑漏洞”

All labs | Web Security Academy (portswigger.net)

1. Excessive trust in client-side controls

过度信任客户端控制

登录wiener:peter,购买Lightweight "l33t" Leather Jacket,价格是$1337.00,下单后显示商店积分不够,不可以购买

在 Burp 中,截断Add to cart功能,修改价格(price)为1以满足商店的信用额度,完成订单以解决实验室。

2. High-level logic vulnerability

高级逻辑漏洞

登录wiener:peter,把Lightweight "l33t" Leather Jacket(轻质“l33t”皮夹克)添加到购物车,通过用 burp 抓包,发现价格参数price没有了,剩下了数量参数quantity

尝试去修改数量参数quantity-1,果不其然,成功修改,但下单后不被允许金额小于零,无法下单。

于是通过叠加商品,既满足Store credit(店铺积分)100元之内,又满足下单金额是大于零的要求

依旧是把一个Lightweight "l33t" Leather Jacket(轻质“l33t”皮夹克)添加到购物车;再购买The Giant Enter Key(巨型回车键),数量用1337/25.35=52.74来计算

3. Inconsistent security controls

不一致的安全控制

在 Burp Suite 中,使用 Site map(站点地图)功能,来查看站点目录,发现路径admin。访问/admin,页面回显需要“DontWannaCry ”用户登录才可访问

页面右上角Register 注册一个账号,其中邮箱需要点击页面上方的Email client获得,注册后会发来一封邮件点击验证一下,然后登录账户,紧随其后修改邮箱为 @DontWannaCry.com

这时候就可以访问管理面板了,删除用户即可

4. Flawed enforcement of business rules

有缺陷的业务规则执行

注意到页面有一个优惠券代码——NEWCUST5,页面底部可通过注册获得优惠券代码SIGNUP30

添加商品到购物车,尝试优惠券的使用,发现连续两次输入相同的代码,不被允许,而交替使用可绕过,就一直叠加

5. Low-level logic flaw

低级逻辑缺陷

登录账号,购买商品的数量一次最多可以 +99,可以用 Burp 的 intruder 送到 Overflow

Quote / 参考

int overflow(整数溢出)是指在计算机中,对一个整数类型(例如 int、long 等)进行计算时,结果超出了该类型可以表示的最大值(或最小值),导致结果不正确的情况。

在计算机中,整数类型的表示是有限的,即它们可以表示的范围是有限的。例如,一个 32 位的有符号整数类型 int 可以表示从 -2,147,483,648 到 2,147,483,647 的整数,如果在计算时得到的结果超过了这个范围,就会发生整数溢出。

6. Inconsistent handling of exceptional input

异常输入的不一致处理

需要进入/admin目录,删除 Carlos。

首先注册一个用户,验证用户,返回该用户的时候发现并没有修改邮箱的选项

于是在注册页面修改邮箱,利用长度截断(256个字符)使得注册的邮箱地址为@dontwannacry.com。注册完验证后登录账户以便删除 Carlos。

bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb@dontwannacry.com.0a0800c503176684c4ae681001ba00e2.web-security-academy.net

7. Weak isolation on dual-use endpoint

两用端点上的弱隔离

登录 wiener 用户后,在修改密码的界面发现,可以修改任意“用户”的密码,但需要输入当前密码(当前密码未知),通过 burp 截断数据包分析得知,当前密码是可以删除来绕过此限制的。

8. Insufficient workflow validation

工作流程验证不足

登录账号,购买一个2.04的商品(少于商店积分 100),观察代理历史记录,注意到下订单时,POST 请求会重定向到订单确认页面

添加1337 的那款商品,下单观察代理历史记录,研究两者之间的差异,注意到2.04的商品 GET 请求为GET /cart/order-confirmation?order-confirmation=true即可购买成功,把1337 的商品进行修改也可绕过限制

9. Authentication bypass via flawed state machine

通过有缺陷的状态机绕过身份验证

用 burp 拦截登录请求,Forward POST 请求,Drop Redirect,然后直接访问/admin

登录的请求有两个,第一个是 POST 请求,第二个是重定向 GET 请求,作用是选择角色转到主页,将第二个包丢弃可默认为该角色,即可访问管理面板

10. Infinite money logic flaw

无限金钱逻辑缺陷

home 页底部注册得到 SIGNUP30,可以购买 10 美元的礼品卡并从“my-account”页面兑换,兑换的过程中注意到商店信用增加了(用 Burp 或者 Python 自动执行此过程)

攻击完成后,商店的总体信用额度将提升足以购买“皮夹克”

11. Authentication bypass via encryption oracle

通过加密 oracle 绕过身份验证

登录后有一个 Stay Logged in(保持登录状态)的功能,且是加密后的

未完……

posted @ 2023-02-24 16:53  跛一一  阅读(830)  评论(0编辑  收藏  举报