一、概念
SSRF(Server-Side Request Forgery:服务器端请求伪造)
SSRF漏洞(服务器端请求伪造):是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。一般情况下,SSRF攻击的目标是从外网无法访问的内部系统。(正是因为它是由服务端发起的,所以它能够请求到与它相连而与外网隔离的内部系统)
我的理解是,正常情况下,我们无法访问内网,或者说无法向内网发送报文,但是ssrf是通过服务器访问内网,由于服务器属于内部系统,那么内网就不会拒绝服务器的请求,从而达到一个访问内网的目的。
正常我们发送请求的过程:
客户端----->服务器(未过滤)------>目标 地址
可以看到,最后发送目标地址的报文是由服务器发出的,倘若服务器对客户端的url不加以过滤处理,就可能造成srrf漏洞
二、ssrf漏洞实例
理解一个漏洞的最快方法就是通过实例取了解它
这里有一个网站,它希望我们通过GET输入其他的网站,从而跳转到我们输入的网页
如果我们输入www.baidu.com,那我们就来到了百度的页面
倘若我不按规矩走,输入它内网的地址以及文件既127.0.0.1/flag.php,就有可能访问到flag.php里面的内容
这就是一个简单的ssrf漏洞例子
产生漏洞后,产生的危害有
任意访问内网的文件
DOS攻击(请求大文件,始终保持连接占用服务器资源)
攻击web应用等
三、ssrf漏洞产生原因
这里有一个网上大佬总结的ssrf漏洞的图,总结的很详细
主要谈一下利用方式,主要就是这四种协议
首先这是我搭建的一个网页,它的想法是希望我们输入一个url,从而跳转到那个网页
下面是后端代码
<?php
function curl($url