CTFHub技能树通关教程——SSRF漏洞原理攻击与防御(一)(超详细总结)

admin 2024年6月16日22:55:05评论9 views字数 2892阅读9分38秒阅读模式

CTFHub技能树通关教程——SSRF漏洞原理攻击与防御(一)(超详细总结)

什么是SSRF?

即服务器端请求伪造(Server-Side Request Forgery),是一种网络攻击技术,攻击者利用服务器上的应用程序向任意服务器发起请求或者操作,这些请求可能包括但不限于文件读取、命令执行、端口扫描等。由于这些请求是从服务器内部发起的,因此他们可以绕过服务器的外部访问控制,访问内部网络资源或者执行恶意操作。

CTFHub技能树通关教程——SSRF漏洞原理攻击与防御(一)(超详细总结)

它的危害

SSRF攻击通常发生再服务器应用程序允许用户输入被用于构建请求 URL的情况下。如果输入没有得到适当的验证和过滤,攻击者就可以利用这一点来发起恶意请求。例如,如果一个应用程序允许用户输入一个URL来下载文件,攻击者可能会输入指向内部服务器的URL,从而访问或者下载内部文件。

如何防御?

  1. 1. 验证所有用户输入,确保它们是合法的和预期的。

  2. 2. 限制可访问的URL或资源,避免访问内部网络或敏感资源。

  3. 3. 使用白名单机制,只允许访问预定义的、安全的URL。

  4. 4. 对于敏感操作,实施额外的安全措施,如身份验证和授权检查。

SSRF漏洞复现

靶场:CTFHub,Pikachu

内网访问

CTFHub技能树通关教程——SSRF漏洞原理攻击与防御(一)(超详细总结)

开启环境后,查看题目条件,找出位于127.0.0.1的flag.php

CTFHub技能树通关教程——SSRF漏洞原理攻击与防御(一)(超详细总结)

页面什么也没有

CTFHub技能树通关教程——SSRF漏洞原理攻击与防御(一)(超详细总结)

根据题目要求尝试使用这个url参数,进行内网访问,但是页面什么也没有

CTFHub技能树通关教程——SSRF漏洞原理攻击与防御(一)(超详细总结)

仔细观察url参数前面有一个_,将它删掉试试,测试成功

CTFHub技能树通关教程——SSRF漏洞原理攻击与防御(一)(超详细总结)

伪协议读取文件

CTFHub技能树通关教程——SSRF漏洞原理攻击与防御(一)(超详细总结)

常见的伪协议类型有

  • • file:///

  • • dict://

  • • sftp://

  • • ldap://

  • • tftp://

  • • gopher://

这里我们用到的是file:/// --本地文件传输协议,主要用来访问本地计算机中的文件,构造payload如下。

/?url=file:///var/www/html/flag.php
CTFHub技能树通关教程——SSRF漏洞原理攻击与防御(一)(超详细总结)

鬼的,他就三个?对于刚入门的小白,我懵逼了。。。。直到几分钟后我查看了他的源码。

CTFHub技能树通关教程——SSRF漏洞原理攻击与防御(一)(超详细总结)

emmmm,这不就是我们的结果嘛,这关过了

端口扫描

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

截取到请求包之后发送到攻击器(Intruder)

CTFHub技能树通关教程——SSRF漏洞原理攻击与防御(一)(超详细总结)

添加payload,这里只有一个需要爆破,所以攻击方式选狙击手

CTFHub技能树通关教程——SSRF漏洞原理攻击与防御(一)(超详细总结)

设置payload为数值型,因为需要扫描的端口是8000-9000,所以payload配置如下

CTFHub技能树通关教程——SSRF漏洞原理攻击与防御(一)(超详细总结)

验证匹配结果,并开始攻击

CTFHub技能树通关教程——SSRF漏洞原理攻击与防御(一)(超详细总结)

端口爆破成功,成功找到flag,端口为8248

CTFHub技能树通关教程——SSRF漏洞原理攻击与防御(一)(超详细总结)

尝试使用浏览器访问内网的8248端口,成功!

CTFHub技能树通关教程——SSRF漏洞原理攻击与防御(一)(超详细总结)

Gopher协议的利用

定义:Gopher是早期的Internet信息检索系统,通过索引将用户引导至不同资源,主要使用TCP 70端口。在WWW普及前,它是主要的检索工具,但现已基本过时,使用较少。

POST

题目:这次是发一个HTTP POST请求.对了.ssrf是用php的curl实现的.并且会跟踪302跳转.加油吧骚年

这个题目中呢有这么一个文件,在127.0.0.1中的flag.php

CTFHub技能树通关教程——SSRF漏洞原理攻击与防御(一)(超详细总结)

当我尝试输入了各种值,抓包分析,直到我查看了源码。。

CTFHub技能树通关教程——SSRF漏洞原理攻击与防御(一)(超详细总结)

这里有一个key,还是被注释了的,不知道是干嘛的先复制下来2161b9fb20ae6d96b0604425b1de64be,尝试使用file协议查看php源码,访问默认web目录var/www/html/flag.php,即

?url=file:///var/www/html/flag.php

这时候即可查看源码,尝试进行分析

<?php
//关闭所有的错误报告
error_reporting(0);
//判断请求的ip地址是否是127.0.0.1
if($_SERVER["REMOTE_ADDR"]!="127.0.0.1"){
//如果不是127.0.0.1,就返回这段字符串
echo"Just View From 127.0.0.1";
return;
}
//falg的获取
$flag=getenv("CTFHUB");
$key=md5($flag);
//判断post请求中是否存在key这个参数,key就是刚刚页面上看到的注释的值
if(isset($_POST["key"])&&$_POST["key"]==$key){
echo$flag;
exit;
}
?>

<formaction="/flag.php"method="post">
<inputtype="text"name="key">
<!-- Debug: key=<?phpecho$key;?>-->
</form>

每个项目中默认主页都是index,这是一个php靶场,那么这首页就是index.php

/?url=file:///var/www/html/index.php

访问之后是个空页面,但是查看网页源码会发现,尝试分析一下源码

<?php
//关闭错误报告
error_reporting(0);
//判断url参数是否存在
if(!isset($_REQUEST['url'])){
//不存在就跳转到当前根目录
header("Location: /?url=_");
exit;
}
//初始化curl
$ch=curl_init();
//指定请求的url
curl_setopt($ch, CURLOPT_URL,$_REQUEST['url']);
//告诉curl不返回http头,只返回http正文
curl_setopt($ch, CURLOPT_HEADER,0);
//允许cURL跟随重定向。如果服务器响应包含重定向,cURL将自动处理。
curl_setopt($ch, CURLOPT_FOLLOWLOCATION,1);
curl_exec($ch);
curl_close($ch);

这段代码没有包含错误处理,也没有设置CURLOPT_RETURNTRANSFER选项,这可能导致cURL的输出直接被输出到浏览器,所以可以利用此curl漏洞进行攻击

构造POST请求包

访问flag.php查看源码找到key,并输入到输入框,使用bp拦截

CTFHub技能树通关教程——SSRF漏洞原理攻击与防御(一)(超详细总结)

尝试使用 Gopher 协议向服务器发送 POST 包

在使用Gopher协议发送POST请求包时,HOST、Content-Type和Content-Length请求头是必不可少的,但是在GET请求中可以没有。key值为自己所获得的。

在向服务器发送请求时,首先浏览器会进行一次URL解码,其次服务器收到请求后,在执行curl功能时,进行第二次解码。

所以我们需要对构造的请求包进行两次编码:

第一次解码

CTFHub技能树通关教程——SSRF漏洞原理攻击与防御(一)(超详细总结)

将解码的结果复制下来,保存在txt文档中,其中需要将%0A替换成 %0D%0A

因为%0A是ASCII 码中的换行符,在URL的二次编码中不需要,否则会导致curl执行错误,导致我们拿不到正确的结果

CTFHub技能树通关教程——SSRF漏洞原理攻击与防御(一)(超详细总结)

替换完成之后,再次进行url编码,这里的url就是源码中的curl要执行的

CTFHub技能树通关教程——SSRF漏洞原理攻击与防御(一)(超详细总结)
//使用gopher协议,构造payload
?url=gopher://127.0.0.1:80/_二次编码的url(注意别少了前面那个下划线)

得到结果!

CTFHub技能树通关教程——SSRF漏洞原理攻击与防御(一)(超详细总结)

原文始发于微信公众号(小羽网安):CTFHub技能树通关教程——SSRF漏洞原理攻击与防御(一)(超详细总结)

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年6月16日22:55:05
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   CTFHub技能树通关教程——SSRF漏洞原理攻击与防御(一)(超详细总结)http://cn-sec.com/archives/2853966.html

发表评论

匿名网友 填写信息