一、ssrf漏洞定义

SSRF漏洞:SSRF是一 种由攻击者构造请求,由服务端发起请求的安全漏洞。一般情况下,ssrf攻击的目标是外网无法访问的内部系统

SSRF漏洞( 服务器端请求伪造 )也被称为跨站点端口攻击,主要用于端口扫描 。

二、ssrf漏洞产生原因

SSRF漏洞产生的原因是由于服务端提供了从其他服务器应用获取数据的功能且没有对地址和协议等做过滤和限制

三、ssrf漏洞原理

SSRF原理:大多是由于服务端提供了从其他服务器应用获取数据的功能且没有对目标地址做过滤与限制,从而导致出现了SSRF漏洞,导致本地文件泄露,可以攻击到内网,获取账号密码等信息。

四、ssrf漏洞常用函数

协议: file协议, gopher协议,dict协议,sftp协议,tftp协议,http/https协议,ldap协议

五、ssrf漏洞危害

1、可以对服务器所在的内网、本地进行端口扫描,获取一些服务的banner信息

2、攻击运行在内网或本地的应用程序(比如溢出)

3、对内网web应用进行指纹识别,通过访问应用存在的默认文件实现;

4、攻击内外网的web应用,主要是使用get参数就可以实现的攻击(比如struts2漏洞利用等)

5、利用file协议读取本地文件

6、利用Redis未授权访问,HTTP CRLF注入达到getshell

7、DOS攻击(请求大文件,始终保持连接keep alive always)等等

六、ssrf漏洞可能出现的地点

1、 通过url地址分享网页内容功能处

2、转码服务

3、在线翻译

4、图片加载与下载(一般通过url地址加载或下载图片处)

5、图片、文章收藏功能

6、未公开的api实现以及其他调用url的功能

7、云服务器商(它会远程执行一些命令来判断网站是否存活等,所以如果可以捕获相应的信息,就可以进行ssrf测试)

8、有远程图片加载的地方(编辑器之类的远程图片加载处)

9、网站采集、网页抓取的地方(一些网站会针对你输入的url进行一些信息采集工作)

10、头像处(某易就喜欢远程加载头像,例如:http://www.xxxx.com/image?url=http://www.image.com/1.jpg)

11、邮件系统(比如接收邮件服务器地址)

12、编码处理, 属性信息处理,文件处理(比如ffpmg,ImageMagick,docx,pdf,xml处理器等)

13、从远程服务器请求资源(upload from url 如discuz!;import & expost rss feed 如web blog;使用了xml引擎对象的地方 如wordpress xmlrpc.php)

七、如何验证ssrf漏洞

1、排除法:浏览器f12查看源代码看是否是在本地进行了请求

比如:该资源地址类型为 http://www.xxx.com/a.php?image=URL,URL参数若是其他服务器地址就可能存在SSRF漏洞

2、dnslog等工具进行测试,看是否被访问(可以在盲打后台,用例中将当前准备请求的url和参数编码成base64,这样盲打后台解码后就知道是哪台机器哪个cgi触发的请求)

3、抓包分析发送的请求是不是通过服务器发送的,如果不是客户端发出的请求,则有可能是存在漏洞。接着找存在HTTP服务的内网地址

  3.1、从漏洞平台中的历史漏洞寻找泄漏的存在web应用内网地址

  3.2、通过二级域名暴力猜解工具模糊猜测内网地址

  3.3、通过file协议读取内网信息获取相关地址

4、直接返回的Banner、title、content等信息

5、留意布尔型SSRF,通过判断两次不同请求结果的差异来判断是否存在SSRF,类似布尔型sql盲注方法。

八、ssrf漏洞的绕过方法

1、直接攻击本地地址,127.0.0.1

2、利用[::]绕过localhost,http://[::]:80/ >>> http://127.0.0.1

3、@绕过,http://example.com@127.0.0.1

4、短地址绕过,http://dwz.cn/11SMa >>> http://127.0.0.1

5、使用特效域名绕过( DNS解析 ),http://127.0.0.1.xip.io/

6、利用DNS解析, 在域名上设置A记录,指向127.0.0.1

7、修改"type=file"为"type=url",如:上传图片处修改上传,将图片文件修改为URL

8、利用Enclosed alphanumerics

9、使用句号绕过,127。0。0。1 >>> 127.0.0.1

10、利用进制转换绕过,115.239.210.26 >>> 016373751032

方法:将这个IP地址的4位十进制数分别转换成16进制数,然后将这个16进制数转换一起转为8进制数

八进制在最前面加0,十六进制在最前面加0x

11、使用特效地址绕过,http://0/

12、使用相关协议绕过, file协议, gopher协议,dict协议等相关协议

13、30x跳转绕过

14、多种绕过方法一同组合使用, 各种绕过进行自由组合

九、SSRF新型攻击手法的流程

1. 利用服务器发起一个 HTTPS 请求。
2. 请求时会发起一个 DNS 解析请求,DNS 服务器回应一个 TTL 为 0 的结果,指向攻击者的服务器。
3. 攻击者服务器响应请求,并返回一个精心构造过的 SessionID,并延迟几秒后回应一个跳转。
4.客户端接收到这个回应之后会进行跳转,这次跳转时由于前面那一次 DNS 解析的结果为 TTL 0,则会再次发起一次解析请求,这次返回的结果则会指向 SSRF 攻击的目标

举例:例如本地的memcache数据库
5. 因为请求和跳转时的域名都没有变更,本次跳转会带着之前服务端返回的精心构造过的 SessionID 进行,发送到目标的那个端口上。
6. 则达到目的,成功对目标端口发送构造过的数据,成功 SSRF。

十、如何防御和修复ssrf漏洞

1、过滤返回信息,验证远程服务器对请求的响应是比较容易的方法。

2、在返回结果展示给用户之前先验证返回的信息是否符合标准。

3、禁用不需要的协议,仅仅允许http和https请求。

4、设置URL白名单, 对URL参数进行过滤,或者使得URL参数用户不可控

5、限制内网IP(使用gethostbyname( )判断是否为内网IP)

6、限制请求的端口为http常用的端口,比如 80、443、8080、8090

7、统一配置错误信息,避免用户可以根据错误信息来判断远程服务器的端口状态

8、 去除url中的特殊字符 ,更改ip地址写法,严格检验服务器的请求

9、 如果是域名的话,将url中的域名改为ip,对协议和地址进行验证(http改为ip,防止dns rebinding)

10、请求的url为3中返回的url

11、请求时设置host header为ip,防止以ip请求时,某些网站无法访问的问题

12、 不跟随30x跳转(跟随跳转需要从1开始重新检测)

ssrf漏洞随笔的更多相关文章

  1. WebLogic SSRF 漏洞 (简要翻译)

    [Ref]http://blog.gdssecurity.com/labs/2015/3/30/weblogic-ssrf-and-xss-cve-2014-4241-cve-2014-4210-cv ...

  2. SSRF漏洞总结

    SSRF漏洞:(服务端请求伪造)是一种由攻击者构造形成由服务端发起请求的一个安全漏洞.一般情况下,SSRF攻击的目标是从外网无法访问的内部系统.(正是因为它是由服务端发起的,所以它能够请求到与它相连而 ...

  3. 浅谈SSRF漏洞

    SSRF漏洞是如何产生的? SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由攻击者构造形成由服务端发起请求的一个安全漏洞.一般情况下,SSRF是要目标网站 ...

  4. SSRF漏洞挖掘经验

    SSRF概述 SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由攻击者构造形成由服务端发起请求的一个安全漏洞.一般情况下,SSRF攻击的目标是从外网无法访问 ...

  5. SSRF漏洞浅析

    大部分web应用都提供了从其他的服务器上获取数据的功能,如使用用户指定的URL,web应用可以获取图片,下载文件,读取文件内容等.如果服务端提供了从其他服务器应用获取数据的功能且没有对目标地址做过滤与 ...

  6. weblogic系列漏洞整理 -- 5. weblogic SSRF 漏洞 UDDI Explorer对外开放 (CVE-2014-4210)

    目录 五. weblogic SSRF 漏洞 UDDI Explorer对外开放 (CVE-2014-4210) 1. 利用过程 2. 修复建议 一.weblogic安装 http://www.cnb ...

  7. SSRF漏洞

    概念:服务端在获取攻击者输入的url时,如果这个过程中,服务端并没有对这个url做任何的限制和过滤,那么就很有可能存在ssrf漏洞. 漏洞利用:SSRF攻击的目标一般是外网无法访问的内部系统.攻击者可 ...

  8. 一个网络设备的常见功能--连通性检查SSRF漏洞--被黑客利用当做扫描器

    一.我们先来看一下很多网络设备都有的一个常见功能--连通性测试: 很多网络设备都具备与其他设备通信,联动的功能,例如网络设备联动安全设备,网络设备联动认证设备等等.此时都需要一个对端IP和对端端口号作 ...

  9. SSRF漏洞的挖掘经验

    本文转自:https://sobug.com/article/detail/11 SSRF概述 SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由攻击者构造 ...

随机推荐

  1. js笔记8

    1.js数据类型 基本数据类型:string.undefined.null.boolean.nember 引用数据类型:object.array.function 二者的区别? 基本的数据类型就是简单 ...

  2. 对ES6中类class以及实例对象、原型对象、原型链之间关系的详细总结

    1. 类 ES6 中新增加了类的概念,可以使用 class 关键字声明一个类,之后用这个类来实例化对象.即类的用途:实例化对象. // 创建一个Person类 class Person { } // ...

  3. 使用Flex实现图片旋转。

    当用flex实现图片旋转的时候,遇到了这样的问题:截图之后,图片还是会继续旋转,应该是canvas这个还有旋转的角度,所以看到效果跟你截图保存下来的效果不一样. 函数: 角度转换为弧度,这里面涉及到了 ...

  4. 明明是企业管理软件,CRM系统为何被抵触?

    小编在昨天的文章<CRM系统为什么没有达到预期效果?>中曾说过,CRM客户管理系统没有达到预期效果的其中一个原因是CRM系统的使用率太低,而根本的原因是员工的抵触.明明是企业管理大师,CR ...

  5. 面试题二:JVM

    JVM垃圾回收的时候如何确定垃圾? 有2种方式: 引用计数 每个对象都有一个引用计数属性,新增一个引用时计数加1,引用释放时计数减1,计数为0时可以回收: 缺点:无法解决对象循环引用的问题: 可达性分 ...

  6. 羊城杯wp babyre

    肝了好久,没爆破出来,就很难受,就差这题没写了,其他三题感觉挺简单的,这题其实也不是很难,我感觉是在考算法. 在输入之前有个smc的函数,先动调,attach上去,ida打开那个关键函数. 代码逻辑还 ...

  7. 源码解析Java Attach处理流程

    前言 当Java程序运行时出现CPU负载高.内存占用大等异常情况时,通常需要使用JDK自带的工具jstack.jmap查看JVM的运行时数据,并进行分析. 什么是Java Attach 那么JVM自带 ...

  8. 题解 guP1948 【[USACO08JAN]电话线Telephone Lines】

    二分+dij题目 首先读一遍题目,一定要仔细读(不要问我为什么,我就是受害者qwq 你会发现最终的费用是由最长的电话线决定的,而非电话线长度和. 至此就有了一个基本思路--枚举(二分)出可能的最长电话 ...

  9. SpringBoot | 2.1 SpringBoot自动装配原理

    @ 目录 前言 1. 引入配置文件与配置绑定 @ImportResource @ConfigurationProperties 1.1 @ConfigurationProperties + @Enab ...

  10. L inux系统安全及应用---暴力破解密码

    系统安全及应用一.开关机安全控制① 调整BIOS引导设置② GRUB限制二.终端登录安全控制① 限制root只在安全终端登录② 禁止普通用户登录举例三.系统弱口令检测① Joth the Ripper ...