SSRF漏洞:URL绕过方法以及原理案例详细讲解

2024-06-03 407 0

好久没写了文章了, 今天遇到 url 漏洞就顺便记录以及自己的理解和大家分享心得.

0x00 内容概括

本文章会结合一些靶场来进行说明SSRF漏洞来加深对SSRF的印象, 本文章主要和大家分享:

1.SSRF的场景绕过方式 URL by Pass

2.盲注SSRF

3.判断SSRF漏洞

4.靶场示例

5.防御方法

0x01 漏洞概述

SSRF(Server-Side Request Forgery:服务器端请求伪造),  该漏洞主要针对web中 跳转 相关, 如果你在进行网站检索时, 看到有关 “url跳转” 的场景, 可以联想到可能有SSRF漏洞.

punchline:  我们传递参数,服务器代替我们去访问.

SSRF 主要可以用来读取服务器内部或外部数据,  比如我们可以通过ssrf 获取系统用户信息 /etc/passwd, 如深挖得到也可以通过ssrf获取到源码内容(如php某个文件).

0x02 SSRF漏洞危害

  • 服务器内网交互
  • 跳板机(用你的服务器去攻击其他服务器,防止被追踪到 )
  • 获取服务器信息
  • 实现远程代码执行
  • ....

所以网站如果出现SSRF漏洞影响是非常大的.

0x03 查找/验证思路

我们通常可以在获取远程资源的应用程序中找到SSRF漏洞。在寻找SSRF漏洞时,我们应该寻找:

  • HTTP请求重定向、URL跳转处理业务逻辑
  • 文件导入转换等,如HTML、PDF、图像等。
  • 远程服务器连接来获取数据
  • 有关提供给外部链接进行业务处理的功能

验证 SSRF 首先先确定是否是由服务器进行访问的,

1.定位问题,尝试访问 http://www.dnslog.cn/, 如果有访问记录,大概存在ssrf漏洞

2.排他验证限制, 尝试绕过

3.愉快玩耍

0x04 URL 绕过 byPass

一般来说网站都会做一些简单url安全处理,来阻止攻击者,但是一般都不会过多处理, 这得分情况, 如果是码农, 他们只负责码和简单的处理,并不会过多对某个场景进行加深安全, 毕竟996没有给他们时间对某个功能做很大的防护, 能交付上线才是总重之中, 只能鞭策鞭策他们才会注意到.

没有防护的示例(实习生):

如果你抓包见到一个重定向,如:

HTTP/1.0 302 FOUND
Content-Type: text/html; charset=utf-8
Content-Length: 242
Location: http://<TARGET IP>/load?q=index.html
Server: Werkzeug/2.0.2 Python
Date: Mon, 18 Oct 2021 09:01:02 GMT

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<title>Redirecting...</title>
<h1>Redirecting...</h1>
<p>You should be redirected automatically to target URL: <a href="https://www.freebuf.com/load?q=index.html">/load?q=index.html</a>. If not click the link.

那么你可以尝试:

http://<TARGET IP>/load?q=file:///etc/passwd

这样如果能访问到内容, 那么说明这个开发者比较放得开一点.

如果访问不了, 阻止了你的访问, 你可以考虑使用以下绕过方法检测:

1. 单斜线"/"绕过

http://<TARGET IP>/load?q=index.html/{file:///etc/passwd}

2. 利用"@"符号绕过(这个方法很实用)

https://link.csdn.net/?target=https://[email protected]

@ 是虚拟域名,  在浏览器输入后, 浏览器会识别@后面的域名, 前面则是域名的配置信息,

@ 在浏览器中的性质:

1.协议头取@域名前的协议, 

例1:https://[email protected], 浏览器最终指向https://bing.cn

例2:https://www.baidu.com@http://bing.cn, 浏览器会执行 https://http//bing.cn.

2.带路经的不能识别,

例1:https://www.baidu.com/demo/@bing.cn, 浏览器无法识别, 因此当作为参数来执行

有过开发或了解一些服务器相关的大概知道, 我们可以在浏览器中链接ftp/ssh, 格式:

ftp://username:[email protected]

浏览器会取username/password 为 127.0.0.1 作为授权来进行登录认证, 如果不填写, 则需要访问后输入账号密码进行登录.

3.IP转换

如遇到对本地地址或指定IP地址限制时可以将IP进行转换, 例如可以转换成: 十进制的IP, 依旧是可以进行访问的

例如本地IP:

127.0.0.1

可以转换成:

1.十进制: 2130706433:

SSRF漏洞:URL绕过方法以及原理案例详细讲解插图

2.十六进制:

http://0x7f000001

3.ipv6的地址:

http://[::ffff:7f00:1] 

4.ipv6的地址:

http://[::ffff:127.0.0.1] 

5.ipv6的地址:

http://127.1 

6.ipv6的地址:

http://127.0.1 

7. 0.0.0.0 IP地址

0.0.0.0

4.短域名生成

还有很多在线短域名生成,也可以通过生成短域名进行绕过

0x05 常见协议头

1. gopher://

定义:Gopher协议是一种早期的Internet信息检索协议,它允许用户通过文本菜单浏览和检索信息。
用途:在Web浏览器出现之前,Gopher是Internet上主要的文本信息检索工具之一。然而,随着Web的普及,Gopher逐渐被淘汰。


4A评测 - 免责申明

本站提供的一切软件、教程和内容信息仅限用于学习和研究目的。

不得将上述内容用于商业或者非法用途,否则一切后果请用户自负。

本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。

如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。敬请谅解!

程序来源网络,不确保不包含木马病毒等危险内容,请在确保安全的情况下或使用虚拟机使用。

侵权违规投诉邮箱:4ablog168#gmail.com(#换成@)

相关文章

webpack打包站点,js文件名批量获取思路
加密对抗靶场enctypt——labs通关
【论文速读】| 注意力是实现基于大语言模型的代码漏洞定位的关键
蓝队技术——Sysmon识别检测宏病毒
内网渗透学习|powershell上线cs
LLM attack中的API调用安全问题及靶场实践

发布评论