影响范围
- V11版
- 2017版
- 2016版
- 2015版
- 2013版
- 2013增强版
漏洞简介
通达OA是由北京通达信科科技有限公司开发的一款办公系统,近日通达官方在其官网发布了安全提醒与更新程序,并披露有用户遭到攻击。
攻击者可在未授权的情况下可上传图片木马文件,之后通过精心构造的请求进行文件包含,实现远程命令执行,且攻击者无须登陆认证即可完成攻击。
漏洞分析
这里对通达OA11.3进行简要分析~
通达OA下载:
链接:https://pan.baidu.com/s/1QFAoLxj9pD1bnnq3f4I8lg
提取码:ousi
安装之后会发现源文件使用zend进行了加密,所以先要进行解密,解密网站:http://dezend.qiling.org/free/
文件上传功能
存在漏洞的上传功能文件为——webroot\ispirit\im\upload.php,具体代码如下:
<?php
//decode by http://dezend.qiling.org QQ 2859470
set_time_limit(0);
$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\';
}
include_once \'inc/utility_file.php\';
include_once \'inc/utility_msg.php\';
include_once \'mobile/inc/funcs.php\';
ob_end_clean();
$TYPE = $_POST[\'TYPE\'];
$DEST_UID = $_POST[\'DEST_UID\'];
$dataBack = array();
if ($DEST_UID != \'\' && !td_verify_ids($ids)) {
$dataBack = array(\'status\' => 0, \'content\' => \'-ERR \' . _(\'接收方ID无效\'));
echo json_encode(data2utf8($dataBack));
exit;
}
if (strpos($DEST_UID, \',\') !== false) {
} else {
$DEST_UID = intval($DEST_UID);
}
if ($DEST_UID == 0) {
if ($UPLOAD_MODE != 2) {
$dataBack = array(\'status\' => 0, \'content\' => \'-ERR \' . _(\'接收方ID无效\'));
echo json_encode(data2utf8($dataBack));
exit;
}
}
$MODULE = \'im\';
if (1 <= count($_FILES)) {
if ($UPLOAD_MODE == \'1\') {
if (strlen(urldecode($_FILES[\'ATTACHMENT\'][\'name\'])) != strlen($_FILES[\'ATTACHMENT\'][\'name\'])) {
$_FILES[\'ATTACHMENT\'][\'name\'] = urldecode($_FILES[\'ATTACHMENT\'][\'name\']);
}
}
$ATTACHMENTS = upload(\'ATTACHMENT\', $MODULE, false);
if (!