技术分享 | 从致远OA-ajax.do任意文件上传漏洞复现到EXP编写

2024-02-23 02:30

本文主要是介绍技术分享 | 从致远OA-ajax.do任意文件上传漏洞复现到EXP编写,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在这里插入图片描述
前言: 最近网上爆出致远OA ajax.do登录绕过和任意文件上传漏洞,影响部分旧版致远OA版本(致远OA V8.0,致远OA V7.1、V7.1SP1,致远OA V7.0、V7.0SP1、V7.0SP2、V7.0SP3,致远OA V6.0、V6.1SP1、V6.1SP2,致远OA V5.x,致远OA G6)。互联网上已经有基于Python的EXP,为了更好的发挥Goby的作用,尝试在Goby上编写EXP工具。

0x001 漏洞复现

漏洞复现主要分以下三个部分:

1.1 未授权访问

参考unicodeSec大佬的分析,通过请求eyon/thirdpartyController.do.css/…;/ajax.do判断是否存在漏洞,若出现下图异常,则可能存在漏洞。

在这里插入图片描述
通过抓取数据包,可以看到如下的数据请求和返回结构:

在这里插入图片描述
返回的状态值为200,且返回的数据包含"java.lang.NullPointerException:null"字符串。

1.2 任意文件上传

调用未授权的文件上传接口上传任意文件,以上传test.txt,上传到/seeyon目录下,内容为test123,数据包如下所示:

在这里插入图片描述

返回的状态值为500,文件上传成功会返回。

{"message":null,"code":"0844135702","details":null
}

其中code的值不固定。

文件上传失败会返回。

{"message": "被迫下线,原因:与服务器失去连接","code": "-1","details": null
}

1.3 请求上传的文件

通过请求上传的文件,查看文件是否上传成功,如下所示:

在这里插入图片描述

0x002 Goby EXP编写

2.1 漏洞信息填写

致远OA的查询规则是:app=Yonyou-Seeyon-OA(可以常规扫目标后查看该目标的资产类型以确定查询规则)

在这里插入图片描述
填写漏洞信息,如下所示:

在这里插入图片描述
而后在高级配置中,填写标签、描述、产品、产品主页、作者、来源、漏洞危害和解决方案等信息。

2.2 ScanSteps填写

2.2.1 未授权访问判断

根据漏洞复现部分,GET请求/seeyon/thirdpartyController.do.css/…;/ajax.do,根据返回数据的状态码200和返回内容中包含"java.lang.NullPointerException:null"字符串判断目标是否存在漏洞,填写对应的规则,如下所示:

在这里插入图片描述
在这里插入图片描述
此处在header的中需要填写Accep字段。

2.2.2 文件上传二次判断

和Goby团队的技术表哥交流后,仅通过上面的未授权访问判断,可能会存在很多的误报,因此需要借助文件上传进一步判断。

POST数据进行任意文件上传,需要带上Content-Type: application/x-www-form-urlencoded,根据返回内容是否包含message、code和details,并且排除返回内容包含-1(上传失败,返回值的code为-1)判断是否上传成功。

在这里插入图片描述
在这里插入图片描述
Post数据可参考互联网上已有的资源。

tips小技巧: 填写完测试数据后,在自定义PoC的右上角有个"单ip扫描"选项,输入ip:port,进行单ip扫描,查看定义的测试选项逻辑是否正确。

2.3 ExploitSteps填写

从生成的seeyou_OA_ajaxAction_formulaManager_File_Upload.json文件的ScanSteps中提取Post部分的数据,加入到ExploitSteps中,如下:

在这里插入图片描述
需要在ScanSteps前面加上"HasExp‘":“true”,进行设置漏洞验证。

在mojie师傅的帮助下,将上传的文件名等内容固定到ExpParams部分中,方便验证时输出文件上传的信息,如下所示:

在这里插入图片描述

0x003 Goby 验证效果

在这里插入图片描述
在这里插入图片描述

如果表哥/表姐也想把自己上交给社区(Goby 介绍/扫描/口令爆破/漏洞利用/插件开发/PoC 编写等文章均可)图片,欢迎投稿到我们公众号,超级内测版等着你们~~~

文章来自Goby社区成员:bytesec,转载请注明出处。

下载Goby内测版,请关注公众号:Gobysec

下载Goby正式版,请访问官网:http://gobies.org

这篇关于技术分享 | 从致远OA-ajax.do任意文件上传漏洞复现到EXP编写的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/737238

相关文章

使用IDEA部署Docker应用指南分享

《使用IDEA部署Docker应用指南分享》本文介绍了使用IDEA部署Docker应用的四步流程:创建Dockerfile、配置IDEADocker连接、设置运行调试环境、构建运行镜像,并强调需准备本... 目录一、创建 dockerfile 配置文件二、配置 IDEA 的 Docker 连接三、配置 Do

springboot自定义注解RateLimiter限流注解技术文档详解

《springboot自定义注解RateLimiter限流注解技术文档详解》文章介绍了限流技术的概念、作用及实现方式,通过SpringAOP拦截方法、缓存存储计数器,结合注解、枚举、异常类等核心组件,... 目录什么是限流系统架构核心组件详解1. 限流注解 (@RateLimiter)2. 限流类型枚举 (

OpenCV在Java中的完整集成指南分享

《OpenCV在Java中的完整集成指南分享》本文详解了在Java中集成OpenCV的方法,涵盖jar包导入、dll配置、JNI路径设置及跨平台兼容性处理,提供了图像处理、特征检测、实时视频分析等应用... 目录1. OpenCV简介与应用领域1.1 OpenCV的诞生与发展1.2 OpenCV的应用领域2

Python实现PDF按页分割的技术指南

《Python实现PDF按页分割的技术指南》PDF文件处理是日常工作中的常见需求,特别是当我们需要将大型PDF文档拆分为多个部分时,下面我们就来看看如何使用Python创建一个灵活的PDF分割工具吧... 目录需求分析技术方案工具选择安装依赖完整代码实现使用说明基本用法示例命令输出示例技术亮点实际应用场景扩

Spring Boot 结合 WxJava 实现文章上传微信公众号草稿箱与群发

《SpringBoot结合WxJava实现文章上传微信公众号草稿箱与群发》本文将详细介绍如何使用SpringBoot框架结合WxJava开发工具包,实现文章上传到微信公众号草稿箱以及群发功能,... 目录一、项目环境准备1.1 开发环境1.2 微信公众号准备二、Spring Boot 项目搭建2.1 创建

Python中你不知道的gzip高级用法分享

《Python中你不知道的gzip高级用法分享》在当今大数据时代,数据存储和传输成本已成为每个开发者必须考虑的问题,Python内置的gzip模块提供了一种简单高效的解决方案,下面小编就来和大家详细讲... 目录前言:为什么数据压缩如此重要1. gzip 模块基础介绍2. 基本压缩与解压缩操作2.1 压缩文

Go语言代码格式化的技巧分享

《Go语言代码格式化的技巧分享》在Go语言的开发过程中,代码格式化是一个看似细微却至关重要的环节,良好的代码格式化不仅能提升代码的可读性,还能促进团队协作,减少因代码风格差异引发的问题,Go在代码格式... 目录一、Go 语言代码格式化的重要性二、Go 语言代码格式化工具:gofmt 与 go fmt(一)

Qt如何实现文本编辑器光标高亮技术

《Qt如何实现文本编辑器光标高亮技术》这篇文章主要为大家详细介绍了Qt如何实现文本编辑器光标高亮技术,文中的示例代码讲解详细,具有一定的借鉴价值,有需要的小伙伴可以了解下... 目录实现代码函数作用概述代码详解 + 注释使用 QTextEdit 的高亮技术(重点)总结用到的关键技术点应用场景举例示例优化建议

Python虚拟环境与Conda使用指南分享

《Python虚拟环境与Conda使用指南分享》:本文主要介绍Python虚拟环境与Conda使用指南,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、python 虚拟环境概述1.1 什么是虚拟环境1.2 为什么需要虚拟环境二、Python 内置的虚拟环境工具

python编写朋克风格的天气查询程序

《python编写朋克风格的天气查询程序》这篇文章主要为大家详细介绍了一个基于Python的桌面应用程序,使用了tkinter库来创建图形用户界面并通过requests库调用Open-MeteoAPI... 目录工具介绍工具使用说明python脚本内容如何运行脚本工具介绍这个天气查询工具是一个基于 Pyt