教你如何巧妙化解SSRF漏洞攻击

SSRF是一种由攻击者构造请求,由服务端发起请求的安全漏洞。一般情况下,ssrf攻击的目标是外网无法访问的内部系统。简单来说就是利用服务器漏洞以服务器的身份发送一条构造好的请求给服务器所在内网进行攻击。

SSRF漏洞( 服务器端请求伪造 )也被称为跨站点端口攻击,主要用于端口扫描 。主要产生的原因大都是由于服务端提供了从其他服务器应用获取数据的功能且没有对目标地址做过滤与限制。比如从指定URL地址获取网页文本内容,加载指定地址的图片,下载等等。
教你如何巧妙化解SSRF漏洞攻击_第1张图片

有哪些危害?

攻击者想要访问主机B上的服务,但是由于存在防火墙或者主机B是属于内网主机等原因导致攻击者无法直接访问主机B。而服务器A存在SSRF漏洞,这时攻击者可以借助服务器A来发起SSRF攻击,通过服务器A向主机B发起请求,从而获取主机B的一些信息。

  • 内网探测:攻击者若利用 SSRF 漏洞可以对内网服务器、办公机进行端口扫描、资产扫描、漏洞扫描,发现服务器内部的可用端口和漏洞等。
  • 窃取本地和内网敏感数据:攻击者实施 SSRF 攻击后可以访问和下载内网的敏感数据,利用文件传输协议访问服务器本地文件,上传木马或者病毒。
  • 攻击服务器本地或内网应用:攻击者借助 SSRF 漏洞发现服务器内部存在的其他漏洞,然后利用发现的漏洞进一步发起攻击利用。
  • 跳板攻击:借助存在 SSRF 漏洞的服务器对内或对外发起攻击,以隐藏自己真实 IP 地址用来防止受害者溯源和追踪。
  • 绕过安全防御:如果利用 SSRF 漏洞攻击者可以很简单的绕过常见的防御措施和设备,直接对内网进行攻击。
  • 无视 CDN 的防护:CDN 主要可以对网站服务器的真实地址进行隐藏,而 SSRF 则可以无视 CDN 加速技术的防御直接识别真实的 ip
    地址。
  • 攻击 web 应用:攻击内外网的 web 应用,主要是使用 GET 参数就可以实现的攻击。
  • 进行指纹识别:对内网 WEB 应用进行指纹识别,通过访问默认文件实现。
  • 实现 CRLF 注入:利用 Redis 未授权访问,HTTP CRLF 注入实现 getshell。

该如何防御SSRF攻击?

  • 禁止服务端跳转,防止以跳转方式绕过HTTP协议限制
  • 禁用不需要的协议,仅仅允许HTTP和HTTPS请求。可以防止类似于file://、gopher://、ftp://等引起的问题
  • 设置URL白名单或者限制内网IP,避免应用被用来获取内网数据,攻击内网
  • 限制请求的端口为HTTP常用的端口,例如80、443、8080、8090
  • 统一错误信息,避免用户可以根据错误信息来判断远端服务器的端口状态
  • 过滤返回信息,验证远程服务器对请求的响应是比较容易的方法。如果 web 应用是去获取某一种类型的文件。那么在把返回结果展示给用户之前先验证返回的信息是否符合标准。

你可能感兴趣的:(服务器,内网攻击,网络安全,SSRF攻击,漏洞)