破解反向代理实现重定向服务器流量

admin 2024年4月22日06:38:43评论6 views字数 2195阅读7分19秒阅读模式

破解反向代理实现重定向服务器流量

本文将介绍通过破解反向代理请求处理方式,实现流量从内部服务器重定向到个人服务器。

在此之前,介绍一下正向代理与反向代理。

正向代理与反向代理

1、正向代理,意思是一个位于客户端和原始服务器之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端才能使用正向代理。

2、反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源。同时,用户不需要知道目标服务器的地址,也无须在用户端作任何设定。

破解反向代理实现重定向服务器流量

3、正向代理其实是客户端的代理,帮助客户端访问其无法访问的服务器资源。反向代理则是服务器的代理,帮助服务器做负载均衡,安全防护等。

4、反向代理服务器没有保存任何网页的真实数据,所有的静态网页或者 CGI 程序,都保存在内部的 Web 服务器上。通过反向代理,我们可以设置访问规则,例如基于 IP 地址、地理位置、用户代理等信息,来限制或者拒绝特定客户端的访问。

5、常见的反向代理有 Nginx、Apache、HAProxy 等。

破解反向代理实现重定向服务器流量

那么,当解析器存在正则表达式和逻辑错误时,我们就能绕过代理服务器,实现流量从内部服务器重定向到个人服务器。

正文

在浏览一个网站的请求时,我发现了一个看起来很有趣的 API 端点,所以我使用以下一些常见的路径遍历 payload 运行了 ffuf(一款快速模糊测试工具)。

/experience/..;//experience/..//experience/..%2f/experience/%2e%2e%2f

几乎所有的路径都返回了 403 错误,但 /experience/..%2f 返回了 404 错误。

这是一个很好的指标,表明我们可能正在接近 API 的内部根源。

为了进一步测试,我返回到上一级目录看看是否有任何变化:

破解反向代理实现重定向服务器流量

返回了400,也知道到了服务器类型为 nginx。

通过扫描,发现了 /api 路径和一个文件 dashboard.html。

尝试访问路径 /experience/..%2fdashboard.html,
通过回显确认了它为 NGINX Plus API:

破解反向代理实现重定向服务器流量

为了确认这是内部资源,我需要验证 dashboard.html 和 /api 是否在 Web 根目录下是不可访问的。

访问 http://example.com/dashboard.html 和 http://example.com/api,均回显403,所以这意味着我们成功访问了内部资源(即使不可见)。

虽然 dashboard.html 上没有太多内容,但我仍然查看了找到的 /api 路径,发现其中包含了一些 JSON 格式的数字。我查阅了 Nginx 的 API 文档,并确定了这些数字代表 API 的不同版本。

Nginx API文档http://nginx.org/en/docs/http/ngx_http_api_module.html#example

访问其中一个版本后,发现了一些非常有趣的内容,可以实现对不同路径的访问:

/experience/..%2f/api/7//experience/..%2f/api/7/nginx/experience/..%2f/api/7/connections/experience/..%2f/api/7/http/requests/experience/..%2f/api/7/http/server_zones/server_backend/experience/..%2f/api/7/http/caches/cache_backend/experience/..%2f/api/7/http/upstreams/backend/experience/..%2f/api/7/http/upstreams/backend/servers//experience/..%2f/api/7/http/upstreams/backend/servers/1/experience/..%2f/api/7/http/keyvals/one?key=arg1/experience/..%2f/api/7/stream//experience/..%2f/api/7/stream/server_zones/server_backend/experience/..%2f/api/7/stream/upstreams//experience/..%2f/api/7/stream/upstreams/backend/experience/..%2f/api/7/stream/upstreams/backend/servers/1

为了扩大攻击范围,我决定尝试向 API 写入数据。经过仔细研究 API 文档,我发现很多路径支持 POST 和 GET 请求,但文档中提到默认情况下禁用了对 API 的写入操作。

尽管如此,我并没有放弃,继续尝试其他参数,最终成功创建了自己的上游并向 API 写入数据。

POC:

破解反向代理实现重定向服务器流量

Response:

破解反向代理实现重定向服务器流量

最终,我们可以将流量重新路由到自己的服务器,并导致内部服务中断。

玲珑安全免费公开课网址:
https://space.bilibili.com/602205041

破解反向代理实现重定向服务器流量

玲珑安全QQ交流群:191400300

破解反向代理实现重定向服务器流量

原文始发于微信公众号(芳华绝代安全团队):破解反向代理实现重定向服务器流量

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年4月22日06:38:43
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   破解反向代理实现重定向服务器流量https://cn-sec.com/archives/2590348.html

发表评论

匿名网友 填写信息