在银行、证券、金融等行业,普遍存在类似ERP、面向企业侧的各种管理、采购、供应商等系统。这类系统权限模型复杂、业务流程繁多,常因设计与逻辑疏忽导致严重的安全问题。本文基于实战经验,总结梳理了此类系统特有的12类常见高危漏洞,并提供详细的挖掘方法与案例,希望能为从事安全/渗透/逆向测试的朋友提供一份实战指南。
该类系统的常见功能与角色
典型的系统功能围绕企业注册与内部管理展开,其核心角色通常分为管理员、子管理员和员工,各自拥有不同的权限集。

常见高危漏洞挖掘详解
1. 短信伪造
漏洞描述:常见于注册、添加员工、各类通知功能处。由于短信内容中包含企业名称、组织名称等用户可控字段,且可以指定任意手机号发送,导致攻击者可伪造官方通知或钓鱼信息。
挖掘方法:测试时,仔细观察短信内容中的可控字段(如用户名、项目名、组织名),尝试修改这些字段为恶意内容。
1.1 注册处伪造
在注册页面,将用户名填写为恶意内容(如“恭喜中奖领奖链接test.com”),然后填写目标手机号获取验证码。


1.2 添加员工处伪造
先修改自己的个人用户名为恶意内容,然后在“新增用户”功能中,将手机号填写为受害者的。

1.3 各类通知短信处伪造
在项目管理、缴费通知等功能中,将可控的项目名称、组织名称等修改为恶意内容,再执行“发送短信”操作。


2. 审核绕过
漏洞描述:系统开发为图方便,仅在登录时通过某个接口校验账号的审核状态,登录后未做二次校验;或在注册时存在隐藏的账号类型字段,可手动修改绕过企业资质审核。
2.1 前端状态校验绕过
登录后,页面提示“审核中”,功能被前端隐藏或跳转。

通过浏览器开发者工具分析JS,找到判断审核状态的接口,使用抓包工具(如Burp Suite)设置响应包替换规则,将审核状态改为“已通过”。

替换后刷新或重新登录,即可访问完整功能界面。

2.2 注册账号类型绕过
提交注册时抓包,观察并修改status、type、accountType等可能代表账号状态的参数值(例如从待审核的2改为已通过的1)。

登录后台查询,账号状态直接显示为“通过”。

3. 实名认证接口爆破
漏洞描述:企业法人身份认证接口,需要正确匹配“姓名+身份证号”。若该接口未设置有效的验证码或频次控制,可被用于爆破公民身份信息,造成敏感信息泄露及第三方接口资源消耗。


挖掘方法:对实名认证接口进行高频请求测试,观察是否会触发锁定或返回不同的错误信息。
4. 垂直越权
漏洞描述:系统功能模块多,权限划分细,容易出现低权限账号(如普通员工)能访问高权限角色(如管理员)接口的情况。
挖掘方法:准备两个不同权限的账号A(低权)和B(高权)。用A账号登录并抓取访问某个功能的数据包,然后将数据包中的认证信息(如Cookie、Token)替换为B账号的,重放请求。如果成功返回数据,则存在越权。
5. 权限提升
漏洞描述:通过逻辑漏洞,低权限账号给自己或其他账号赋予更高权限。常见于账号信息修改、新增账号功能处。
挖掘方法:修改请求包中代表权限的字段,如role、roleId、account_type、types等。
5.1 修改自身账号权限
登录一个子账号。

进入信息编辑页面,点击保存时抓包。修改数据包中account_type等字段的值(可事先用主账号操作一次观察其值)。

再次登录,子账号已变为主账号权限。

5.2 新增高权限账号
以低权限子账号登录,进入“用户管理-添加账号”功能。

勾选一些可见的功能选项后保存抓包。观察数据包中权限ID的规律(如["2011", "2022"]),手动添加更多高权限ID(如通过Fuzz寻找1000-1200范围的ID)到数组中。

用新添加的账号登录,发现已拥有远超创建者自身权限的功能。

6. 权限回收不及时/权限维持
漏洞描述:管理员对某个账号进行降权或禁用操作后,由于目标账号登录态(Session/Token)未及时失效,导致其仍能以旧权限操作系统,甚至重新给自己提权。
复现步骤:
- 账号A(管理员)修改账号B(子管理员)的权限,取消其“企业管理”模块权限。


- 此时账号B并未被强制下线,仍可正常访问“企业管理”功能。
- 账号B重新调用赋权接口,给自己重新加上被取消的权限,绕过管理员的降权操作。

漏洞利用:攻击者可定时请求权限同步或提权接口,实现权限维持。
7. 静态敏感文件遍历
漏洞描述:系统上传的身份证、合同等敏感文件,若使用自增ID、短日期等可预测的规则命名,可能导致未授权访问与信息泄露。
挖掘方法:
- 在认证处上传一张身份证,记录返回的文件URL。


- 分析URL命名规则,例如
https://example.com/upload/20250415/123456.jpg。
- 遍历日期(
20250415)和序号(123456),尝试访问其他用户的敏感文件。
8. 压缩包解压DoS(压缩炸弹)
漏洞描述:在支持ZIP文件预览的功能点,上传一个精心构造的“压缩炸弹”(体积很小但解压后体积极大的压缩包),可能导致服务器在解压时CPU和磁盘I/O过载,造成拒绝服务。

复现案例:在新建代办事项功能处,上传一个压缩炸弹文件。

点击预览,触发服务器解压,消耗大量资源。

9. 账号覆盖
漏洞描述:在注册、修改信息等环节,未正确校验企业信用代码、手机号等唯一键是否已存在,导致新数据覆盖老数据。有时,系统仅在前置查询接口校验,最终提交接口存在逻辑缺陷。
9.1 注册覆盖
在注册页面,输入一个已存在的企业信用代码,但手机号填写自己的。

绕过或正常获取验证码后提交,可能成功注册并“覆盖”或“关联”了原企业,直接获得该企业下的账号权限。


9.2 信息修改覆盖
在企业信息维护页面,点击保存时抓包,将企业信用代码修改为其他已存在的企业代码。


提交后显示成功,此时目标企业的信息被篡改,甚至可能导致其账号无法登录。


10. 任意手机号注册/占用
漏洞描述:在“添加员工”等功能中,只需输入手机号而无需该手机号的验证码(验证由员工后续完成),导致攻击者可将任意手机号添加到自己的企业下,造成受害者无法正常注册该系统。
复现步骤:在添加用户功能中,手机号字段填入任意目标手机号。

提交后,该手机号即被系统占用,原机主可能无法自行注册或会收到莫名邀请。
总结
企业管理类系统业务逻辑复杂,是Web安全测试中的重点和富矿。上述漏洞多数源于业务流程设计缺陷与权限校验不严,在测试时需要深入理解系统业务,并善用抓包改包、并行测试、参数Fuzz等技巧。安全建设需要开发与测试共同努力,在功能迭代的同时筑牢安全防线。对这类话题感兴趣的开发者与安全从业者,也欢迎在云栈社区交流分享更多实战经验与防护方案。