Edu实战-某高校信息系统代码审计

声明

本文涉及的目标源码来源于前期信息收集阶段。出于安全与合规考虑,源码获取方式及相关细节不再赘述,仅对代码审计过程和漏洞分析进行分享,文中涉及的敏感信息均已进行脱敏处理。

BaseController 认证绕过分析

代码分析

在审计 API 模块时发现,大部分接口均继承自 BaseController,因此优先从该控制器入手分析认证逻辑

进入 BaseController 后发现定义了一处 Token 常量,但在当前文件中并未找到具体调用位置。随后继续跟踪控制器继承关系,在 RestController 中发现同样定义了相关 Token 参数。

进一步分析发现系统通过 token_check 方法进行身份校验。该方法会优先获取请求中的 private_token 参数,当参数不存在时则从 HTTP Header 中读取 Token 值,并与系统预设常量进行比较。

当校验通过时允许访问接口,否则返回 403 状态码。

漏洞复现

为了验证漏洞影响,选择了一处用户信息查询接口进行测试。该接口会从缓存中读取用户数据并返回。

实际测试过程中发现,private_token 参数无法正常完成认证,而通过 Header 传递 Token 时能够成功访问接口,导致相关接口存在认证绕过风险。利用该问题可直接访问部分敏感接口,其中某接口可返回系统用户信息。由于用户 ID 并非连续分布,因此仅获取到部分用户数据。

密码加密分析

获取用户数据后发现密码字段以密文形式存储,因此进一步分析登录模块的密码校验逻辑。

返回的密码字段为密文,继续跟进登录逻辑后发现其采用 ### + md5(md5(authcode + password)) 的方式存储。由于是 MD5 哈希而非可逆加密,因此无法直接从数据库中的密文还原出用户密码。

RestController Sql注入分析

代码分析

在审计其他业务接口时发现多个功能均会调用 check_user_id 方法进行用户身份校验,因此继续跟踪其实现逻辑。

分析发现 check_user_id 最终调用 getUserId 方法获取当前用户身份信息,而 UserId 属性则在控制器初始化阶段完成赋值。

继续跟踪构造流程,在 _initUser 方法中发现系统会从 HTTP Header 中读取 XX_DEVICE_TYPE 与 XX_TOKEN 参数,并将其直接拼接进入 SQL 查询语句。

由于相关参数缺少严格过滤与参数化处理,导致攻击者可以通过构造恶意 Header 数据影响 SQL 语句执行逻辑。

漏洞复现

构造请求,目标返回异常数据库报错信息,由此确认注入点存在。随后通过报错回显方式验证漏洞并获取数据库相关信息。

相关推荐
比兔代理3 小时前
代理IP池性能瓶颈在哪?并发、带宽与IP质量的平衡优化策略
服务器·网络·tcp/ip·安全
huijingjituan433 小时前
【三方聊天软件工具|定制开发与私有化部署】
安全·即时通讯·对话·聊天·极光鸟
00后程序员张4 小时前
Android证书绑定抓包失败?Android SSL Pinning绕过实战指南
android·网络协议·计算机网络·网络安全·adb·https·ssl
A55566677787894 小时前
金融级安全的OpenClaw平替方案商,支持内网隔离与源码级定制交付2026
人工智能·安全·自然语言处理·金融
故乡dee云5 小时前
多云账单代付靠谱吗?付款流程、费用核对和账号安全注意事项
安全·阿里云·云计算·腾讯云
玫幽倩5 小时前
2025MoeCTF(Pwn全)
网络·安全·pwn·ctf·新生赛·二进程·moectf
菩提小狗5 小时前
每日安全情报报告 · 2026-09-01
网络安全·漏洞·cve·安全情报·每日安全
智塑未来5 小时前
常用的在线ping测试工具有哪些
服务器·开发语言·php
啊阿狸不会拉杆5 小时前
《计算机网络-自顶向下方法》1.3 网络核心 读书笔记
网络·人工智能·计算机网络·ai·php
每天题库6 小时前
机修钳工题库计算题专练,尺寸公差公式熟练应用
学习·安全·考试·题库·考证