SSRF漏洞简介

目录

漏洞概述

漏洞危害

漏洞出现点

分享

图片的加载与下载

图片、文章收藏功能

利用参数中的关键字来查找

SSRF漏洞验证

SSRF常用协议

http/https协议

file协议

dict协议

常见危险函数

漏洞利用方式

SSRF常见绕过方法 

常见限制

防御办法


漏洞概述

         SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由攻击者构造特殊形成的请求,并且由指定服器端发起恶意请求的一个安全漏洞。由于业务运行的服务器处于内外网边界,并且可通过利用当前的这台服务器访问到与外部网络隔离的内网应用,所以一般情况下,SSRF漏洞的攻击目标是攻击者无法直接访问的内网系统。

         SSRF漏洞的形成大多是由于服务端提供了,从其他服务器应用获取数据的功能而没有对目标地址做过滤和限制。例如,黑客操控服务端从指定URL地址获取网页文本内容,加载指定地址的图片,下载等,利用的就是服务端请求伪造,SSRF漏洞可以利用存在缺陷的Web应用作为代理攻击远程和本地的服务器.

漏洞危害

对内网进行端口扫描和主机存活探测等敏感信息收集 攻击内外网其他存在漏洞的应用(主要是Get参数攻击) 造成内外网DDOS攻击 通过file://读取本地任意文件,通过dict协议获取服务器端口服务,通过http协议探测web应用等等。

漏洞出现点

分享

通过url地址分享文章,例如

http://localhost:8086/pikachu-master/vul/ssrf/ssrf_curl.php?url=http://127.0.0.1/pikachu-master/vul/ssrf/ssrf_info/info1.php

通过url参数的获取来实现点击链接的时候跳到指定的分享文章。如果对此功能中没有对目标地址的范围做过滤与限制,则就存在着SSRF漏洞。

图片的加载与下载

通过url地址来加载或下载图片

http://image.xxx.com/image.php?image=nup/ididhfid

 图片加载存在于很多的编辑器中,编辑器上传图片处,有的是如载远程图片到服务器内。还有一些采用了加载远程图片的形式,本地文章加载了设定好的远程图片服务器上的图片地址,如果没对加载的参数做限制可能造成 SSRF.

图片、文章收藏功能

http://title.xxx.com/title?title=file:/letc/passwd

例如title参数是文章的标题地址,代表了一个文章的地址链接,请求后返回文章是否保存,收藏的返回信息。如果保存,收藏功能采用了此种形式保存文章,则在没有限制参数的形式下可能存在SSRF

利用参数中的关键字来查找

例如以下的关键字:

share

wap

url

link

src

source

target

u

3g

display

sourceurl

imageURL

domain

...

SSRF漏洞验证

SSRF漏洞是让服务器发送请求的安全漏洞,所以我们就可以通过抓包分析发送的请求是否是由服务器发送的,从而来判断是否存在SSRF漏洞。

SSRF常用协议

http/https协议

当前应用获取用户传递过来的url参数后端发送请求,并且将最终的请求结果返回到html前端页面。

file协议

如果服务器端对请求资源所使用的协议方式没有进行限制,那么就可以通过fle协议访问当前服务器的本地文件。

dict协议

通过 dict 协议可以远程访问一个指定的tcp 端口,并且会返回端口所提供的服务的部分组件信息,当目标端口开放(有服务信息显示,但会报错)

常见危险函数

file_get_contents()

fsockopen()

curl_exec()

漏洞利用方式

  • 能扫描内部网络,获取端口,服务信息。
  • 攻击运行在内网或本地的应用程序。
  • 对内网web进行指纹识别
  • 对内部主机和端口发送请求包进行攻击
  • file协议读取本地文件

SSRF常见绕过方法 

1.@          http://abc.com@127.0.0.1

2.添加端口号      http://127.0.0.1:8080

3.短地址        https://0x9.me/cuGfD 

4.可以指向任意ip的域名  xip.io                             原理是DNS解析。xip.io可以指向任意域名,即127.0.0.1.xip.io,可解析为127.0.0.1

5.ip地址转换成进制来访问 192.168.0.1=3232235521(十进制) 

6.非HTTP协议

7.DNS Rebinding

8.利用[::]绕过                 http://[::]:80/ >>> http://127.0.0.1

9.句号绕过                  127。0。0。1 >>> 127.0.0.1

10.利用302跳转绕过     使用https://tinyurl.com生成302跳转地址

常见限制

采用http基本身份认证的方式绕过。即@
http://www.xxx.com@www.xxc.com

  • 限制请求IP不为内网地址

当不允许ip为内网地址时
(1)采取短网址绕过
(2)采取特殊域名
(3)采取进制转换

  •  限制请求只为http协议

(1)采取302跳转
(2)采取短地址

防御办法

  • 限制请求的端口只能为Web端口,只允许访问HTTP和HTTPS的请求。
  • 限制不能访问内网的IP,以防止对内网进行攻击。
  • 屏蔽返回的详细信息。
  • 25
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值