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

GobySec  107天前

15.png


Goby社区第11 篇技术分享文章

全文共:1898    预计阅读时间:5 分钟


前言:近网上爆出致远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工具。

0×001 漏洞复现

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

1.1 未授权访问

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

1.png

通过抓取数据包,可以看到如下的数据请求和返回结构:

2.png

返回的状态值为200,且返回的数据包含"java.lang.NullPointerException:null"字符串。

1.2 任意文件上传

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

3.png

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

{
  "message":null,
  "code":"0844135702",
  "details":null
}
其中code的值不固定。

文件上传失败会返回。

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

1.3 请求上传的文件

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

4.png

0×002 Goby EXP编写

2.1 漏洞信息填写

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

5.png

填写漏洞信息,如下所示:

6.png

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

2.2 ScanSteps填写

2.2.1 未授权访问判断

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

7.png8.png

此处在header的中需要填写Accep字段。

2.2.2 文件上传二次判断

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

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

9.png10.png

Post数据可参考互联网上已有的资源。

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

2.3 ExploitSteps填写

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

11.png

需要在ScanSteps前面加上"HasExp":"true",进行设置漏洞验证。

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

12.png

0×003 Goby 验证效果

13.png

14.png

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


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

下载Goby内测版,请关注微信公众号:GobySec

下载Goby正式版,请关注网址:https://gobies.org/

最新评论

a  :  请问arguement是什么编**?
107天前 回复
昵称
邮箱
提交评论