SSRF漏洞 | iwebsec

SSRF漏洞介绍

这篇文章写地很好。

SSRF(Sever-Side-Request-Forgery,服务端请求伪造)是一种由攻击者构造请求,由服务端发起请求的安全漏洞。SSRF的形成大多是由于服务端提供了从其他服务器应用获取数据的功能且没有对目标地址做过滤与限制。【摘自《web安全攻防》】

正常情况下的请求应该是这样的。
在这里插入图片描述
但是如果服务器存在SSRF漏洞,则会出现下图的情况。
在这里插入图片描述

00-SSRF漏洞验证

页面ssrf/index.php实现的功能是获取GET参数url,然后将url的内容返回网页上。先尝试获取外网 URL 试试看,测试一下经典的百度:

在这里插入图片描述

那么接下来尝试获取内网 URL 看看,测试请求 127.0.0.1 看看会有什么反应:

在这里插入图片描述

测试依然成功,我们看到了 “套娃” 现象。 通过以上两次请求,已经基本上可以确定这个输入框就是传说中的 SSRF 的漏洞点了,即没有对用户的输入进行过滤,导致可以用来发起任意的内网或者外网的请求。

01-SSRF漏洞文件读取

既然当前站点存在 SSRF 的话,我们可以尝试配合 file 协议来读取本地的文件信息,首先尝试使用 file 协议来读取 /etc/passwd 文件试试看:

http://8.134.148.36:8001/ssrf/index.php?url=file:///etc/passwd

在这里插入图片描述

成功读取到了本地的文件信息,现在尝试来获取存在 SSRF 漏洞的本机内网 IP 地址信息,确认当前资产的网段信息:

http://8.134.148.36:8001/ssrf/index.php?url=file:///etc/hosts

在这里插入图片描述

可以判断当前机器的内网地址为 172.17.0.2,那么接下来就可以对这个内网资产段进行信息收集了。

02-SSRF漏洞内网探测

BP 下使用迭代器模式爆破,设置好要爆破的 IP 和 端口即可批量探测出端口开放的信息:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

03-SSRF漏洞内网应用攻击

可以根据上面的端口开放情况,猜测内网开放什么服务,比如6379是Redis的服务,3306是MySQL的服务等等。

这是以前的写的一篇文章, 中间件漏洞 | weblogic-ssrf 。中间件 weblogic 存在 ssrf 漏洞,通过该漏洞探测到内网存在主机并开放了Redis服务,因此可以通过 ssrf 漏洞攻击内网应用。

源码分析

<?php  
	if (isset($_GET['url'])) { 
		//GET获取参数url
		$link = $_GET['url']; 
		$filename = './curled/'.rand().'txt'; 
		//初始化curl组件
		$curlobj = curl_init($link); 
		$fp = fopen($filename,"w"); 
		curl_setopt($curlobj, CURLOPT_FILE, $fp); 
		curl_setopt($curlobj, CURLOPT_HEADER, 0); 
		//请求url
		curl_exec($curlobj); 
		curl_close($curlobj); 
		fclose($fp); 
		$fp = fopen($filename,"r"); 
		$result = fread($fp, filesize($filename));  
		fclose($fp); 
		echo $result; 
	} 
?> 
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值