一、什么是SSRF攻击
SSRF攻击,即服务器端请求伪造(Server-Side Request Forgery)攻击,是一种由攻击者构造请求,利用存在缺陷的Web应用作为代理,让服务端发起请求的安全漏洞。
一般情况下,SSRF攻击的目标是外网无法访问的内部系统。简单来说就是利用服务器漏洞以服务器的身份发送一条构造好的请求给服务器所在内网进行攻击。
当服务器向用户提交的未被严格校验的URL发起请求的时候,就有可能会发生服务器端请求伪造(SSRF,即Server-Side Request Forgery)攻击。
二、SSRF攻击类型
内部SSRF:攻击者利用漏洞与应用程序的后端或内部系统交互。这种情况下,攻击者可能试图访问数据库、HTTP服务或其他仅在本地网络可用的服务。这种类型的攻击能够绕过防火墙,利用服务器作为代理来访问通常无法访问的网络资源,甚至探测和扫描内部网络的主机和端口。
外部SSRF:攻击者利用漏洞访问外部系统。攻击者可能构造恶意的URL,利用Web应用程序的代理功能或URL处理机制,向存在漏洞的服务器发送请求,以获取外部网络资源或执行其他恶意操作。
三、SSRF是如何形成
SSRF 形成的原因大都是由于服务端提供了从其它服务器获取数据的功能,比如使用户从指定的URL web应用获取图片、下载文件、读取文件内容等,但又没有对目标地址做严格过滤与限制,导致攻击者可以传入任意的地址来让后端服务器对其发送请求,并返回对该目标地址请求的数据。具体主要来自以下三个方面:
1、URL处理不当:Web应用程序在处理用户提交的URL时,没有进行充分的验证和过滤。攻击者可以构造恶意的URL,利用这些漏洞来发起SSRF攻击。
2、代理功能存在漏洞:一些Web应用程序提供了代理功能,允许用户通过Web界面发起网络请求。如果这些代理功能没有实现正确的安全机制,攻击者可以利用它们来发起SSRF攻击。
3、文件包含和重定向漏洞:Web应用程序中的文件包含和重定向功能也可能存在漏洞,攻击者可以利用这些漏洞来读取敏感文件或执行恶意操作。
四、SSRF攻击的原理
SSRF攻击的原理基于Web应用程序的代理功能或URL处理机制。攻击者通过构造恶意的URL或利用Web应用程序的代理功能,向存在漏洞的服务器发送请求。由于Web应用程序没有对这些请求进行充分的验证和过滤,它会将这些请求转发给目标服务器。
攻击者可以构造指向内部网络资源的URL,利用Web应用程序作为代理来访问这些资源。由于请求是由Web应用程序发起的,因此可以绕过一些传统的安全防护措施,如防火墙等。通过解析响应内容,攻击者可以获取到目标地址的敏感信息,或者执行其他恶意操作。
此外,攻击者还可以利用SSRF漏洞来探测和扫描内网中的其他服务器和设备,了解网络拓扑结构,为后续的攻击做准备。由于存在防火墙的防护,导致攻击者无法直接入侵内网,这时攻击者可以以服务器为跳板发起一些网络请求,从而攻击内网的应用及获取内网数据。具体有以下几个方面:
1、输入URL
应用程序允许用户输入用于发起请求的 URL,例如,图片链接、文件下载链接、API 请求地址等。
2、没有校验
应用程序没有对用户提供的 URL 进行充分的校验,或者校验不严格,给了攻击者构造或修改请求的 URL 的机会。
3、发起请求
应用程序使用用户提供的 URL 发起服务器端的 HTTP 请求或其他类型的请求。
4、利用漏洞
攻击者利用这个漏洞,构造特殊的 URL,使得服务器端应用程序向攻击者指定的目标服务器发起请求。
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/2401_84968222/article/details/138828993
实验步骤
1.修改url访问百度
2.查看本地文件
3.扫描内网主机开放端口
4.gopherus
使用ssrf和gopher直接将webshell写入服务器