通达OA漏洞比getshell还要牛的system权限

更多黑客技能 公众号:白帽子左一
作者:掌控安全-master

一位向往于任意门的白帽少年,我的奇技淫巧,让你尽可能的getshell.

今天的主角通达OA,前段时间黑产界的杀手,开始吧!

0x00 漏洞简介

CNVD:CNVD-2020-26562

通达OA是由北京通达信科科技有限公司开发的一款办公系统,前几天通达官方在其官网发布了安全提醒与更新程序,并披露有用户遭到攻击。

攻击者可在未授权的情况下可上传图片木马文件,之后通过精心构造的请求进行文件包含,实现远程命令执行,且攻击者无须登陆认证即可完成攻击。

图片

本文主要以通达OA文件上传和文件包含导致的RCE进行复现和分析

通过fofa的搜索可以看到通达OA系统应用非常广泛,这就给同学们提供了大量的实战环境.当然大家一定要做一个正直的白帽子.

图片

0x01 影响范围

通达OA V11版 <= 11.3 20200103
通达OA 2017版 <= 10.19 20190522
通达OA 2016版 <= 9.13 20170710
通达OA 2015版 <= 8.15 20160722
通达OA 2013增强版 <= 7.25 20141211
通达OA 2013版 <= 6.20 20141017

0x02 环境搭建

通达OA系统采用了一键式的傻瓜操作,正常的软件安装,这里我本地搭建的.安装过程省略.安装完成后访问本地地址,截图如下:

图片

0x03 未授权上传文件

文件在 webroot\ispirit\im\upload.php

<?php

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 (!is_array($ATTACHMENTS)) {
 $dataBack = array('status' => 0, 'content' => '-ERR ' . 
 $ATTACHMENTS);
 echo json_encode(data2utf8($dataBack));
 exit;
 }
 ob_end_clean();
 $ATTACHMENT_ID = substr($ATTACHMENTS['ID'], 0, -1);
 $ATTACHMENT_NAME = substr($ATTACHMENTS['NAME'], 0, -1);
 if ($TYPE == 'mobile') {
 $ATTACHMENT_NAME = 
 td_iconv(urldecode($ATTACHMENT_NAME), 
 'utf-8', MYOA_CHARSET);
 }
} else {
 $dataBack = array('status' => 0, 'content' => '-ERR ' . 
 _('无文
 件上传'));
 echo json_encode(data2utf8($dataBack));
 exit;
}
$FILE_SIZE = attach_size($ATTACHMEN
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值