SSRF漏洞,绕过,实战化演示

SSRF 漏洞

第一部分:基础知识介绍

1.介绍ssrf漏洞

SSRF(Server-Side Request Forgery,服务度器端请求伪造)是一种由攻击者构造请求,由服务端发起请求的安全漏洞。一般情况下,SSRF攻击的目标是外网无法访问的内部系统(正因为请求是由服务端发起的,所以服务端能请求到与自身相连而与外网隔离的内部系统)。

2.SSRF漏洞原理

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

主要攻击方式如下所示。
·对外网、服务器所在内网、本地进行端口扫描,获取一些服务的banner信息。
·攻击运行在内网或本地的应用程序。
·对内网web应用进行指纹识别,识别企业内部的资产信息。
·攻击内外网的web应用,主要是使用HTTP GET请求就可以实现的攻击(struts2,SQli等)。
·利用file协议读取本地文件等。

3.SSRF漏洞利用

SSRF漏洞利用的测试地址:

http://localhost:83/ssrf/index.php?url=http://www.baidu.com

在这里插入图片描述
上述是本地测试的界面,通过get的获取方式,页面回显的是百度的界面。

但是,当设置参数URL为内网地址时,则会泄露内网信息,例如,当url=192.168.1.30:3306时,页面返回"当前地址不允许连接到MySQL服务器",说明192.168.1.30:3306存在MySQL服务,如下图所示

在这里插入图片描述
访问ssrf/index.php?url=file:///C:/Windows/win.ini即可读取本地文件,如下图所示
在这里插入图片描述

4.SSRF漏洞代码分析

本地测试代码如下所示:

<?php
function curl($url){
	$ch = curl_init();
	curl_setopt($ch,CURLOPT_URL,$url);
	curl_setopt($ch,CURLOPT_HEADER,0);
	curl_exec($ch);
	curl_close($ch);
}

$url = $_GET['url'];
curl($url);
?>

该程序通过获取GET参数URL,通过curl_init()初始化curl组件后,将参数URL带入curl_setopt($ch,CURLOPT_URL,$url),然后调用所以curl-exec请求该URL。

5.SSRF漏洞修复建议

(1)限制请求的端口只能为web端口,只允许访问HTTP和HTTPS的请求。
(2)限制不能访问内网的IP,以防止对内网进行攻击。
(3)屏蔽返回的详细信息。

第二部分:实战化演示

1.内网访问

提示:访问内网127.0.0.1的flag.php

http://challenge-455599c6830d543e.sandbox.ctfhub.com:10800/?url=127.0.0.1/flag.php

在这里插入图片描述
直接得到flag

ctfhub{2a1ab7d8552cacdc7b2dc137}

2.伪协议读取文件

在这里插入图片描述
根据提示,尝试读取一下WEB目录下的flag.php,应为这个环境是搭在linux下的,所以根目录就在/var/www/html/flag.php

http://challenge-deb27f53ed205e8b.sandbox.ctfhub.com:10800/?url=file:///var/www/html/flag.php

在这里插入图片描述
以为思路错了,查看页面源代码得到flag
在这里插入图片描述

ctfhub{1e4d3dad5f8b35ab41fd83dd}

3.端口扫描

在这里插入图片描述
根据提示

来来来性感CTFHub在线扫端口,据说端口范围是8000-9000哦,

那就直接拿出BurpSuit,抓包

在这里插入图片描述
将其发送到Intruder
在这里插入图片描述
设置好Payload type为number的类型,根据提示端口从8000到9000,步长为:1
在这里插入图片描述
上述设置做好以后,开始爆破
在这里插入图片描述
爆破结束关键看一下,长度不一致的地方,看返回情况,直接得到flag.
在这里插入图片描述

ctfhub{26dc8a065ee36c7a09087957}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值