burp靶场–业务逻辑漏洞https://portswigger.net/web-security/logic-flaws#what-are-business-logic-vulnerabilities### 什么是业务逻辑漏洞 业务逻辑漏洞是应用程序设计和实现中的缺陷允许攻击者引发意外行为。这可能使攻击者能够操纵合法功能来实现恶意目标。这些缺陷通常是由于未能预见可能发生的异常应用程序状态而导致的因此未能安全地处理它们。实验1:过度信任客户端控制【购物车商品价格修改导致低价购买商品】### 实验要求 该实验室没有充分验证用户输入。您可以利用其采购工作流程中的逻辑缺陷以意想不到的价格购买商品。要解决实验室问题请购买“轻量级l33t皮夹克”。 您可以使用以下凭据登录您自己的帐户wiener:peter ### 运行 Burp 后登录并尝试购买皮夹克。由于您没有足够的商店积分订单被拒绝。 在 Burp 中转到“代理”“HTTP 历史记录”并研究订单流程。请注意当您将商品添加到购物车时相应的请求包含一个price参数。将POST /cart请求发送到 Burp Repeater。 在 Burp Repeater 中将价格更改为任意整数并发送请求。刷新购物车并确认价格已根据您的输入进行更改。 重复此过程将价格设置为低于您可用商店积分的任意金额。 完成解决实验室的命令。实验2:高级逻辑漏洞### 实验要求 该实验室没有充分验证用户输入。您可以利用其采购工作流程中的逻辑缺陷以意想不到的价格购买商品。要解决实验室问题请购买“轻量级l33t皮夹克”。 您可以使用以下凭据登录您自己的帐户wiener:peter ### 实验操作 运行 Burp 后登录并将便宜的商品添加到您的购物车。 在Burp中转到“代理”“HTTP历史记录”并研究相应的HTTP消息。请注意数量由POST /cart请求中的参数确定。 转到“拦截”选项卡并打开拦截。将另一个项目添加到您的购物车并转到POST /cartBurp 中拦截的请求。 将参数更改quantity为任意整数然后转发任何剩余的请求。您会发现购物车中的数量已根据您的输入成功更新。 重复此过程但这次请求负数。检查是否已成功从购物车数量中扣除。 请求合适的负数量以从购物车中删除比当前包含的更多的商品。确认您已成功强制购物车包含负数量的产品。转到您的购物车请注意总价现在也是负数。 像往常一样将皮夹克添加到您的购物车。添加另一个商品的适当负数量以将总价降低到低于您的剩余商店积分。 下订单解决实验室问题。支付成功发现实验未完成需要购物l33t商品才行重新修改商品购物车总价为正指定商品l33t为正数购买成功。实验3:安全控制不一致###【管理接口鉴定权限错误修改账号邮箱地址未校验导致管理接口以邮箱号为权限认定方式导致绕过】### 实验要求 该实验室有缺陷的逻辑允许任意用户访问仅应由公司员工使用的管理功能。要解决该实验请访问管理面板并删除用户carlos。 ### 实验操作 打开实验室然后转到 Burp 中的“目标”“站点地图”选项卡。右键单击实验室域并选择“参与工具”“发现内容”以打开内容发现工具。 单击“会话未运行”以开始内容发现。片刻之后查看对话框中的“站点地图”选项卡。请注意它发现了路径/admin。 尝试浏览到/admin. 尽管您无权访问但错误消息表明DontWannaCry用户有访问权限。 进入账户注册页面。请注意通知DontWannaCry员工使用公司电子邮件地址的消息。使用任意电子邮件地址注册格式如下 anythingyour-email-id.web-security-academy.net 您可以通过单击“电子邮件客户端”按钮找到您的电子邮件域名。 前往邮件客户端点击确认邮件中的链接即可完成注册。 使用您的新帐户登录并转到“我的帐户”页面。请注意您可以选择更改您的电子邮件地址。将您的电子邮件地址更改为任意dontwannacry.com地址。 请注意您现在可以访问管理面板您可以在其中删除carlos以解决实验进入站点进行用户注册注册邮件账户实验实验室提供的账户attackerexploit-0a3900ac03381e4f801cca3001230032.exploit-server.net点击邮箱确认账户注册成功实验4:业务规则执行存在缺陷【优惠券功能逻辑错误导致低价购买商品】### 实验要求 该实验室的采购流程存在逻辑缺陷。要解决实验室问题请利用此缺陷购买“轻量级 l33t 皮夹克”。 您可以使用以下凭据登录您自己的帐户wiener:peter ### 实验操作 登录并注意有一个优惠券代码NEWCUST5。 在页面底部注册新闻通讯。您会收到另一个优惠券代码SIGNUP30。 将皮夹克添加到您的购物车。 前往结账台并应用两个优惠券代码即可获得订单折扣。 尝试多次应用这些代码。请注意如果您连续两次输入相同的代码则会被拒绝因为优惠券已被应用。但是如果您交替使用这两个代码则可以绕过此控制。 重复使用这两个代码足够多的次数将您的订单总额减少到少于剩余的商店积分。完成解决实验室的命令。未登陆状态下访问站点获得另一个优惠券实验5:低级逻辑缺陷登录账号购买商品的数量一次最多可以 99可以用 Burp 的 intruder 送到 Overflow### 实验要求 该实验室没有充分验证用户输入。您可以利用其采购工作流程中的逻辑缺陷以意想不到的价格购买商品。要解决实验室问题请购买“轻量级l33t皮夹克”。 您可以使用以下凭据登录您自己的帐户wiener:peter ### 实验操作 运行 Burp 后登录并尝试购买皮夹克。由于您没有足够的商店积分订单被拒绝。在代理历史记录中研究订单流程。将POST /cart请求发送到 Burp Repeater。 在 Burp Repeater 中请注意您只能为每个请求添加 2 位数字的数量。将请求发送给 Burp Intruder。 转到打嗝入侵者。在“位置”选项卡上将quantity参数设置为99。 在“有效负载”选项卡上选择有效负载类型“空有效负载”。在“有效负载设置”下选择“无限期继续”。开始攻击。 当攻击正在进行时转到您的购物车。经常刷新页面并监控总价。最后请注意价格突然切换为一个大的负整数并开始向 0 递增。价格已超过后端编程语言允许的整数最大值 (2,147,483,647)。结果该值已循环回最小可能值 (-2,147,483,648)。 清理你的购物车。在接下来的几个步骤中我们将尝试添加足够的单位以便价格循环并稳定在 0 美元到剩余商店积分的 100 美元之间。仅使用皮夹克在数学上是不可能的。请注意夹克的价格以美分存储 (133700)。 再次创建相同的入侵者攻击但这一次在“有效负载”“有效负载设置”下选择生成准确的323有效负载。 转到“资源池”选项卡将攻击添加到“最大并发请求数”设置为 的资源池中1。开始攻击。 当 Intruder 攻击完成后转到POST /cartBurp Repeater 中的请求并发送单个47夹克请求。订单的总价现在应该是-$1221.96。 使用 Burp Repeater 将适量的其他商品添加到您的购物车使总金额在 0 美元到 100 美元之间。 下订单解决实验室问题。无限重放总价数据有负数有正数转化说明存在溢出32bit的整形溢出 -2,147,483,648到2,147,483,647范围由于上面fuzz一直在跳动无法在总价在0-100之间停下所以重新设置intruder设置生成232次空复制测试添加其他商品用同样的方法在intruder操作直到总金额为0-100实验6:对异常输入的处理不一致### 实验要求 该实验室没有充分验证用户输入。您可以利用其帐户注册过程中的逻辑缺陷来访问管理功能。要解决该实验请访问管理面板并删除用户carlos。 ### 实验操作 通过 Burp 代理流量时打开实验室并转到“目标”“站点地图”选项卡。右键单击实验室域并选择“参与工具”“发现内容”以打开内容发现工具。 单击“会话未运行”以开始内容发现。片刻之后查看对话框中的“站点地图”选项卡。请注意它发现了路径/admin。 尝试浏览到/admin. 尽管您无权访问但错误消息表明DontWannaCry用户有访问权限。 进入账户注册页面。请注意通知DontWannaCry员工使用公司电子邮件地址的消息。 通过实验室横幅中的按钮打开电子邮件客户端。记下您的电子邮件服务器域名中的唯一 ID ( YOUR-EMAIL-ID.web-security-academy.net)。 返回实验室并使用非常长的电子邮件地址进行注册格式如下 very-long-stringYOUR-EMAIL-ID.web-security-academy.net 长度应very-long-string至少为 200 个字符。 转到电子邮件客户端您会发现您已收到一封确认电子邮件。单击该链接即可完成注册过程。 登录并进入“我的帐户”页面。请注意您的电子邮件地址已被截断为 255 个字符。 注销并返回帐户注册页面。 使用另一个长电子邮件地址注册一个新帐户但这一次将dontwannacry.com子域包含在您的电子邮件地址中如下所示 very-long-stringdontwannacry.com.YOUR-EMAIL-ID.web-security-academy.net 确保 的very-long-string字符数正确以便m末尾的“ ”dontwannacry.com恰好是字符 255。 转到电子邮件客户端然后单击您收到的确认电子邮件中的链接。登录到您的新帐户您会发现您现在可以访问管理面板。确认电子邮件已成功发送到您的电子邮件客户端但应用程序服务器将与您的帐户关联的地址截断为 255 个字符。因此您能够使用看似有效的dontwannacry.com地址进行注册。您可以从“我的帐户”页面确认这一点。 转到管理面板并删除carlos以解决实验室问题。使用实验室给定的邮箱账户注册一个站点的账户attacker:111 注册玩登陆看到自己的邮箱账户使用构造的超长字符串邮箱注册实验7:双用端点的弱隔离【重置密码修改参数实现重置任意账户密码】### 实验要求 该实验室根据用户的输入对用户的权限级别做出了有缺陷的假设。因此您可以利用其帐户管理功能的逻辑来访问任意用户的帐户。要解决本实验请访问administrator帐户并删除用户carlos。 您可以使用以下凭据登录您自己的帐户wiener:peter ### 实验 操作 运行 Burp 后登录并访问您的帐户页面。 更改您的密码。 研究POST /my-account/change-passwordBurp Repeater 中的请求。 请注意如果您current-password完全删除该参数则无需提供当前密码即可成功更改密码。 观察发现修改密码的用户是由该username参数确定的。再次设置usernameadministrator并发送请求。 注销并注意您现在可以administrator使用刚刚设置的密码成功登录。 转到管理面板并删除carlos以解决实验室问题。实验8:工作流程验证不足### 实验要求 该实验室对采购工作流程中的事件顺序做出了有缺陷的假设。要解决实验室问题请利用此缺陷购买“轻量级 l33t 皮夹克”。 您可以使用以下凭据登录您自己的帐户wiener:peter ### 实验操作 运行 Burp 后登录并使用商店积分购买任何您能买得起的商品。 研究代理历史。请注意当您下订单时POST /cart/checkout请求会将您重定向到订单确认页面。发送GET /cart/order-confirmation?order-confirmationtrue到 Burp Repeater。 将皮夹克添加到您的购物篮中。 在Burp Repeater中重新发送订单确认请求。请注意订单已完成且成本未从您的商店信用中扣除并且实验室已解决。实验9:通过有缺陷的状态机绕过身份验证### 实验要求 该实验室对登录过程中的事件顺序做出了有缺陷的假设。要解决该实验室问题请利用此缺陷绕过实验室的身份验证访问管理界面并删除用户carlos。 您可以使用以下凭据登录您自己的帐户wiener:peter ### 实验操作 运行 Burp 后完成登录过程并注意您需要选择您的角色然后才能进入主页。 使用内容发现工具来识别/admin路径。 尝试直接从角色选择页面浏览/admin并观察到这不起作用。 注销然后返回登录页面。在Burp中打开代理拦截然后登录。 转发POST /login请求。下一个请求是GET /role-selector. 放弃此请求然后浏览到实验室的主页。请注意您的角色已默认为该administrator角色并且您可以访问管理面板。 删除carlos解决实验室。正常用户wiener登陆无法访问控制面板丢弃角色请求实验10:无限金钱逻辑缺陷### 实验要求 该实验室的采购流程存在逻辑缺陷。要解决实验室问题请利用此缺陷购买“轻量级 l33t 皮夹克”。 您可以使用以下凭据登录您自己的帐户wiener:peter ### 实验操作 该解决方案使用 Burp Intruder 来自动化购买和兑换礼品卡的过程。精通 Python 的用户可能更喜欢使用 Turbo Intruder 扩展。 运行 Burp 后登录并注册新闻通讯以获取优惠券代码SIGNUP30。请注意您可以购买 10 美元的礼品卡并从“我的帐户”页面兑换。 将礼品卡添加到您的购物篮中然后前往结账。使用优惠券代码即可享受 30% 的折扣。完成订单并将礼品卡代码复制到剪贴板。 前往您的帐户页面并兑换礼品卡。请注意整个过程已为您的商店积分增加了 3 美元。现在您需要尝试自动化此过程。 gift-card研究代理历史记录并注意您通过在请求参数 中提供代码来兑换礼品卡POST /gift-card。 转到“项目选项”“会话”。在“会话处理规则”面板中单击“添加”。“会话处理规则编辑器”对话框打开。 在对话框中转到“范围”选项卡。在“URL 范围”下选择“包括所有 URL”。 返回“详细信息”选项卡。在“规则操作”下单击“添加”“运行宏”。在“选择宏”下再次单击“添加”以打开宏记录器。 选择以下请求序列 POST /cart POST /cart/coupon POST /cart/checkout GET /cart/order-confirmation?order-confirmedtrue POST /gift-card 然后单击“确定”。宏编辑器打开。 在请求列表中选择GET /cart/order-confirmation?order-confirmedtrue。单击“配置项目”。在打开的对话框中单击“添加”以创建自定义参数。为参数命名gift-card并突出显示响应底部的礼品卡代码。单击“确定”两次返回宏编辑器。 选择POST /gift-card请求并再次单击“配置项目”。在“参数处理”部分中使用下拉菜单指定参数gift-card应源自先前的响应响应 4。单击“确定”。 在宏编辑器中单击“测试宏”。查看响应GET /cart/order-confirmation?order-confirmationtrue并记下生成的礼品卡代码。看看POST /gift-card请求。确保gift-card参数匹配并确认收到响应302。继续单击“确定”直到返回 Burp 主窗口。 将请求发送GET /my-account给 Burp Intruder。使用“狙击手”攻击类型。 在“有效负载”选项卡上选择有效负载类型“空有效负载”。在“有效负载设置”下选择生成412有效负载。 转到“资源池”选项卡将攻击添加到“最大并发请求数”设置为 的资源池中1。开始攻击。 攻击结束后您将有足够的商店信用来购买夹克并解决实验室问题。签到领优惠券Dm1MR5tYm2兑换礼品卡将上述过程使用burp变成自动化POST /cart 将礼品卡加入购物车 POST /cart/coupon 使用优惠券 POST /cart/checkout 结账 GET /cart/order-confirmation?order-confirmedtrue 确认订单 POST /gift-card 兑换礼品卡实验11:通过加密oracle绕过身份验证### 实验要求 该实验室存在一个逻辑缺陷该缺陷会向用户公开加密预言。要解决该实验室问题请利用此缺陷来访问管理面板并删除用户carlos。 您可以使用以下凭据登录您自己的帐户wiener:peter ### 实验操作 启用“保持登录状态”选项登录并发表评论。使用 Burp 的手动测试工具研究相应的请求和响应。观察stay-logged-incookie 是否已加密。 请注意当您尝试使用无效的电子邮件地址提交评论时响应会notification在将您重定向到博客文章之前设置一个加密的 cookie。 请注意错误消息以email明文形式反映了您从参数中输入的内容 Invalid email address: your-invalid-email 推断这必须从notificationcookie 中解密。将当前请求POST /post/comment和后续GET /post?postIdx请求包含通知 cookie发送到 Burp Repeater。 在Repeater中观察到您可以使用请求email的参数POST来加密任意数据并在标头中反映相应的密文Set-Cookie。同样您可以使用请求notification中的 cookieGET来解密任意密文并将输出反映在错误消息中。为简单起见双击每个请求的选项卡并分别重命名选项卡encrypt和decrypt。 在解密请求中复制您的stay-logged-incookie 并将其粘贴到notificationcookie 中。发送请求。响应现在包含解密的stay-logged-incookie而不是错误消息例如 wiener:1598530205184 这表明 cookie 的格式应为username:timestamp. 将时间戳复制到剪贴板。 转到加密请求并将电子邮件参数更改为administrator:your-timestamp。发送请求然后notification从响应中复制新的 cookie。 解密这个新的 cookie并观察到 ​​23 个字符的“ Invalid email address: ”前缀会自动添加到您使用email参数传入的任何值中。将notificationcookie 发送到 Burp Decoder。 在解码器中对 cookie 进行 URL 解码和 Base64 解码。 在 Burp Repeater 中切换到消息编辑器的“十六进制”选项卡。选择前 23 个字节然后右键单击并选择“删除所选字节”。 重新编码数据并将结果复制到notification解密请求的cookie中。发送请求时观察有错误提示说明使用的是基于块的加密算法且输入长度必须是16的倍数需要在“ Invalid email address: ”前缀中填充足够的字节使得字节数您将删除 16 的倍数。 在 Burp Repeater 中返回加密请求并在预期 cookie 值的开头添加 9 个字符例如 xxxxxxxxxadministrator:your-timestamp 加密该输入并使用解密请求来测试它是否可以成功解密。 将新密文发送到 Decoder然后对其进行 URL 和 Base64 解码。这次删除数据开头的 32 个字节。重新编码数据并将其粘贴到notification解密请求中的参数中。检查响应以确认您的输入已成功解密并且最重要的是不再包含“ Invalid email address: ”前缀。你应该只看到administrator:your-timestamp. 从代理历史记录中将GET /请求发送到 Burp Repeater。完全删除该sessioncookie并stay-logged-in用您自制的cookie的密文替换该cookie。发送请求。请注意您现在已以管理员身份登录并有权访问管理面板。 使用 Burp Repeater浏览/admin并注意删除用户的选项。浏览至/admin/delete?usernamecarlos求解实验室。参考### BurpSuite靶场系列之逻辑漏洞 https://www.cnblogs.com/yii-ling/p/17152071.html#5-low-level-logic-flaw https://mp.weixin.qq.com/s/rHFsfj8i4uXpadf9_A4IXg ### portswigger业务逻辑漏洞 https://portswigger.net/web-security/logic-flaws#what-are-business-logic-vulnerabilities ### PayloadsAllTheThings业务逻辑错误 https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/Business%20Logic%20Error ### owasp业务逻辑漏洞 https://owasp.org/www-community/vulnerabilities/Business_logic_vulnerability ### 干货 | 业务逻辑漏洞挖掘总结 https://mp.weixin.qq.com/s/3EoBtqaS4KhZfmrLDr6hSQ ### 【Web渗透】业务逻辑漏洞 https://mp.weixin.qq.com/s/qvvlaE3inyzQzE5akOt9PA https://mp.weixin.qq.com/s/XgXC_zGPGkO8uBahhTK5Uw最后关于网络安全技术储备学好网络安全不论是就业还是做副业赚钱都不错但要学会网络安全还是要有一个学习规划。最后大家分享一份全套的网络安全学习资料给那些想学习网络安全的小伙伴们一点帮助对于0基础小白入门如果你是零基础小白想快速入门网络安全是可以考虑的。一方面是学习时间相对较短学习内容更全面更集中。二方面是可以找到适合自己的学习方案包括网安成长学习路线图、SRC黑客文档、护网行动、黑客必读书单、面试题、学习视频等教程。带你从零基础系统性的学好网络安全需要的可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】1.成长路线图学习规划要学习一门新的技术作为新手一定要先学习成长路线图方向不对努力白费。对于从来没有接触过网络安全的同学我们帮你准备了详细的学习成长路线图学习规划。可以说是最科学最系统的学习路线大家跟着这个大的方向学习准没问题。2.网安入门到进阶视频教程很多朋友都不喜欢晦涩的文字我也为大家准备了视频教程其中一共有21个章节每个章节都是当前板块的精华浓缩。全套教程文末领取哈3.SRC黑客文档大家最喜欢也是最关心的SRC技术文籍黑客技术也有收录SRC技术文籍黑客资料由于是敏感资源这里不能直接展示哦全套教程文末领取哈4.护网行动资料其中关于HW护网行动也准备了对应的资料这些内容可相当于比赛的金手指5.黑客必读书单随着互联网技术的飞速发展网络安全已经成为了当今科技领域的一大热点。这些SQL注入、CCNA、Web渗透、Linux服务器等以其强大的语言理解和防御能力正在守护着我们网络世界。 那以下这些PDF籍就是非常不错的学习资源。6.网络安全岗面试题合集当你自学到这里你就要开始思考找工作的事情了而工作绕不开的就是真题和面试题。这份完整版的网络安全学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】