Apache Nutch XXE (CVE-2021-23901)

admin 2021年1月27日00:26:58评论12 views字数 1658阅读5分31秒阅读模式

一、前述


 

周二责任人,都下午四点了,本来觉得是风平浪静的一天,友商发了一个Apache Nutch的XXE,讲真,这个这个组件又是一无所知,先安装吧

漏洞版本是小于1.18,我这里安装版本为1.17

http://archive.apache.org/dist/nutch/1.17/apache-nutch-1.17-bin.tar.gz

安装很简单,直接tar -zxvf 进入bin目录,执行脚本,服务即可启动,但是发现好像启动没那么傻瓜,这么多参数Apache Nutch XXE (CVE-2021-23901)

没办法,还是去看官方文档吧,先搞清楚这是个什么组件,然后再看官方文档

二、Apache Nutch 简介


 

Nutch 是一个开源Java 实现的搜索引擎。它提供了我们运行自己的搜索引擎所需的全部工具。包括全文搜索和Web爬虫。Nutch是基于Lucene的。Lucene为Nutch提供了文本索引和搜索的API。很熟悉的一个组件,后来在官方文档中还提到了Solr,看到这个我可就不困了,这玩意可是看了好久的。不过Solr是需要单独安装的,因为只是看一个漏洞所以这里暂时先放下。

官方文档:https://cwiki.apache.org/confluence/display/NUTCH/Home

三、漏洞复现


 

1.Diff 寻找漏洞点

这里选取最为临近的两个版本,1.17和1.18进行比较,漏洞点很快就可以找到

Apache Nutch XXE (CVE-2021-23901)

典型的XXE修复代码

2.寻找触发点——一些坑但是不得不踩的坑

github下载源码,整体看下这个类

https://github.com/apache/nutch/archive/release-1.17.zip

Apache Nutch XXE (CVE-2021-23901)

蛋疼,没有地方调用,且它最后给出了一个main方法

Apache Nutch XXE (CVE-2021-23901)

盲猜只能以命令行方式调用,那我们返回启动脚本,我的关注点放在了这三个参数上

Apache Nutch XXE (CVE-2021-23901)

plugin是可以调用一个class的main方法,webapp可以启动一个web服务,第三个稍后说

现在就感觉是plugin+webapp?先启动试下

Apache Nutch XXE (CVE-2021-23901)

随便点一下抓包,没有什么直接上传的地方,但是有个报错,No running instances found!   

既然没有,我们就新建一个

Apache Nutch XXE (CVE-2021-23901)

新建好后访问主页报错

Apache Nutch XXE (CVE-2021-23901)

翻阅官方文档,需要启动server

Apache Nutch XXE (CVE-2021-23901)

算是大概跑起来了

Apache Nutch XXE (CVE-2021-23901)

注意力回到plugin,直接执行plugin。根据提示报错信息 构造参数

Usage: PluginRepository pluginId className [arg1 arg2 ...

翻阅官方文档plugin是需要加载的,修改配置文件nutch-site.xml 重启服务

Apache Nutch XXE (CVE-2021-23901)

plugin加载成功

Apache Nutch XXE (CVE-2021-23901)

 

Apache Nutch XXE (CVE-2021-23901)

 

但是......路走到这里就死了,plugin里并没有找到触发点,因为plugin里面没有任何地方调用了DmozParser

3.Finally Success

既然一开始猜测的是本地命令行触发,就去看启动脚本了。而且还记得刚才得启动参数里最后一个CLASSNAME了么

Apache Nutch XXE (CVE-2021-23901)

怎么调用一目了然了

./nutch org.apache.nutch.tools.DmozParser

Apache Nutch XXE (CVE-2021-23901)

成功调用到这个类,直接传入我们的xml文件即可

 

4.尝试远程触发

总想着应该还可以远程触发,因为查看web服务的url:http://192.168.33.128:8080/wicket/bookmarkable/org.apache.nutch.webui.pages.crawls.CrawlsPage?11

后面是跟的全类名,感觉可以直接调用到我们想要的类,启动下调试环境,讲应用中的lib导入源码包

Apache Nutch XXE (CVE-2021-23901)

修改启动文件如下,添加调试参数

Apache Nutch XXE (CVE-2021-23901)

idea配置如下:

Apache Nutch XXE (CVE-2021-23901)

成功调试:

Apache Nutch XXE (CVE-2021-23901)

后面留个坑吧,因为组件整体跟Solr关系比较密切,后面一起看,溜了溜了

 

四、参考链接


 

https://cwiki.apache.org/confluence/display/NUTCH/Home

https://en.wikipedia.org/wiki/Apache_Nutch

 

五、早安,北京

 

Apache Nutch XXE (CVE-2021-23901)

原文始发于微信公众号(赛博少女):Apache Nutch XXE (CVE-2021-23901)

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2021年1月27日00:26:58
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Apache Nutch XXE (CVE-2021-23901)https://cn-sec.com/archives/880058.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息