burpsuite官方靶场之逻辑漏洞篇
字数 1994 2025-08-19 12:40:45
Burp Suite官方靶场:逻辑漏洞篇详解
1. 过于信任客户端控件
1.1 实验目标
使用wiener账户购买价值$1337的"Lightweight l33t leather jacket"(账户:wiener/peter)
1.2 攻击步骤
- 登录wiener账户,发现账户余额\(100不足以购买目标商品(\)1337)
- 将商品加入购物车并抓包
- 修改HTTP请求中的price参数值
- 转发修改后的请求完成购买
关键点:直接修改客户端提交的价格参数,服务器未做二次验证
2. 高等级的逻辑缺陷
2.1 实验目标
使用wiener账户购买目标商品
2.2 攻击步骤
- 登录后进入商品详情页并添加到购物车
- 抓包修改quantity为负值(直接结算会被拒绝)
- 策略调整:购买1件目标商品+大量负数其他商品,使总价<100
关键点:利用负数商品数量抵消正数商品价格,服务器未验证总价合理性
3. 矛盾的安全控制
3.1 实验目标
访问仅限员工的管理面板并删除carlos账户
3.2 攻击步骤
- 注册普通账户(使用提供的邮箱)
- 登录后在"My Account"更新邮箱为公司内部邮箱格式
- 访问管理面板删除carlos
关键点:仅通过邮箱格式判断员工身份,未做真实权限验证
4. 有缺陷的商业规则实施
4.1 实验目标
利用优惠券逻辑缺陷购买目标商品
4.2 攻击步骤
- 登录后发现订阅功能可获取优惠券SIGNUP30
- 购买商品时交替使用两张优惠券
- 在Burp Repeater中重放优惠券请求
关键点:优惠券可重复叠加使用,服务器未限制使用次数
5. 低等级逻辑缺陷
5.1 实验目标
利用整数溢出漏洞购买目标商品
5.2 攻击步骤
- 登录后抓取购买请求
- 使用Burp Intruder设置quantity为99并持续发送
- 观察购物车总价变为负数(整数溢出)
- 精确计算使总价趋近于0
5.3 技术原理
32位有符号整数范围为-2,147,483,648到2,147,483,647。超过最大值会循环到最小值,形成负数。
6. 矛盾的异常输入处理
6.1 实验目标
利用注册流程缺陷访问管理功能
6.2 攻击步骤
- 使用内容发现工具找到/admin路径(401)
- 注册超长邮箱(259字符),利用截断特性
- 构造邮箱:239个'a'+@dontwannacry.com.exploit...
- 截断后实际邮箱为@dontwannacry.com
关键点:邮箱验证与权限检查不一致,超长输入被截断
7. 两用端点的弱隔离
7.1 实验目标
利用密码修改功能访问管理员账户
7.2 攻击步骤
- 登录普通账户并抓取修改密码请求
- 修改请求中的用户名参数为administrator
- 重放请求修改管理员密码
关键点:密码修改功能未严格验证用户身份
8. 不充分的工作流程验证
8.1 实验目标
绕过购买流程验证购买目标商品
8.2 攻击步骤
- 添加商品到购物车
- 抓取/cart/checkout和/cart/order-confirmation请求
- 直接重放订单确认请求
关键点:缺少订单状态验证,可直接确认未支付订单
9. 通过有缺陷的状态机绕过身份验证
9.1 实验目标
绕过角色选择直接访问管理界面
9.2 攻击步骤
- 正常登录(请求1)
- 丢弃/role-selector请求(请求2)
- 直接请求home页面(请求4)
关键点:身份验证状态机缺陷,跳过角色选择步骤可获得管理员权限
10. 无限金钱逻辑缺陷
10.1 实验目标
利用礼品卡机制获取无限金钱
10.2 攻击步骤
- 使用优惠券SIGNUP30购买礼品卡
- 兑换礼品卡获得比花费更多的钱
- 使用Burp Macro自动化此过程
- 重复操作积累足够资金购买目标商品
关键点:礼品卡价值计算缺陷,优惠券可无限使用
11. 通过加密绕过认证oracle
11.1 实验目标
利用加密oracle伪造管理员cookie
11.2 攻击步骤
- 发现stay-logged-in持久性cookie
- 分析cookie格式为"username:timestamp"
- 利用异常邮件处理的加密oracle
- 构造"administrator:timestamp"并加密
- 处理加密结果去除"Invalid email address"前缀
- 使用伪造cookie获取管理员权限
关键点:
- 加密oracle暴露加解密功能
- 需要精确处理加密数据格式
- 填充使数据长度为16的倍数
总结
这些实验展示了Web应用程序中常见的逻辑漏洞类型,包括:
- 客户端信任问题
- 业务逻辑缺陷
- 权限控制不足
- 工作流程缺陷
- 输入验证不充分
- 加密实现问题
防御建议:
- 关键操作服务器端验证
- 实施完整的业务流程状态管理
- 严格的输入验证和输出编码
- 最小权限原则
- 避免暴露加密oracle
- 业务规则合理性检查