针对 SSRF 漏洞的黑白名单限制

针对 SSRF 漏洞的黑白名单限制


`


前言

SSRF (Server-Side Request Forgery) 漏洞是一种安全漏洞,攻击者可以借助该漏洞向目标服务器发起请求,获取敏感信息或者执行恶意操作。以下是 SSRF 漏洞的危害:

  1. 获取敏感信息:攻击者通过 SSRF 漏洞可以访问内部网络,获取敏感数据如数据库密码、加密秘钥等,对受害者造成重大损失。

  2. 网络攻击:攻击者可以通过 SSRF 漏洞访问内部网络服务,如 SSH、定时任务等,进一步控制服务器,发起网络攻击。

  3. 服务拒绝:攻击者可以通过 SSRF 漏洞向目标服务器发起大量请求,让服务器瘫痪或者变得不可用。

  4. 跨站点请求伪造:攻击者可以利用 SSRF 漏洞构造恶意请求,使目标服务器与其他站点通信,触发跨站点请求伪造漏洞。

综上所述,SSRF 漏洞的危害非常大,攻击者可以利用该漏洞获取受害人敏感信息,进而通过控制目标服务器发起攻击,并且对目标服务器造成不可逆的损失。
下面我们通过pikachu靶场来演示如何防范 SSRF 漏洞。
在这里插入图片描述


漏洞复现

首先来演示一下pikachu靶场中的 ssrf 漏洞

在这里插入图片描述

这里可以看到让我们点击

在这里插入图片描述

会跳转出一首诗,但是我们可以看到这里url框中出现了url=http://127.0.0.1/pikachu/vul/ssrf/ssrf_info/info1.php,这就是漏洞点,我们可以通过这个漏洞访问目标机的文件
?url=file://c:\windows\system32\drivers\etc\hosts

在这里插入图片描述

这里就打开了hosts文件

防护

在这里插入图片描述

这里就是文件路径,我们可以先看一看文件内容

在这里插入图片描述

可以看到这个文件目录下有两个.php文件,其中漏洞出现的文件是在ssrf_curl.php文件中

在这里插入图片描述

防护的方式不外乎两种,一种是黑名单,一种是白名单,下来分别展示

黑名单

黑名单的作用主要是限制某些对象的行为或访问权限,防止其对系统或者用户造成威胁或者骚扰
代码如下:

//黑名单.pho
$URL = trim($_GET['url']);
echo $URL."<br \>";
$substitutions = array(
    'file' => '',
    'system32' => '',
    'windows' => '',
    'c:' => '',
);
$URL = str_replace( array_keys( $substitutions ), $substitutions , $URL);
echo ('黑客');

第一步将GET接收到的url中的空格全部去掉
第二步定义一个数组,将key转换为value
第三步是将出现的在url中的key转换为value,然后保存带url中

在这里插入图片描述

白名单

白名单是针对特定项目或系统而设立的一种安全机制,它允许指定的特定用户或客户端进入系统或使用功能,其他用户或客户端则被禁止。
代码如下:

$URL = trim($_GET['url']);
$octet = explode( "." , $URL);
echo $octet[1]."<br \>";
if ($octet[1] != "php"){
	die("抓到你了");
}
$URL=$octet[0].".".$octet[1];

第一步将GET接收到的url中的空格全部去掉
第二步创建一个数组将获取的url以.为关键字分开
第三步判断第二部分是否为php

在这里插入图片描述

  • 22
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值