【SSRF漏洞及自动化扫描插件】

SSRF(Server-Side Request Forgery,服务端请求伪造)

1、概述

在服务器端请求伪造 (SSRF) 攻击中,攻击者可以滥用服务器端的功能来读取或更新内部资源。攻击者可以提供或修改服务器端运行的代码会读取或提交数据的 URL,通过精心选择 URL,攻击者可能能够读取服务器配置(例如 AWS 元数据)、连接到内部服务(例如启用 HTTP 的数据库)或向不应公开的内部服务发送 POST 请求。

2、描述

目标应用程序可能具有从 URL 导入数据、向 URL 发布数据或以其他方式从 URL 读取数据的功能,而这些功能可能被篡改。攻击者通过提供完全不同的 URL 或操纵 URL 的构建方式(例如路径遍历)来修改对这些功能的调用。

当篡改后的请求发送到服务器时,服务器端代码会获取篡改后的 URL,并尝试从该 URL 读取数据。通过选择目标 URL,攻击者可能能够从未直接暴露在互联网上的服务中读取数据:

1.云服务器元数据 - AWS 等云服务提供了一个 REST 接口,可以从中http://169.254.169.254/提取重要的配置信息,有时甚至可以提取身份验证密钥。

2.数据库 HTTP 接口------诸如 MongoDB 之类的 NoSQL 数据库通过 HTTP 端口提供 REST 接口。如果数据库仅供内部使用,则身份验证可能被禁用,攻击者可以借此窃取数据。

3.内部 REST 接口。

4.文件 - 攻击者可能能够使用file://URI 读取文件。

3、常见的绕过技巧

当开发者设置了黑名单或正则校验时,攻击者常使用以下手段绕过:

进制转换: 将 IP 地址转为八进制、十六进制或长整型。

利用特殊域名: 使用 127.0.0.1.nip.io 或类似 xip.io 的服务,将其解析到内网 IP。

URL 伪造: 利用 @ 符号(如 http://10.10.10.1)欺骗解析器。

DNS 重绑定(DNS Rebinding): 通过控制 DNS 解析时间差,在校验阶段返回合法 IP,在请求阶段返回内网 IP。

短网址与 30x 跳转: 利用外部短网址服务或服务器自身的跳转功能。

4、SSRF 漏洞可能存在的web功能点

1、从 WEB 功能上寻找

分享:通过 URL 地址分享网页内容

转码服务:将原地址的网页内容转码为适合手机屏幕的格式

在线翻译:通过 URL 地址翻译对应文本内容(如百度、有道等服务)

图片加载 / 下载:通过 URL 加载或下载图片

图片、文章收藏功能

未公开的 API 或其他调用 URL 的功能

2、从 URL 关键字中寻找

常见关键词:share、wap、url、link、src、source、target、u、3g、display、sourceURL、imageURL、domain

5. 防御方案

白名单机制(推荐): 仅允许访问预设的域名或 IP 段,从源头阻断对内网的探测。

禁用不常用协议: 只允许 http 和 https,禁止 file、gopher、dict 等危险协议。

统一解析与验证: 在发起请求前对 URL 进行 DNS 解析,验证解析后的真实 IP 是否为内网地址。

限制重定向: 默认关闭自动跟随 30x 跳转,或在跳转时重新进行安全检查。

6、pikachu-ssrf

  1. SSRF (curl)
    该关卡利用 PHP 的 cURL 库 发起请求。后台代码通常直接接收 url 参数并执行 curl_exec()。
    内网端口探测:
    修改 url 参数为内网 IP 和端口,观察返回结果(如响应时间或错误提示)来判断端口是否开放。
    ?url=http://127.0.0.1:80 (探测 80)

    ?url=http://127.0.0.1:3306 (探测 MySQL)

利用 dict 协议:

dict 协议常用于探测内网服务指纹或执行简单命令(如mysql)。

?url=dict://127.0.0.1:3306

利用 file 协议读取文件:

?url=file:///etc/passwd 或 ?url=file:///C:/Windows/win.ini

可以尝试使用 Burp Suite 的 Intruder 模块对内网 IP(如 192.168.1.0/24)或常用端口(如 80, 443, 3306, 6379, 8080)进行批量自动化探测。

  1. SSRF (file_get_contents)
    该关卡利用 file_get_contents() 函数读取资源内容。该函数在 allow_url_fopen 开启时可以读取 URL,同时也常用于读取本地文件系统。
    读取敏感文件:
    这是此函数最直接的利用方式。
    ?file=file:///C:/Windows/win.ini (读取win.ini )

请求内网 HTTP 服务:

?file=http://192.168.x.x:80

利用 php 伪协议:

如果后端对输入过滤不严,可以配合 php://filter 读取加密后的源码以绕过某些显示限制。

?file=php://filter/read=convert.base64-encode/resource=ssrf.php

7、推荐一个被动ssrf漏洞发现的burpsuite插件。

插件捕获BurpSuite流量的区域

被动扫描 指BurpSuite本身的被动扫描器

Proxy 指所有通过BurpSuite的MITM的流量,在Tab栏 Proxy -- Http history中可以看到这些流量

Repeater 指所有在BurpSuite Repeater中发送的流量

效果如下:

注意事项:该插件不支持旧版Burp Suite

wx关注【卡布奇诺的派对】回复AutoSSRF获取。

转载请注明出处及链接

本文参考:

https://owasp.org/www-community/attacks/Server_Side_Request_Forgery

https://cheatsheetseries.owasp.org/cheatsheets/Server_Side_Request_Forgery_Prevention_Cheat_Sheet.html

相关推荐
顶妙WMS海外仓管理系统20 分钟前
Shopify卖家破910万,海外仓如何对接Shopify独立站?
运维·产品运营
IMPYLH1 小时前
Linux 的 chmod 命令
linux·运维·服务器
taxunjishu1 小时前
半导体晶圆制造车间 SITRANS P 仪表与 V90 伺服系统精密控制应用
网络·物联网·自动化
北京智和信通1 小时前
面向超融合的全域监控与一体化运维方案
运维·网管软件·超融合监控·超融合运维
艾莉丝努力练剑2 小时前
【MYSQL】MYSQL学习的一大重点:数据库基础
linux·运维·服务器·数据库·c++·学习·mysql
会喷火才能叫火山2 小时前
本地搭建AI相关步骤
linux·运维·ai·centos
The Open Group2 小时前
TOGAF®如何平衡创新与合规——金融机构的架构治理之道
运维·安全·架构
小周学学学2 小时前
vmware的python自动化:批量给esxi主机挂载iscsi动态目标
运维·自动化·vmware·虚拟化
勤劳的执着的运维农民工2 小时前
使用ubnt protect chime门铃有感
运维·笔记
H_老邪2 小时前
什么是 devOps?Jenkins ?云效工作台?
运维·devops