浅谈越权漏洞

本文最后更新于 2025年7月14日 凌晨

0、简介🚀

越权(Horizontal/Vertical Privilege Escalation)是渗透测试和 Web 安全审计中经常遇到的一种安全漏洞,通常出现在后台管理、用户敏感操作(如修改密码、查看订单、管理用户)等场景中。
越权简单来说就是用户通过非法手段访问或操作本不属于自己权限范围内的资源或功能,主要分为水平越权(同级用户之间)和垂直越权(低权限用户获取高权限操作能力)。


1、原理

​ 造成越权漏洞的根本原因是服务端没有对用户的操作做严格的权限校验 ⚠️。
很多开发者在前端或接口只依赖用户提交的 ID、用户名等参数,却没有在后端再次验证该用户是否对目标资源拥有实际权限。

常见的越权手段有:

  • ✏️ 修改请求参数(如用户 ID、订单号)。
  • 🕵️‍♂️ 调用隐藏接口或未授权接口。
  • 🎭 绕过前端验证直接使用抓包工具篡改请求。
  • 🔑 利用弱口令或信息泄露先拿到可用的目标 ID。

2、案例示例

​ 下面通过一个简单的示例演示如何通过抓包篡改参数实现越权:

Burp 抓请求包:

1️⃣ 使用普通用户 test 登录,抓取修改密码的请求包,发现参数里带有 admin_id=2

1
2
3
4
5

POST /update_password
...
admin_id=2\&new_password=123456

2️⃣ 将 admin_id 修改为 1(已知是管理员账号 ID):

1
2
3

admin_id=1\&new_password=123456

3️⃣ 发送修改后的请求,成功修改了管理员的密码,之后用新密码登录后台,即完成了越权 ✅。

示例截图:

img

img

img


3、危害

​ 越权漏洞通常危害严重 🚨,可能导致:

  • 🔓 非法获取他人敏感信息(如订单、用户资料)。
  • 👤 冒充他人进行操作(如转账、改密、发帖)。
  • 🛠️ 低权限用户执行管理操作,拿到后台控制权。
  • 📂 泄露公司内部敏感数据,导致重大损失。

4、常见场景

  • 🧾 用户资料查看和修改(如 user_id 参数可控)。
  • 📄 文件下载、查看历史订单等功能。
  • 🔒 后台管理接口未做二次身份校验。
  • 📱 移动端或小程序 API 漏洞,服务端只依赖 token 或参数。

5、防御与修复

​ 要有效防御越权漏洞,核心原则是后端必须进行权限校验 🔐,永远不要仅依赖前端验证。
常见防御措施包括:

  • ✅ 在服务端对每个请求做身份认证和授权检查。
  • 🔗 严格绑定资源与用户身份(如只能操作自己拥有的资源)。
  • 🚫 不信任客户端传来的任何用户 ID,使用后端获取的用户信息。
  • 🛡️ 对关键操作增加二次校验(如操作验证码、双因子认证)。
  • 🔍 定期进行渗透测试和代码审计。

6、总结

​ 越权是 Web 安全中十分常见且危害巨大的漏洞 💥,开发者和安全人员都需要重视,做到“不信任用户输入,权限在后端校验” 🔑。
对于渗透测试人员来说,通过逻辑分析、参数 fuzz 和漏洞挖掘,可以有效发现和利用此类漏洞,从而帮助企业修补薄弱环节,提升整体安全性 📈。