找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

1422

积分

0

好友

204

主题
发表于 4 天前 | 查看: 16| 回复: 0

在获得授权的前提下,对一款校园官方App进行了安全测试,发现了多处严重的安全漏洞。本次测试主要围绕信息泄露、权限绕过等问题展开,以下是详细的分析与复现过程。

1. 敏感信息泄露

在App首页进行刷新操作并拦截数据包,发现响应中包含了当前用户的userId
图片

通过对该userId参数进行遍历,可以获取到大量其他学生和老师的个人信息。
图片
图片

泄露的数据包括学号、专业、宿舍地址、人脸照片等,总计约19000条。这些敏感信息为后续的渗透测试攻击提供了基础。

2. 水平越权(平行越权)

测试发现,通过修改请求中的userId,可以越权查看他人账号的所有信息。
在首页刷新后,从数据包中获取到userid
图片

将其修改为其他用户的ID(测试范围为:学生1-14590,老师14590-15000),然后放行数据包。
图片

随后在App界面点击相关功能模块,即可进入对应用户的详情页,成功查看到他人的通行记录、人脸信息、宿舍、班级、姓名等所有敏感数据,这属于典型的水平越权漏洞。
图片

3. 垂直越权

在首页数据包中,通过前置信息收集获取到的管理员账户特征(如persontype),修改普通用户的请求参数。
图片

修改后,普通用户界面出现了“考勤改签”等原本仅管理员可见的功能入口。
图片
图片

此漏洞允许低权限用户获得高权限功能接口的访问能力,存在垂直越权风险。

4. 越权修改他人人脸信息

此漏洞结合了信息泄露与权限缺陷。核心思路是:在登录账号A的前提下,截获修改人脸信息的请求,保留合法的Authorization请求头,但将请求体中的useridpersonId替换为目标用户B的ID,同时替换base64图片数据。

具体复现步骤:

  1. 通过遍历userId,确定目标账号B的userId=6299personId=6297
    图片
  2. 登录账号B,确认其原始人脸照片。
    图片
  3. 使用账号A抓取修改人脸的数据包,将Authorization头(从其他请求中获取)和userid/personId/base64数据替换为B的信息。
    图片
  4. 发送篡改后的数据包,提示修改成功。
    图片
  5. 再次登录账号B验证,发现其人脸照片已被替换为账号A上传的图片,证实存在越权修改漏洞。

5. 存储型XSS

在App的“宿舍考勤记录 -> 申请改签”功能中,存在一个图片上传点。
图片

选择图片后会自动上传。通过抓包,将上传文件的filename改为.svg后缀,并将文件内容替换为包含恶意JavaScript代码的SVG矢量图。
图片

上传成功后,响应中返回了文件的存储路径。
图片

虽然App端无法直接触发,但通过分析数据包中的Host字段,发现了对应的Web管理后台。使用App的账户密码可成功登录。在后台页面中,用户头像的加载链接格式为:https://host/evo-apigw/evo-oss/[文件路径]?token=[TOKEN]
图片

将链接中的[文件路径]部分替换为之前上传的恶意SVG文件路径,访问该链接即可成功触发存储型XSS
图片

本文涉及的所有漏洞均在授权测试后发现,并已提交给相关方完成修复。安全研究应始终在合法授权的范围内进行。




上一篇:Spring Security权限控制进阶:基于@PreAuthorize注解实现动态参数验证
下一篇:IntelliJ IDEA 2025.3.1紧急更新详解:SQL工作流回滚与WSL开发关键修复
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2025-12-24 20:53 , Processed in 0.335317 second(s), 40 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2025 云栈社区.

快速回复 返回顶部 返回列表