User ID controlled by request parameter with password disclosure-Burp 复现

User ID controlled by request parameter with password disclosure-Burp 复现

实验信息

  • 平台:PortSwigger Web Security Academy

  • 漏洞:Access Control

  • Lab: User ID controlled by request parameter with password disclosure

  • 难度:Apprentice

漏洞原理

该场景属于Broken Access Control (访问控制失效) ,原理是 Horizontal to vertical privilege escalation(越权访问)漏洞。核心原因是服务器端未对请求参数中的用户标识(User ID)进行严格的权限校验,仅通过前端传入的id参数判断用户身份,未验证当前登录用户是否有权限访问该id对应的资源。同时,系统将敏感信息(如管理员密码)直接嵌入前端页面代码中,未做任何加密或隐藏处理,导致普通用户可通过修改id参数,越权访问管理员账户信息,并获取明文密码,进而实现从普通用户到管理员的权限提升,最终破坏系统的机密性(Confidentiality)和完整性(Integrity)

Lab 6:

  1. 在登录成功后直接进行越权将id改为administrator,可以看到status code is 200 ok

  2. 在Response的frontend窗口可以看见敏感信息,包括admin panel的URL以及administrator password

  1. 既然retrieve the URL /admin,试着能否直接进入控制面板破坏Integrity,发现这里是做了防护措施
  1. 不过可以通过administrator password进行登录,这时可以Get /admin 进入控制面板将用户Carlos删掉

5.lab solved!

利用Payload

复制代码
 Get /myaccount?id=administrator

将个人id改成管理员身份

复制代码
 Get /admin

访问admin panel

这些都在之前的lab中得到充分的练习

个人总结

  • 第一, 如何利用这个漏洞?

普通用户身份可以直接修改URL并通过前端页面获取管理员身份信息,越权访问并修改内部文件

  • 第二,为什么会产生这个漏洞?

没有进行用户身份校验;把个人密码敏感信息直接prefilled in input box, 前端页面可以直接查看

  • 第三,如何修复这个漏洞?

登录的用户身份校验authentication是必不可少的;密码不能明文暴露在前端。

至此,Access control类型的基础lab solved,可以发现很多的漏洞都是直接把个人信息放到前端,那么这不能保证Confidential,这些lab完成的条件都是将Carlos删除,Integrity也不能保障,administrator作为最高权限用户,在这些lab中身份验证的缺失就是导vulnerability的关键。

相关推荐
Flynt4 天前
npm v12 来了:allowScripts 默认关闭,我的项目差点跑不起来
安全·npm·node.js
冬奇Lab9 天前
Skill 系列(02):Skill 安全风险——三类攻击面的实战测试
人工智能·安全·开源
Aphasia31112 天前
VPN 与内网穿透
安全
Mr_愚人派13 天前
当"Claude"不再是 Claude:一次第三方 API 代理引发的 AI 身份伪造排查实录
人工智能·安全
DaLi Yao14 天前
【无标题】
人工智能·安全
Alsn8614 天前
等待学习-学习目录:Docker 容器安全攻防
学习·安全·docker
网络研究院14 天前
2026年网络安全
网络·安全·法律·法规·趋势·发展
酣大智14 天前
ARP代理--工作原理
运维·网络·arp·arp代理
treesforest14 天前
AI安全系统如何识别异常访问?IP风险识别正在成为关键能力
网络·人工智能·tcp/ip·安全·web安全
shushangyun_14 天前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化