news 2026/10/20 16:59:34

越权漏洞实战|期刊投稿系统水平越权,可操作他人稿件

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
越权漏洞实战|期刊投稿系统水平越权,可操作他人稿件

前言

在 Web 渗透测试中,业务逻辑类漏洞往往容易被开发忽视,水平越权属于高频出现的中危业务漏洞。本次测试对象为某期刊投稿网站,系统存在稿件操作接口未校验请求用户与稿件归属关系,攻击者可篡改请求 ID,直接对其他用户的投稿执行撤稿操作,影响业务数据真实性。本文完整记录本次漏洞复现全过程。

漏洞 / 测试基础信息

项目详情
漏洞类型水平越权(中危)
资产环境互联网公网资产
测试所需账号需要注册 2 个普通投稿账号
漏洞现象篡改请求中的稿件 ID,可越权撤销其他用户的投稿稿件,后台可收到越权产生的撤稿请求
漏洞原理

后端仅通过前端传入的稿件id参数执行业务操作,没有校验当前登录用户是否为该稿件所属作者

漏洞思路梳理

  1. 业务场景:期刊投稿系统,每个账号管理自己提交的稿件,正常逻辑只允许操作本人稿件。
  2. 观察功能点:撤稿功能请求携带稿件 id 参数,id 由前端可控。
  3. 猜想:后端是否只根据 id 处理业务,没有校验账号‑稿件的所属绑定关系。
  4. 验证思路:两个不同账号各自投稿,抓包修改请求里的稿件 id,使用 A 账号的会话,传入 B 账号的稿件 id,观察是否可以成功执行撤稿。
  5. 结果:接口未做权限校验,成功越权操作他人稿件。

实操 / 测试流程

测试前置:注册 2 个独立账号,两个账号分别提交一篇测试稿件。

  1. 使用账号 A 登录系统,进入已投稿件页面,页面存在撤稿功能按钮,点击撤稿,观察 URL / 请求数据包,发现请求参数携带稿件id字段,该字段标识待操作的稿件。
  2. 使用 Burp Suite 抓取账号 A 执行撤稿操作的完整流量包。
  3. 修改抓包数据包,将数据包内的稿件 id,替换为账号 B 提交的稿件 id。

  1. 将修改之后的数据包发送到服务端。
  2. 观察页面返回结果:原本是账号 A 的撤稿界面,页面内容切换为账号 B 的稿件信息,成功触发针对账号 B 稿件的撤稿流程。

  1. 后台收到了越权操作产生的撤稿信息,完成越权漏洞验证。

漏洞总结

核心问题

业务接口执行撤稿逻辑时,仅信任前端传入的稿件 ID 参数,缺少服务端权限校验,没有校验当前登录用户是否拥有该稿件的操作权限。攻击者仅需要普通用户账号,修改请求参数 id,就可以访问、操作其他同级别用户的业务数据。

漏洞危害

  1. 恶意用户可以越权撤销其他作者的投稿稿件,干扰期刊正常投稿业务流程。
  2. 可以篡改、查看其他用户稿件信息,造成业务数据被非法篡改。
  3. 造成期刊稿件数据混乱,对平台公信力造成损害。

修复建议

  1. 服务端强制校验权限(最重要):执行稿件查询、撤稿、编辑等所有稿件相关接口,后端必须根据 session/token 拿到当前登录用户身份,在数据库校验:当前登录用户ID == 稿件所属作者ID,校验不通过直接拒绝请求返回无权限,不能只依赖前端传入的稿件 id 做业务处理。
  2. 禁止完全信任前端可控参数,所有业务对象 ID,后端必须做权限鉴权,不能直接拿来执行数据库操作。
  3. 对业务逻辑接口增加安全测试,针对越权做专项测试用例,覆盖增删改查各类业务动作。
  4. 日志记录:记录稿件操作行为,记录操作人、稿件 id,方便出现异常行为时溯源审计。

测试心得

  1. 水平越权多出现在业务系统,重点关注业务功能:编辑、删除、撤回、查询等,观察 URL、请求 body 中是否存在 id、articleId 等对象标识参数。
  2. 越权漏洞属于业务逻辑漏洞,waf 很难拦截,更多需要代码层面、业务层做校验。
  3. 复现越权漏洞,必备两个权限相同的测试账号,一个账号抓包,替换另一个账号业务对象 ID 进行验证。

安全声明

⚠️本文中所有内容仅为安全研究、渗透测试学习交流使用,禁止未经授权对非自有资产进行任何渗透、漏洞测试行为,未经授权测试属于违法行为。所有测试操作应当在获得书面授权的测试环境中开展。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/20 16:58:06

构建可验证、可组合、可进化的技能操作系统

1. 项目概述:当“skills”不再只是简历上的单词,而成为可验证、可组合、可进化的个人能力操作系统最近在几个技术社区和职业发展论坛里,“skills”这个词高频出现,但几乎没人把它当真——它被塞进简历末尾的“技能栏”&#xff0c…

作者头像 李华
网站建设 2026/10/20 16:57:33

融合黎曼几何与物理信息神经网络的轴承退化趋势预测

去年接手某个轴承退化趋势预测任务时,我被一个现象卡了很久:振动特征在健康阶段波动极小,各种深度学习模型的预测都贴着实测走;可一旦设备进入早期退化段,模型的预测曲线就开始“犹豫”,要么滞后几个采样周…

作者头像 李华
网站建设 2026/10/20 16:55:52

最大似然估计入门:从概率原理到机器学习损失函数

最大似然估计这东西,我从上学那会儿就在啃,后来工作做数据分析、搞机器学习模型,发现它简直是绕不过去的坎。不管你是做回归、分类、聚类,还是做时序预测,最后几乎都要跟它打照面。很多初学者一上来就去看各种教材里的…

作者头像 李华
网站建设 2026/10/20 16:55:10

Agent模型选型:从‘聪明’到‘敢用’的工程化评估

1. 为什么这句标题像一记耳光打在AI从业者的脸上“给 Agent 选模型:先别问哪个聪明,问哪个你敢用”——这句话我第一次看到时,手里的咖啡杯差点没拿稳。不是因为它多新颖,而是它太真实、太扎心,直接戳穿了过去两年里我…

作者头像 李华
网站建设 2026/10/20 16:55:09

Karpathy斯坦福AI课讲稿精读:工程化落地与架构直觉培养

1. 这不是一场“听懂就行”的演讲:为什么Karpathy的斯坦福AI课讲稿值得逐句精读你可能已经看过那场被全网反复搬运的视频——某位知名AI研究者站在斯坦福讲台前,白板上潦草写着x x dx,语速不快,却让台下学生频频低头记笔记。但如…

作者头像 李华
网站建设 2026/10/20 16:54:01

Miniconda完全指南:环境隔离、包管理与项目复现实战

1. 为什么我最终选了Miniconda 先坦白说一句,入行这些年,我在环境管理这件事上踩过的坑,比写过的代码还多。早期用Python做项目,动不动就"pip install"全装到系统环境里,结果就是某天装一个深度学习框架&…

作者头像 李华