美文网首页
SSRF漏洞的原理及防御

SSRF漏洞的原理及防御

作者: 文景大大 | 来源:发表于2020-08-28 08:01 被阅读0次

一、什么是SSRF漏洞

服务端请求伪造(Server-Side Request Forgery),是指服务器使用用户输入的URL进行资源请求时,未对该URL进行安全校验,从而导致请求内容不可控,其危害主要表现为:

  • 可以被黑客利用,将服务器当作代理攻击其它任意的服务器;
  • 对外网、内网和本机的端口进行扫描,枚举出内网服务;
  • 访问内网或者本机上不对外开放的web内容;
  • 攻击内网或者本地有其它漏洞的应用程序;
  • 使用file等协议读取内网的文件,造成信息泄露(支持多种网络协议的API);
  • 执行上传的恶意脚本(支持执行脚本的API);

二、SSRF漏洞的绕过

我们以Java代码为例展示这个漏洞是如何发生的:

@PostMapping(value = "/getOtherSiteContent")
public ModelAndView getOtherSiteContent(HttpServletRequest request, HttpServletResponse response){
  String uri = request.getRequestURI();
  // 未对用户输入的URL做校验就打开连接
  HttpURLConnection connection = (HttpURLConnection)new URL(uri).openConnection();
  // 省略处理逻辑...
}

倘若,黑客传入的URL是localhost:8080,那么就可以逐步扫描本地所有对外开放的端口服务;同样的,黑客也可以猜测一些常见的内网IP地址进行输入,从而扫描内网的一些原本不对外开放的端口服务;这些通过BP工具可以很容易地做到。

假设开发人员已经意识到了如上的问题,采用了注入黑名单和白名单的方法,那么就能解决SSRF漏洞问题吗?不一定。

  • 如果黑客构造的URL是带有@符号的,比如http://123.com@danger.com,那么实际访问的是@后面的http://danger.com这个地址;如此,可以绕过白名单校验;
  • 如果目标URL使用了诸如xip.io这样的开源泛域名服务,比如将www.example.xip.io映射为www.danger.com那么黑客构造的URL是http://www.example.xip.io,那么实际访问的地址是www.danger.com的内容;如此可以绕过黑名单;
  • 如果黑客使用十进制来访问某个ip,比如http://10.10.10.10写成了http://168430090,也是可以正常访问的;如此可以绕过黑名单;
  • 现在有很多长短链接转换工具,可以将原来的的URL替换为另外一个URL,从而绕过黑名单;

三、如何防御SSRF漏洞

  • 只允许发起HTTP(S)协议的请求;
  • 限制访问端口;
  • 限制不能访问内网IP;
  • 特殊符号和字符过滤;
  • 设置白名单/黑名单;

四、参考内容

SSRF 漏洞记录

SSRF漏洞

相关文章

  • 安全包开发整体架构

    SSRF防御 SSRF安全漏洞以及防御实现 XSS防御 xss漏洞以及防御实现 CSRF防御 CSRF安全漏洞以及...

  • SSRF漏洞的原理及防御

    一、什么是SSRF漏洞 服务端请求伪造(Server-Side Request Forgery),是指服务器使用用...

  • 长亭chaitin.cn的技术面

    宽字节注入的原理 CSRF原理及防御 SSRF原理及防御 xss:expression()支持的浏览器 渗透的几个...

  • weblogic漏洞系列-SSRF漏洞

    0x01前言: SSRF漏洞的原理这里就不在细说了,这里主要讲解weblogic中SSRF漏洞的检测办法,以及利用...

  • 【SSRF】SSRF漏洞攻击与防御

    0x01 概述 SSRF(Server-side Request Forge, 服务端请求伪造)。由攻击者构造的攻...

  • SSRF(服务端请求伪造)漏洞

    漏洞原理: SSRF服务器的请求伪造漏洞,一种由攻击者构造形成由服务器发起请求的漏洞。 漏洞原因: 服务器提供从其...

  • ssrf攻击内网应用

    一、weblogic ssrf攻击redis Weblogic中存在一个SSRF漏洞,利用该漏洞可以发送任意HTT...

  • Weblogic SSRF 漏洞复现

    关于SSRF漏洞的原理以及利用已经记录过了,可以访问https://www.jianshu.com/p/6bf77...

  • SSRF安全漏洞以及防御实现

    简介 SSRF即服务端请求伪造,利用漏洞伪造服务端发起请求,从而突破客户端获取不到数据的限制 形成的原因 服务端提...

  • SSRF漏洞

      最近给业务测试,发现了SSRF(服务器请求伪造攻击)漏洞,这里简单给大家做个介绍。 SSRF漏洞的定义   S...

网友评论

      本文标题:SSRF漏洞的原理及防御

      本文链接:https://www.haomeiwen.com/subject/eqftdktx.html