• BurpSuite官方实验室之逻辑漏洞


    BurpSuite官方实验室之逻辑漏洞

    这是BurpSuit官方的实验室靶场,以下将记录个人逻辑漏洞共11个Lab的通关过程

    Web Security Academy: Free Online Training from PortSwigger

    lab1:

    Excessive trust in client-side controls

    过度信任客户端控件

    目标是买一件Lightweight “l33t” Leather Jacket,给了账号和密码账户wiener:peter
    在这里插入图片描述

    登录后账号只有100美金但购买的商品是1337美金,直接购买会提示余额不足。

    在这里插入图片描述

    查看了apply和place order的请求包并不存在相关的金额数量参数

    重新将商品加入购物车拦截请求包

    在这里插入图片描述

    请求包如下

    在这里插入图片描述

    猜测price为金额字段进行修改,修改为0和0.1失败,修改为1成功加入购物车,金额为0.01美元

    在这里插入图片描述

    成功提交订单

    在这里插入图片描述

    lab2:

    High-level logic vulnerability

    高级逻辑漏洞

    目标同样是买一件Lightweight “l33t” Leather Jacket

    同样拦截加入购物车的请求包,发现没了price只能更改数量

    在这里插入图片描述

    加入另一个商品,抓包更改请求quantity属性为-20

    在这里插入图片描述

    总价为负数提交失败,增加到正数

    在这里插入图片描述

    购买成功

    在这里插入图片描述

    lab3:

    Inconsistent security controls

    不一致的安全控制

    目标到管理后台删除Carlos用户

    在target=>site map

    在这里插入图片描述

    可以线程数设置大一点,扫的有点慢

    在这里插入图片描述

    也可以用脚本,扫到存在/admin的路径

    在这里插入图片描述

    尝试访问/admin,访问失败说只有DontWannaCry用户才能访问这个界面

    在这里插入图片描述

    这个DontWannaCry是什么鬼,进入注册页面给了提示,使用@dontwannacry.com的邮箱地址就可以了

    在这里插入图片描述

    用@dontwannacry.com结尾的邮箱注册失败

    在这里插入图片描述

    在email client界面找到了我们的邮箱

    格式为

     @exploit-0a98002904e66735c1014106016d00d1.exploit-server.net
    
    • 1

    在这里插入图片描述

    注册一个

    tpaer@exploit-0a98002904e66735c1014106016d00d1.exploit-server.net
    
    • 1

    找到响应的link

    在这里插入图片描述

    访问url注册成功

    在这里插入图片描述

    登录来到如下页面

    在这里插入图片描述

    直接把邮箱后缀修改为@dontwannacry.com结尾,成功多出Admin pannel

    在这里插入图片描述

    删除Carlos用户成功通关
    在这里插入图片描述

    lab4:

    Flawed enforcement of business rules

    商业规则的执行有缺陷

    目标购买Lightweight “l33t” Leather Jacket,进页面给了提示在结账时使用这个code

    在这里插入图片描述

    取结账页面发现这个代码实际是一个5美金优惠券的代码,添加即可减少金额

    在这里插入图片描述

    减5美金肯定是不够的,看看这个券的code能不能重复使用,显示优惠券重复使用了
    在这里插入图片描述

    看在哪还能找到优惠券,在商品底部发现一个sign up界面
    在这里插入图片描述

    用我们的邮箱登录获得了另一张优惠券SIGNUP30

    在这里插入图片描述

    这个减的多减了400刀,但还是买不起

    在这里插入图片描述

    试着可不可以间优惠券重复利用,成功利用

    在这里插入图片描述

    利用该逻辑漏洞成功零元购

    在这里插入图片描述

    lab5:

    Low-level logic flaw

    低级逻辑缺陷

    目标购买Lightweight “l33t” Leather Jacket

    还是钱不够,可控的只有商品的购买数量

    在这里插入图片描述

    如果一个参数超过了后端编程语言变量类型的整数最大值就会循环到最小值

    例如-2147483648~2147483647,当超过2147483647就会从-2147483648开始

    我们可以控制数量进而控制总金额超过整数最大值变为负数,配合购买其他商品实现零元购。

    更改quantity商品增加数量为99(最大值),试了100不可以

    在这里插入图片描述

    在这里插入图片描述

    开始爆破到总价趋近于0时停止,经测试大概320多次99
    在这里插入图片描述

    接下来添加另一个商品,将总金额提升到0~100
    在这里插入图片描述

    成功购买

    在这里插入图片描述

    lab6:

    Inconsistent handling of exceptional input

    异常输入的不一致处理

    目标到管理面板删除carlos用户

    这个关卡似曾相识和lab3差不多,尝试一样的方法注册账号

    在这里插入图片描述

    知道了我们注册的邮箱后缀,进行注册

    @exploit-0a81002e04cdda20c143199d014d00b6.exploit-server.net
    
    • 1

    在这里插入图片描述

    登录后台这次不一样了,没给更改邮箱的按钮

    在这里插入图片描述

    尝试使用

    {多个字符}@dontwannacry.com@exploit-0a81002e04cdda20c143199d014d00b6.exploit-server.net
    
    • 1

    多个字符把后面的@exploit-0a81002e04cdda20c143199d014d00b6.exploit-server.net屏蔽掉

    ssdsasdasdsadsasdasdasdsadasdasdsadsadsadsadasdsadsadasdasdsadsadsadsadsadsadsadadasdasdsadasdasdassssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss@dontwannacry.com.exploit-0a81002e04cdda20c143199d014d00b6.exploit-server.net
    
    • 1

    在这里插入图片描述

    成功进入管理面板删除carlos用户

    在这里插入图片描述

    lab7:

    Weak isolation on dual-use endpoint

    两用端点上的弱隔离

    目标是登录administrator删除carlos用户,给了账号密码wiener:peter

    登录后界面如下,尝试更改密码

    在这里插入图片描述

    抓包

    在这里插入图片描述

    删除current-password看是否能修改,修改成功

    在这里插入图片描述

    更改username为administrator看是否能修改其他用户密码,修改成功
    在这里插入图片描述

    使用administrator账户登录,删除carlos
    在这里插入图片描述

    lab8:

    Insufficient workflow validation

    工作流验证不足

    目标给了账号让买商品

    号里有100刀,先随便购买一个便宜的place order并抓包

    POST /cart/checkout请求会重定向到订单确认页面

    在这里插入图片描述

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

    在这里插入图片描述

    成功购买

    在这里插入图片描述

    当将购买商品加入购物车
    在这里插入图片描述

    重新发包GET /cart/order-confirmation?order-confirmation=true

    在这里插入图片描述

    购买成功
    在这里插入图片描述

    lab9:

    Authentication bypass via flawed state machine

    通过有缺陷的状态机绕过认证

    目标给了用户管理界面删除carlos

    登录后有个选角色的界面

    在这里插入图片描述

    抓包登录

    在这里插入图片描述

    其中第二个包/role-selector好像是角色选取把它drop掉

    在这里插入图片描述

    现在路径如下

    https://0a6300dc03469877c024b48000ce0035.web-security-academy.net/role-selector
    
    • 1

    在这里插入图片描述

    删除/role-selector直接访问首页,因为跳过了角色选择默认为administrator当访问首页是以administrator权限进行访问的因此会有Admin panel

    在这里插入图片描述

    直接进入Admin panel删除carlos

    在这里插入图片描述

    lab10:

    Infinite money logic flaw

    无限金钱逻辑缺陷

    目标买商品

    在页面底端注册获得优惠券

    SIGNUP30
    
    • 1

    在这里插入图片描述

    使用优惠券购买Gift Card礼品卡(礼品卡相当于一个10元的购物券可以赠送),当用3元优惠券购买10元的礼品卡,就相当于7元购买了10元然后再进行使用用户的余额就会多了3元将优惠券金额转换为真实的余额。

    在这里插入图片描述

    购买后得到礼品卡的卡号

    YRhyyNYl8T
    
    • 1

    在这里插入图片描述

    在用户页面进行兑换

    在这里插入图片描述

    余额成功如预期一样增加了3元

    在这里插入图片描述

    如果优惠券可以重复使用,就可以利用该操作达到无限金额的效果,成功复用优惠券

    在这里插入图片描述

    接下来利用bp中的宏来进行完成一系列的自动化操作

    首先新建规则,范围包括所有的URL:

    在这里插入图片描述

    新建宏指令:

    在这里插入图片描述

    选择如下5个URL

    在这里插入图片描述

    为第四个URL配置项目
    在这里插入图片描述

    选择gift-card的code并起名gift-card

    在这里插入图片描述

    在这里插入图片描述

    为第五个URL配置项目

    在这里插入图片描述

    选择参数 gift-card 的来源自第四个响应包:

    在这里插入图片描述

    配置完毕后测试宏,账户成功又增加了3刀
    在这里插入图片描述

    sniper模式爆破/my-account
    在这里插入图片描述

    在这里插入图片描述

    需要单线程来跑,这个2022的burp

    在这里插入图片描述

    跑了很久终于跑完了

    在这里插入图片描述

    lab11:

    Authentication bypass via encryption oracle

    通过加密oracle绕过身份验证

    目标管理界面删除carlos

    登录界面,有stay logged in(保持登录状态)选项

    在这里插入图片描述

    勾选登录会有如下请求包

    在这里插入图片描述

    在评论区评论

    在这里插入图片描述

    拦截到如下请求:

    第一个包

    在这里插入图片描述

    第二个包

    在这里插入图片描述

    第三个包
    在这里插入图片描述

    当使用错误的电子邮箱评论时
    在这里插入图片描述

    响应会重定向到刚才的博客页面,并设置一个加密的cookie字段notification

    在这里插入图片描述

    在这里插入图片描述

    将cookie中的stay-logged-in字段复制到notification中进行发包得到当前用户名+时间戳

    wiener:1669636281964
    
    • 1

    在这里插入图片描述

    邮件参数更改为管理员用户名+时间戳

    administrator:1669636281964
    
    • 1

    发送请求后从cookie字段 得到新的 notification 的值,解密后发现有干扰字段 Invalid email

    在这里插入图片描述

    在这里插入图片描述

    将得到的新的 notification 利用 Burp Decoder进行解密加密

    Decode:

    URL=>Base64=>Hex删除23字节
    在这里插入图片描述

    Encode:

    Base64=>URL

    在这里插入图片描述

    最终得到

    %7a%7a%73%4c%34%6d%6f%68%30%6e%77%4d%34%53%55%76%70%78%73%31%5a%42%4f%4f%30%71%6a%4a%68%46%35%59%76%48%62%34%77%39%4e%69%6b%4d%65%79%57%73%39%6b%6c%50%46%73%77%39%49%3d
    
    • 1

    将编码替换到cookie 字段的 notification 值

    随后观察错误信息发现使用了基于块的加密算法,输入长度必须是16的倍数

    在这里插入图片描述

    用一些的字节来填充 email,最后获得新的 notification

    administrator + 时间戳

    xxxxxxxxxadministrator:1669636281964
    
    • 1

    在这里插入图片描述

    FklldvYsXP81Suq15eJd7AQ75jOjvpsPom8buuyniI5aMt2BY3cKBS2oxaIO%2b24xz3qDeQHraVMB0fT49MivDA%3d%3d
    
    • 1

    对字符串进行解码编码:

    Decode:

    URL=>Base64=>Hex删除32字节(16倍数)
    在这里插入图片描述

    Encode:

    Base64=>URL

    在这里插入图片描述

    最终得到如下编码,替换notification重发评论包可以看到正确的administrator + 时间戳

    %57%6a%4c%64%67%57%4e%33%43%67%55%74%71%4d%57%69%44%76%74%75%4d%63%39%36%67%33%6b%42%36%32%6c%54%41%64%48%30%2b%50%54%49%72%77%77%3d
    
    • 1

    在这里插入图片描述

    点击 HOME 回到主页,拦截请求包,删除cookie中的 session ,替换 stay-logged-in 为刚才解码的得到的URL编码,修改后放包
    在这里插入图片描述

    回到主页面后发现是以administrator身份登录的,有Admin panel的管理界面
    在这里插入图片描述

    删除carlos成功通关

    在这里插入图片描述

  • 相关阅读:
    系统学习Shell之正则表达式
    基于cifar数据集合成含开集、闭集噪声的数据集
    GET请求中传参List<String>的一些问题
    在maven官网中如何下载低版本的maven
    Scala继承
    vscode调教配置:快捷修复和格式化代码
    夏季预防声带息肉的方法有哪些?
    动环监控系统什么牌子好?动环监控有哪些厂家
    理解case when then else end 的使用,基础概念,建表语句,用例讲解
    【编译原理+句柄+入栈顺序从右至左+系统调用+win api+程序安排+acm ieee usenix信息】答疑
  • 原文地址:https://blog.csdn.net/qq_18980147/article/details/128087377