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的关键。

相关推荐
公众号/头条号:技术很有趣2 小时前
网页接口请求安全链路完整分析
安全
CHENKONG_CK2 小时前
晨控CK-UR08与汇川AC系列PLC配置EtherNet/IP通讯连接手册
网络·网络协议·自动化·ethernet/ip·汇川·rfid
BS_Li2 小时前
【Linux网络编程】Socket编程UDP
linux·网络·udp
IP老炮不瞎唠2 小时前
SOCKS5 vs HTTP:哪种代理协议更适合你的业务场景
网络·网络协议·http
智算菩萨3 小时前
【Pygame】第19章 网络多人游戏基础与局域网联机原理
网络·python·游戏·pygame
mounter6253 小时前
深度解析 Linux 内核 devlink:从硬件控制到跨功能速率调度的演进
linux·运维·服务器·网络·内核
中科三方3 小时前
HTTP劫持与DNS劫持有什么区别?如何识别和防范?
网络·网络协议·http·dns
chipsense3 小时前
从毫安预警到安培计量:芯森电子FR系列传感器在储能安全与管理中的协同应用
安全·储能·磁通门传感器
福尔摩斯张3 小时前
一文搞懂74HC595芯片(附详细使用方法)
linux·服务器·网络·单片机·嵌入式硬件