首页 > 其他分享 >ssrf检测防御与绕过

ssrf检测防御与绕过

时间:2024-09-27 13:51:55浏览次数:9  
标签:请求 ssrf 公鸡 IP 防御 io 服务器 绕过 SsRF

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

ssrf检测防御与绕过_DNS

概述

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

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

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

  • 访问内部网络资源,如内网服务器、数据库和其他服务;
  • 利用内部API获取敏感数据;
  • 执行内部服务的命令或操作,如删除文件、修改系统配置等;
  • 发现和利用内部系统的其他漏动;
  • 通过结合其他漏动(如DNS rebinding)突破内外网隔离,实施更深层次的公鸡。

防御SSRF的主要策略包括:

  • 对请求的目标地址进行严格的白名单或黑名单过滤,只允许访问特定的、安全的外部资源;
  • 不信任用户提供的URL,并对URL进行规范化处理,剔除不安全的协议;
  • 使用反向代理或防火墙规则限制服务器对外部网络的访问权限;
  • 在需要服务器发起请求的场景下引入随机令牌验证机制,确保请求的合法性;
  • 对于基于HTTP的请求,采用安全性更高的代理模式,而非直接让服务器与目标进行通信。

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

SsRF检测

ssrf检测防御与绕过_IP_02

检测方法与实例:

  1. 自动化扫描:使用安全扫描工具(如OWASP ZAP、Burp Suite等)针对Web应用程序的所有对外请求接口进行深度扫描,查找是否存在可通过用户输入控制请求目标的函数或模块。
    示例:如果应用程序允许上传图片并通过服务器直接访问外部URL以获取图片,安全扫描工具会尝试注入各种类型的URL(如内网IP、文件协议、localhost等)来确认是否有不受限的请求。
  2. 人工审计:通过审查源代码或逆向工程,找出处理外部URL请求的地方,检查是否进行了充分的输入验证和过滤。
    示例:查看代码逻辑,如果看到类似httpGet(request.getParameter("url"))这样的语句,表明可能存在SsRF风险,因为用户可以控制要请求的URL。

SsRF防御

防御措施与实践:

  1. 严格的输入验证:确保所有的外部请求参数都经过严格的格式和内容验证,仅允许访问预定义白名单内的主机和端口。
    示例:仅允许请求指向指定域名列表的HTTP/HTTPS资源,禁止任何内网IP、localhost、特殊协议(如file、gopher、dict等)。
  2. 限制请求范围:使用防火墙规则限制服务器对外部网络的访问权限,防止敏感资源暴露。
  3. 随机令牌验证:对于需要发起服务器端请求的操作,增加随机令牌作为请求的一部分,确保只有合法客户端才能发起有效的请求。
  4. 回源限制:对于CDN等场景,设置正确的回源策略,避免因回源请求而暴露内网。

SsRF绕过

绕过技术与案例:

  1. 协议转换:公鸡者可能会尝试使用特殊的协议(如file:///、ftp://、ldap://等)来绕过简单的URL过滤器。
    示例:若服务器对URL的过滤不够严谨,允许了data:javascript:等伪协议,公鸡者可能借此泄露内部数据或者执行恶意脚本。
  2. DNS解析漏动:利用DNS Rebinding公鸡,将恶意域名解析为内网IP地址,使得服务器请求最终到达内部网络。
    示例:先将域名A解析为公网IP,待服务器连接时迅速将其改为内网IP,利用SsRF漏动访问内网资源。
  3. IP别名与端口转发:利用某些服务的特性,例如IPv6环回地址、IP别名或者端口转发,绕过内网IP的限制。
  4. CDN/代理漏动:利用CDN节点或者代理服务器的特性,间接达到访问内网资源的目的。
  5. 进制转换:转换8进制、16进制,[::]这个也是127.0.0.1的写法
  6. xip.io:临时dns
  7. 127.0.0.1.xip.io
  8. 替换协议:替换成http、dict/file/ldap/gopher/sftp
  9. 127。0。0。1

ssrf检测防御与绕过_DNS_03

ssrf检测防御与绕过_IP_04

ssrf检测防御与绕过_服务器_05

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 配置。

主要优点:

  1. 便捷性:无需修改系统 hosts 文件或配置 DNS 服务器,只需按照特定格式构造域名即可。
  2. 灵活性:适用于任何 IP 地址(包括动态 IP),且支持多级子域名。例如,如果你想模拟一个子域名结构,如 api.myapp.local,可以使用 api.myapp.192.168.1.100.xip.io
  3. 跨平台兼容:由于基于标准 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公鸡,即通过注入恶意脚本,来触发服务器端发起的请求。

下面是一个简单的示例:

  1. XSS漏动注入: 公鸡者通过XSS漏动成功注入恶意脚本到目标网站。
<script>
// 在这里执行SsRF公鸡
</script>
  1. 发起SsRF公鸡: 公鸡者在注入的脚本中发起SsRF公鸡,例如向内部网络发起请求或者访问本地文件。
<script>
// 发起SsRF公鸡
var xhr = new XMLHttpRequest();
xhr.open('GET', 'http://内部服务器IP/敏感路径', true);
xhr.send();
</script>

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

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

2.

ssrf检测防御与绕过_IP_06

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

就会显示出passwd


标签:请求,ssrf,公鸡,IP,防御,io,服务器,绕过,SsRF
From: https://blog.51cto.com/zhuzhuxia/12128192

相关文章

  • SSRF类型的CTF题目[De1CTF 2019]SSRF Me1
    启动BUUCTF靶场,先查看一下提示:显示出flag的文件路径是/flag.txt发现是一段python代码,整理一下:#!/usr/bin/envpython#encoding=utf-8fromflaskimportFlaskfromflaskimportrequestimportsocketimporthashlibimporturllibimportsysimportosimportjson......
  • PHP反序列化2(OC绕过.wakeup绕过)
    考点2:OC绕过、wakeup绕过<aside>......
  • 绕过反爬虫机制:数据采集的全面解决方案
    在采集数据时遇到反爬虫程序是一个常见的问题,网站为了保护其数据的安全和防止资源被滥用,会采取一系列反爬虫措施。以下是一些常见的反爬虫程序问题及应对策略:常见问题IP封锁:网站通过检测同一IP地址的频繁请求来判断是否有爬虫行为,并对频繁访问的IP进行封锁。请求频率限制......
  • 命令执行面对各种绕过
    1.过滤cat反写成tac2,过滤tac可以通过转义符进行绕过,单引号或者双引号如:ta''c,,ta""c3.过滤关键字如过滤flag可以通过fla*,fla?(使用?时需要注意,文件名剩余长度是多少,?就需要几个)4.过滤空格可以用%09(过滤数字和%时不影响使用)、%0a、${IFS}、<等方式来过滤5.过滤分割符 |&;......
  • Kernel Stack栈溢出攻击及保护绕过
    前言本文介绍Linux内核的栈溢出攻击,和内核一些保护的绕过手法,通过一道内核题及其变体从浅入深一步步走进kernel世界。QWB_2018_core题目分析start.shqemu-system-x86_64\-m128M\-kernel./bzImage\-initrd./core.cpio\-append"root=/dev/ramrw......
  • Kernel Stack栈溢出攻击及保护绕过
    前言本文介绍Linux内核的栈溢出攻击,和内核一些保护的绕过手法,通过一道内核题及其变体从浅入深一步步走进kernel世界。QWB_2018_core题目分析start.shqemu-system-x86_64\-m128M\-kernel./bzImage\-initrd./core.cpio\-append"root=/dev/ramrwconsol......
  • 构建高可用和高防御力的云服务架构第五部分:PolarDB(5/5)
    引言云计算与数据库服务云计算作为一种革命性的技术,已经深刻改变了信息技术行业的面貌。它通过提供按需分配的计算资源,使得数据存储、处理和分析变得更加灵活和高效。在云计算的众多服务中,数据库服务扮演着核心角色。数据库服务不仅负责存储和管理海量数据,还支持复杂的查询和......
  • 数字通云平台智慧政务 login 存在登录绕过
    0x01漏洞描述:        数字通云平台智慧政务OA产品是基于云计算、大数据、人工智能等先进技术,为政府部门量身定制的智能化办公系统。该系统旨在提高政府部门的办公效率、协同能力和信息资源共享水平,推动电子政务向更高层次发展。        数字通云平台智慧政......
  • 构建高可用和高防御力的云服务架构:从DDoS高防到PolarDB
    引言随着互联网技术的飞速发展,网络环境已经成为我们日常生活和商业活动中不可或缺的一部分。然而,这种依赖也带来了新的挑战,尤其是在网络安全领域。其中,分布式拒绝服务(DDoS)攻击因其破坏性强、难以防御而成为网络安全的主要威胁之一。本文主要讲解架构:DDOS高防->SLB负载均衡->EC......
  • 构建高可用和高防御力的云服务架构第一部分:深入解析DDoS高防(1/5)
    引言在数字化时代,网络安全已成为全球关注的焦点。随着互联网技术的快速发展和应用的广泛深入,网络安全形势日益严峻。特别是分布式拒绝服务(DDoS)攻击,以其破坏性强、难以防范的特点,对个人、企业乃至国家安全构成了严重威胁。当前网络安全形势概述2024年,网络安全形势依然严峻。......