BugBounty:防火墙与缓存机制Bypass 形成SSRF | 申博官网
登录
  • 欢迎进入申博官网!
  • 如果您觉得申博官网对你有帮助,那么赶紧使用Ctrl+D 收藏申博官网并分享出去吧
  • 这里是申博官方网!
  • 申博官网是菲律宾sunbet官网品牌平台!
  • 申博开户专业品牌平台!

BugBounty:防火墙与缓存机制Bypass 形成SSRF

申博_安全防护 申博 115次浏览 已收录 0个评论

申博网络安全巴士站

申博-网络安全巴士站是一个专注于网络安全、系统安全、互联网安全、信息安全,全新视界的互联网安全新媒体。

————————————-

概述

Hello,店员们。回归后我发明了一个风趣Bug,我如饥似渴地想把我的发掘阅历分享出来。这此行为是由是一连串破绽组合起来,包罗分歧条理的Bypass,终究能够猎取印度最大股票掮客公司的AWS凭证。下面我将分享我绕过Web运用防火墙,再绕过Web缓存然后形成SSRF破绽,末了猎取到AWS账户凭证的历程。

破绽发掘

在第一阶段的测试历程当中,我发明网站上一些端点与内部文件体系会发作一些交互,我最先搜检是不是存在LFI(当地文件包罗)破绽,然则这个网站被CloudFlare防火墙保护着——

BugBounty:防火墙与缓存机制Bypass 形成SSRF

Bypass WAF

如过要绕过防火墙,我只须要求直接发送至后端服务器。愿望后端服务器或许平衡负载器没有设置要求IP白名单。

BugBounty:防火墙与缓存机制Bypass 形成SSRF

如今,我还须要找到后端服务器IP,简朴运转dig www.readacted.com,就能够猎取:

BugBounty:防火墙与缓存机制Bypass 形成SSRF

LFI

设置完Host后,我实验经由过程LFI读取/etc/pass的内容,然后获得下面这个响应:

BugBounty:防火墙与缓存机制Bypass 形成SSRF

读取AWS元数据

OK,如今我胜利来过了防火墙而且形成LFI破绽。然后我最先网络IP的whois信息,我发明该IP属于AWS。如今我的下一个目的则是经由过程SSRF破绽来读取AWS账户凭证,我以为这肯定能够完成,由于(端点称号)能够定名页面或许说URL的名字。因而我最先动手读取AWS实例的元数据(http://169.254.169.254/latest/meta-data/)。

LLVM初探

0x01 LLVM简介 The LLVM Project is a collection of modular and reusable compiler and toolchain technologies. LLVM是模块化、可重用的编译器以及工具链的集合,有些人把LLVM当成是一个低层的虚拟机(low level virtual machine),但官方给出的解释是这样的: The name “LLVM” itself is not an acronym; it is the full name of the project. 也就是说LLVM并不是一个缩写,而是整个项目的全名。 LLVM和传统的编译器(GCC)是有差别的 传统的编译器架构 传统的编译器架构主要分为三个部分 Frontend:前端 包括词法分析、语法分析、语义分析

BugBounty:防火墙与缓存机制Bypass 形成SSRF

HTTP/1.1 200 OK
Server: nginx
Date: Fri, 06 Apr 2019 14:32:48 GMT
Content-Type: text/css;charset=UTF-8
Connection: close
Vary: Accept-Encoding
Strict-Transport-Security: max-age=15552000
X-Frame-Options: DENY
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
X-Proxy-Cache: HIT
Content-Length: 0
Bypass Web cache

响应码为200,这表明要求与API发作交互,但只返回了一个空响应。但为何会如许呢?细致检察响应内容,你会发明服务器标头为NginxX-Proxt-Cache标头用于Nginx缓存层其值为HIT,因而当用户实验接见AWS元数据时,起首会HITNginx缓存层,而缓存层为空值,响应天然也为空。

如今为了从服务器猎取一样平常响应,我得绕过缓存层。起首,我须要明白Nginx缓存体系的URL缓存页面划定规矩。

一些参考——

https://www.digitalocean.com/community/tutorials/how-to-implement-browser-caching-with-nginx-s-header-module-on-centos-7
https://www.howtoforge.com/make-browsers-cache-static-files-on-nginx

我的明白是缓存一样平常是在URL路由途径这个基础上完成的,以是若是某个URL为https://somewebsite.com/a.html,此URL与路由途径相婚配,然后触发缓存。然则若是把URL改成https://somewebsite.com/a.html?,那末URL路由途径将没法与缓存划定规矩婚配,因而不会触发缓存,直接从服务器猎取响应。以是我实验在http://169.254.169.254/latest/meta-data背面加上?或许其他恣意特别字符,回避URL路由途径的检测,下面是我获得的响应:

BugBounty:防火墙与缓存机制Bypass 形成SSRF

HTTP/1.1 200 OK
Server: nginx
Date: Fri, 06 Apr 2019 14:32:48 GMT
Content-Type: text/css;charset=UTF-8
Connection: close
Vary: Accept-Encoding
Strict-Transport-Security: max-age=15552000
X-Frame-Options: DENY
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
X-Proxy-Cache: MISS
Content-Length: 315
ami-id
ami-launch-index
ami-manifest-path
block-device-mapping/
events/
hostname
identity-credentials/
instance-action
instance-id
instance-type
local-hostname
local-ipv4
mac
metrics/
network/
placement/
product-codes
profile
public-hostname
public-ipv4
public-keys/
reservation-id
security-groups
services/

能够看到X-Proxt-Cache的值已变成MISS,这表明API挪用并没有触发缓存,而是直接从服务器猎取响应。

因而,我胜利绕过了缓存层来应用SSRF破绽读取AWS元数据。如今我还须要读取AWS元数据凭证(http://169.254.169.254/latest/meta-data/identity-credentials/ec2/security-credentials/ec2-instance?):

BugBounty:防火墙与缓存机制Bypass 形成SSRF

我终究我猎取了AWS接见ID,暗码接见密钥和一些token,运用它们我能够登入AWS账户,打仗大批隐秘内容。

小结

在这次渗入测试中,我起首绕过了Cloudflare防火墙,应用LFI破绽然后经由过程绕过Web缓存机制将LIF提升为SSRF,末了我经由过程应用SSRF破绽猎取了AWS账户凭证。


申博|网络安全巴士站声明:该文看法仅代表作者自己,与本平台无关。版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明BugBounty:防火墙与缓存机制Bypass 形成SSRF
喜欢 (0)
[]
分享 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址