【Web安全】Portswigger 业务逻辑漏洞 Lab: Weak isolation on dual-use endpoint 实验:双重用途终端的弱隔离
目录一.实验环境二.双重用途终端的弱隔离账户登录漏洞分析漏洞利用三.小结一.实验环境实验室双重用途终端的弱隔离 |网络安全学院https://portswigger.net/web-security/logic-flaws/examples/lab-logic-flaws-weak-isolation-on-dual-use-endpoint二.双重用途终端的弱隔离账户登录使用题目为你提供的账号来进行登录操作使burpsuite能够获取所有的登录请求信息以便于观察。这里我们看到account页面有一个更新密码的操作我们先试着更新一下密码更新完成。漏洞分析接下来让我们根据题目的要求登录入administrator删除carlos。我们来观察请求。直接观察更改密码的请求题目对权限水平做出了错误假设那么我们可以尝试在修改密码的时候更改username由于它还会验证原本正确密码我们可以把它尝试删除。漏洞利用将请求放入repeater模块我们先来尝试修改username为administrator,并删除current-password防止校验以至于修改密码失败。发送请求观察响应。这里直接响应修改密码成功。我们尝试登录管理员账号。密码就是你刚刚修改的密码。登录成功。进入admin panel成功删除carlos。三.小结该实验室的漏洞源于一个双用途端点Dual-use Endpoint即一个接口承担了普通用户和管理员两种角色功能的权限隔离不足。具体来说更新密码的接口同时支持普通用户修改自己的密码也支持其他用户的密码服务端未对用户的实际权限和操作意图进行充分验证。攻击者可以利用该漏洞以普通用户身份发送修改密码的请求由于服务端错误地依据参数存在性而非当前会话角色来判定这是一个管理员操作进而越权修改了管理员的密码并随之触发密码重置流程最终劫持账户。为防范此类风险首先应当在每个独立操作Action级别进行严格的权限校验而非依赖请求参数的存在性来推断操作意图其次对于涉及用户身份变更、权限提升等敏感操作必须强制进行二次授权验证如要求当前用户再次提供密码或进行2FA验证防止跨请求伪造或越权执行同时权限控制应与当前会话的身份Session Identity强绑定所有操作均基于服务端存储的会话用户信息进行判断绝不可信任客户端提交的username或email等身份标识作为操作目标此外应对所有修改用户核心属性如邮箱、密码的行为实施全面的日志记录与实时监控以便在发生异常时能够及时追溯和响应最后在设计API时应遵循最小权限原则将普通用户操作与管理员操作明确划分为不同的独立端点并分别施加相应的身份验证与授权检查避免因端点功能混杂而引入逻辑缺陷。