《A Saga of Code Executions on Zimbra》RCE漏洞分析+复现过程

原文地址:
https://blog.tint0.com/2019/03/a-saga-of-code-executions-on-zimbra.html
https://paper.tuisec.win/detail/8ac5a3d1efbf40b

下载Zimbra的包:

1.从地址https://www.zimbra.com/downloads/zimbra-collaboration-open-source/下载了Zimbra 8.6.0的开源版,并解压

2.解压packages/zimbra-core-***.rpm,得到zimbra核心库的内容,命令如下:

#需要自行安装rpm2cpio
rpm2cpio zimbra-core-8.6.0_GA_1153.RHEL6_64-20141215151155.x86_64.rpm | cpio -div

github上其实也有源码,但是jd-gui方便代码追踪
https://github.com/Grynn/zimbra-mirror

利用XXE读取密码:

CVE-2019-9670,文章中提示使用Autodiscover

查找zimbra-core中带有Autodiscover的类名

find . -name "*.jar"|awk '{print "jar -tvf "$1}' | sh -x | grep -i Autodiscover

更新一下命令(大家可以自己对比一下~):

find . -name "*.jar"|awk '{print "jar -tvf "$1"|awk '\''{
   
   print ""\""$1"\"""$0}'\''"}'  | sh | grep -i Autodiscover

PS:Windows下可以直接用Winrar之类的解压缩工具进行搜索。

找到如下两个包:

  • jar -tvf ./j2sdk-20140721/jre/lib/ext/nashorn.jar
    1758 Tue Jul 29 17:08:16 CST 2014 jdk/internal/dynalink/support/AutoDiscovery.class
  • jar -tvf ./lib/jars/zimbrastore.jar
    20149 Mon Dec 15 15:19:12 CST 2014 com/zimbra/cs/service/AutoDiscoverServlet.class

可以看出nashorn.jar是jre的中的jar包,应该不是我们的目标,而AutoDiscoverServlet带有Servlet字样,应是对外提供服务的。

在Zimbra的Wiki中https://wiki.zimbra.com/wiki/Autodiscover,给出了Autodiscover的地址为/Autodiscover/Autodiscover.xml(其实这个功能应该是exchange的)

向/Autodiscover/Autodiscover.xml POST一个空的xml:
在这里插入图片描述

发现提示:No Email address is specified in the Request,在AutoDiscoverServlet.class的doPost中找到如下代码,确认为Autodiscover功能对应类。
在这里插入图片描述


使用Jd-gui反编译代码,发现如下代码逻辑:

public void doPost(HttpServletRequest req, HttpServletResponse resp){
   
   
    ...
  reqBytes = ByteUtil.getContent(req.getInputStream(), req.getContentLength());
  ...
  String content = new String(reqBytes, "UTF-8");
  ...
  Document doc = docBuilder.parse(new InputSource(new StringReader(content)));
  ..
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值