ssrf检测防御与绕过

本文涉及的产品
.cn 域名,1个 12个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
全局流量管理 GTM,标准版 1个月
简介: ssrf检测防御与绕过

服务器端请求伪造(SsRF, Server-Side Request Forgery)是一种安全漏动,它允许公鸡者通过受信任的服务器发起恶意网络请求,从而获取内部网络资源、公鸡内部服务或执行非预期操作。SsRF检测、防御与绕过涉及到以下几个方面:

image.png

概述

服务器端请求伪造(Server-Side Request Forgery,简称SSRF)是一种网络安全漏动,它允许公鸡者通过受信任的应用程序发起恶意的网络请求。这种公鸡的特点在于,不是直接从公鸡者自身的机器发起请求,而是利用应用程序本身的服务器去发起这个请求。公鸡者能够利用这一漏动,访问原本从外部网络无法直接访问的内部系统或资源,如内部网络的服务、私有云环境、甚至同服务器的本地文件系统等。

SSRF漏动常见于那些具有动态获取远程数据功能的应用程序,例如图片加载、链接重定向、API调用、文件下载、XML外部实体注入(XXE)相关功能等。当应用程序未能充分验证用户提供的URL或者其他形式的请求参数时,公鸡者就可以构造特殊的请求,诱骗服务器访问非法或敏感的目标。

SSRF公鸡可能导致如下危害:

访问内部网络资源,如内网服务器、数据库和其他服务;

利用内部API获取敏感数据;

执行内部服务的命令或操作,如删除文件、修改系统配置等;

发现和利用内部系统的其他漏动;

通过结合其他漏动(如DNS rebinding)突破内外网隔离,实施更深层次的公鸡。

防御SSRF的主要策略包括:

对请求的目标地址进行严格的白名单或黑名单过滤,只允许访问特定的、安全的外部资源;

不信任用户提供的URL,并对URL进行规范化处理,剔除不安全的协议;

使用反向代理或防火墙规则限制服务器对外部网络的访问权限;

在需要服务器发起请求的场景下引入随机令牌验证机制,确保请求的合法性;

对于基于HTTP的请求,采用安全性更高的代理模式,而非直接让服务器与目标进行通信。

总之,SSRF漏动是一种非常重要的安全风险,要求开发者在设计和实现应用程序时,必须仔细考虑用户可控输入的处理,确保所有向外发起的请求均受到严格的控制和验证。

SsRF检测

image.png

检测方法与实例:

自动化扫描:使用安全扫描工具(如OWASP ZAP、Burp Suite等)针对Web应用程序的所有对外请求接口进行深度扫描,查找是否存在可通过用户输入控制请求目标的函数或模块。

示例:如果应用程序允许上传图片并通过服务器直接访问外部URL以获取图片,安全扫描工具会尝试注入各种类型的URL(如内网IP、文件协议、localhost等)来确认是否有不受限的请求。

人工审计:通过审查源代码或逆向工程,找出处理外部URL请求的地方,检查是否进行了充分的输入验证和过滤。

示例:查看代码逻辑,如果看到类似httpGet(request.getParameter("url"))这样的语句,表明可能存在SsRF风险,因为用户可以控制要请求的URL。

SsRF防御

防御措施与实践:

严格的输入验证:确保所有的外部请求参数都经过严格的格式和内容验证,仅允许访问预定义白名单内的主机和端口。

示例:仅允许请求指向指定域名列表的HTTP/HTTPS资源,禁止任何内网IP、localhost、特殊协议(如file、gopher、dict等)。

限制请求范围:使用防火墙规则限制服务器对外部网络的访问权限,防止敏感资源暴露。

随机令牌验证:对于需要发起服务器端请求的操作,增加随机令牌作为请求的一部分,确保只有合法客户端才能发起有效的请求。

回源限制:对于CDN等场景,设置正确的回源策略,避免因回源请求而暴露内网。

SsRF绕过

绕过技术与案例:

协议转换:公鸡者可能会尝试使用特殊的协议(如file:///、ftp://、ldap://等)来绕过简单的URL过滤器。

示例:若服务器对URL的过滤不够严谨,允许了data:、javascript:等伪协议,公鸡者可能借此泄露内部数据或者执行恶意脚本。

DNS解析漏动:利用DNS Rebinding公鸡,将恶意域名解析为内网IP地址,使得服务器请求最终到达内部网络。

示例:先将域名A解析为公网IP,待服务器连接时迅速将其改为内网IP,利用SsRF漏动访问内网资源。

IP别名与端口转发:利用某些服务的特性,例如IPv6环回地址、IP别名或者端口转发,绕过内网IP的限制。

CDN/代理漏动:利用CDN节点或者代理服务器的特性,间接达到访问内网资源的目的。

进制转换:转换8进制、16进制,[::]这个也是127.0.0.1的写法

xip.io:临时dns

127.0.0.1.xip.io

替换协议:替换成http、dict/file/ldap/gopher/sftp

127。0。0。1

image.png

xip.io 是一个免费的 DNS (Domain Name System) 服务,提供了一种简单、即时的方式来为你的本地开发环境设置临时域名,以便在不修改 hosts 文件或配置正式 DNS 记录的情况下,通过浏览器或其他网络客户端访问到本地运行的应用程序。

工作原理: xip.io 基于一个创新的 DNS 解析规则,它允许你将任何 IP 地址与一个自定义域名关联起来,只需将 IP 地址作为子域名附加到 xip.io 域名后即可。具体格式如下:

1<IP_ADDRESS>.xip.io


例如,如果你在本地开发环境中运行了一个 Web 服务器,其 IP 地址为 192.168.1.100,并且你想通过域名 myapp.local 访问它,可以构造如下域名:

1192.168.1.100.xip.io


然后,当你在浏览器中输入 http://myapp.local.192.168.1.100.xip.io 时,DNS 请求会被解析到 192.168.1.100 这个本地 IP 地址。这样,你就能够在本地网络中使用一个类似真实域名的 URL 来访问你的应用,而无需进行任何复杂的 DNS 配置。

主要优点:

便捷性:无需修改系统 hosts 文件或配置 DNS 服务器,只需按照特定格式构造域名即可。

灵活性:适用于任何 IP 地址(包括动态 IP),且支持多级子域名。例如,如果你想模拟一个子域名结构,如 api.myapp.local,可以使用 api.myapp.192.168.1.100.xip.io。

跨平台兼容:由于基于标准 DNS 协议,xip.io 在各种操作系统和设备上都能正常工作,便于团队成员间共享和测试本地开发环境。

应用场景:

Web 开发:在开发 Web 应用时,使用 xip.io 可以方便地通过域名访问本地运行的服务器,有助于模拟生产环境,进行前端与后端的联调、跨域问题调试等。

移动应用开发:对于需要通过 URL 访问后端服务的移动应用,xip.io 允许开发者在测试设备上直接使用域名访问本地开发服务器,无需额外的代理配置。

微服务架构:在开发涉及多个相互依赖的服务的项目时,xip.io 可以帮助你为每个服务分配一个易于记忆的域名,便于在本地环境中进行集成测试。

需要注意的是,xip.io 主要适用于本地开发和测试场景,不建议在生产环境中使用。此外,由于其依赖于公共 DNS 服务,可能存在一定的延迟和稳定性风险。在需要长期稳定、安全的域名服务时,应选择配置正规的 DNS 服务。

实战案例

例如,在某Web应用中,用户可以通过输入URL来分享外部内容。假设应用对输入的URL未做严格过滤,公鸡者可能输入内网IP http://10.0.0.1/admin/,试图访问内部管理界面。为了防御这种公鸡,开发者应当实施严格的输入验证,仅允许对外公开的、已知安全的域,并且禁用或者过滤掉不安全的协议类型。而对于绕过的防范,则需要不断跟进最新的公鸡手段和技术,及时更新安全策略和补丁。

SsRF和XSS结合

XSS(跨站脚本公鸡)和SsRF(服务器端请求伪造)是两种不同的公鸡类型,但在某些情况下可以结合使用以增强公鸡效果。

一种常见的结合方式是利用XSS漏动来执行SsRF公鸡,即通过注入恶意脚本,来触发服务器端发起的请求。

下面是一个简单的示例:

XSS漏动注入: 公鸡者通过XSS漏动成功注入恶意脚本到目标网站。

<script>
// 在这里执行SsRF公鸡
</script>

发起SsRF公鸡: 公鸡者在注入的脚本中发起SsRF公鸡,例如向内部网络发起请求或者访问本地文件。


<script>
// 发起SsRF公鸡
var xhr = new XMLHttpRequest();
xhr.open('GET', 'http://内部服务器IP/敏感路径', true);
xhr.send();
</script>

通过这种方式,公鸡者可以利用受感染的用户的身份来发起对内部服务器的请求,可能导致敏感数据泄露或者进一步的公鸡。

要防止这种公鸡,应该加强对输入数据的过滤和验证,以及实施严格的安全策略,包括确保内部服务器不会受到来自外部的未经授权的访问。

2.

image.png

10.0.30.15:9001/vul/ssrf/ssrf_fgc.php?file=file:///etc/pssswd

就会显示出passwd

相关文章
|
2月前
|
安全 网络协议 NoSQL
SSRF漏洞深入利用与防御方案绕过技巧
SSRF漏洞深入利用与防御方案绕过技巧
175 0
|
4月前
|
安全 网络安全 PHP
RCE攻击绕过WAF详解
RCE攻击绕过WAF详解
76 3
|
7月前
|
SQL
14、sql注入绕过技术
14、sql注入绕过技术
55 0
|
7月前
|
安全 Java Shell
网络安全-webshell详解(原理、检测与防御)
网络安全-webshell详解(原理、检测与防御)
871 1
|
安全 前端开发 数据库
CSRF攻击原理以及防御
CSRF攻击原理以及防御
|
安全 NoSQL 前端开发
CSRF攻击原理及防御
CSRF攻击原理及防御
174 0
CSRF攻击原理及防御
|
SQL 安全 Java
网络安全-webshell详解(原理、攻击、检测与防御)
网络安全-webshell详解(原理、攻击、检测与防御)
1332 0
网络安全-webshell详解(原理、攻击、检测与防御)
|
缓存 安全 网络协议
网络安全-SSRF漏洞原理、攻击与防御
网络安全-SSRF漏洞原理、攻击与防御
444 0
网络安全-SSRF漏洞原理、攻击与防御
|
机器学习/深度学习 安全 程序员
网络安全-跨站请求伪造(CSRF)的原理、攻击及防御
网络安全-跨站请求伪造(CSRF)的原理、攻击及防御
281 0
网络安全-跨站请求伪造(CSRF)的原理、攻击及防御
|
安全 前端开发 网络安全
渗透测试服务 针对CSRF漏洞检测与代码防御办法
XSS跨站以及CSRF攻击,在目前的渗透测试,以及网站漏洞检测中 ,经常的被爆出有高危漏洞,我们SINE安全公司在对客户网站进行渗透测试时,也常有的发现客户网站以及APP存在以上的漏洞,其实CSRF以及XSS跨站很容易被发现以及利用,在收集客户网站域名,以及其他信息的时候,大体的注意一些请求操作,前端输入,get,post请求中,可否插入csrf代码,以及XSS代码。
186 0
渗透测试服务 针对CSRF漏洞检测与代码防御办法

热门文章

最新文章