dedecms /member/uploads_edit.php SQL Injection Vul

catalog

1. 漏洞描述
2. 漏洞触发条件
3. 漏洞影响范围
4. 漏洞代码分析
5. 防御方法
6. 攻防思考

1. 漏洞描述

Dedecms 5.3版本下的member/uploads_edit.php中的未限制文件上传漏洞允许远程攻击者通过上传一个有两个扩展的文件名的文件,然后借助未知向量访问该文件而执行任意代码。这已经通过带.jpg.php的文件名所证实

Relevant Link:

http://cve.scap.org.cn/CVE-2009-2270.html
http://www.cnnvd.org.cn/vulnerability/show/cv_id/2009070008

2. 漏洞触发条件

0x1: POC

<form id="frmUpload" enctype="multipart/form-data" action="http://127.0.0.1/dedecms5.5/member/uploads_edit.php?dopost=save&title=ss&oldurl=1‘.php" method="post">
<!-- oldurl是注入点 -->
    <input type="file" name="addonfile" id="addonfile" size="50"><br>
    <input name="mode" type="hidden" value="2">
    <input id="btnUpload" type="submit" value="Upload">
</form>

Relevant Link:

http://www.wooyun.org/bug.php?action=view&id=48894
http://www.2cto.com/Article/201012/80026.html

3. 漏洞影响范围
4. 漏洞代码分析

/member/uploads_edit.php

else if($dopost==‘save‘)
{
    $title = HtmlReplace($title,2);
    if($mediatype==1) $utype = ‘image‘;
    else if($mediatype==2)
    {
        $utype = ‘flash‘;
    }
    else if($mediatype==3)
    {
        $utype = ‘media‘;
    }
    else
    {
        $utype = ‘addon‘;
    }
    $title = HtmlReplace($title,2);
    //获取"."前面的文件名
    $exname = ereg_replace("(.*)/","",$oldurl);
    //获取"."之外的扩展名
    $exname = ereg_replace("\.(.*)$","",$exname);
    //返回上传的文件名
    $filename = MemberUploads(‘addonfile‘,$oldurl,$cfg_ml->M_ID,$utype,$exname,-1,-1,true);
    //$filename带入函数查询
    SaveUploadInfo($title,$filename,$mediatype);
    ShowMsg("成功修改文件!","uploads_edit.php?aid=$aid");
}

\member\inc\inc_archives_functions.php

function SaveUploadInfo($title,$filename,$medaitype=1,$addinfos=‘‘)
{
    global $dsql,$cfg_ml,$cfg_basedir;
    if($filename==‘‘)
    {
        return false;
    }
    if(!is_array($addinfos))
    {
        $addinfos[0] = $addinfos[1] = $addinfos[2] = 0;
    }
    if($medaitype==1)
    {
        $info = ‘‘;
        $addinfos = GetImageSize($cfg_basedir.$filename,$info);
    }
    $addinfos[2] = @filesize($cfg_basedir.$filename);
    $row = $dsql->GetOne("Select aid,title,url From `#@__uploads` where url like ‘$filename‘ And mid=‘".$cfg_ml->M_ID."‘; ");
    $uptime = time();
    if(is_array($row))
    {
        $query = "Update `#@__uploads` set title=‘$title‘,mediatype=‘$medaitype‘,
                     width=‘{$addinfos[0]}‘,height=‘{$addinfos[1]}‘,filesize=‘{$addinfos[2]}‘,uptime=‘$uptime‘
                     where aid=‘{$row[‘aid‘]}‘; ";
        $dsql->ExecuteNoneQuery($query);
    }
    else
    {
        //$filename未进行过滤就带入SQL查询,造成SQL注入
        $inquery = "INSERT INTO `#@__uploads`(title,url,mediatype,width,height,playtime,filesize,uptime,mid)
           VALUES (‘$title‘,‘$filename‘,‘$medaitype‘,‘".$addinfos[0]."‘,‘".$addinfos[1]."‘,‘0‘,‘".$addinfos[2]."‘,‘$uptime‘,‘".$cfg_ml->M_ID."‘); ";
        $dsql->ExecuteNoneQuery($inquery);
    }
    return true;
}

5. 防御方法

/member/uploads_edit.php

else if($dopost==‘save‘)
{
    $title = HtmlReplace($title,2);
    if($mediatype==1) $utype = ‘image‘;
    else if($mediatype==2)
    {
        $utype = ‘flash‘;
    }
    else if($mediatype==3)
    {
        $utype = ‘media‘;
    }
    else
    {
        $utype = ‘addon‘;
    }
    $title = HtmlReplace($title, 2);
    /* 对$oldurl进行有效过滤 */
    $oldurl = HtmlReplace($oldurl);
    /* */
    $exname = preg_replace("#(.*)/#", "", $oldurl);
    $exname = preg_replace("#\.(.*)$#", "", $exname);
    $filename = MemberUploads(‘addonfile‘, $oldurl, $cfg_ml->M_ID, $utype,$exname, -1, -1, TRUE);
    SaveUploadInfo($title, $filename, $mediatype);
    ShowMsg("成功修改文件!", "uploads_edit.php?aid=$aid");
}

6. 攻防思考

Copyright (c) 2015 LittleHann All rights reserved

时间: 2024-10-18 02:30:24

dedecms /member/uploads_edit.php SQL Injection Vul的相关文章

dedecms /member/flink_main.php SQL Injection Vul

catalog 1. 漏洞描述 2. 漏洞触发条件 3. 漏洞影响范围 4. 漏洞代码分析 5. 防御方法 6. 攻防思考 1. 漏洞描述 会员模块中存在的SQL注入 Relevant Link http://www.cnseay.com/1959/ 2. 漏洞触发条件 1. 打开 http://127.0.0.1/dedecms/member/flink_main.php# 2. 在连接网址里面写入 http://sss2'),(8,1,@`'`),(8,(select user()),'33

dedecms /member/myfriend_group.php SQL Injection Vul

catalog 1. 漏洞描述 2. 漏洞触发条件 3. 漏洞影响范围 4. 漏洞代码分析 5. 防御方法 6. 攻防思考 1. 漏洞描述 Dedecms会员中心注入漏洞 Relevant Link http://exp.03sec.com/dedecms-%E4%BC%9A%E5%91%98%E4%B8%AD%E5%BF%83%E6%B3%A8%E5%85%A5%E6%BC%8F%E6%B4%9E10.shtml 2. 漏洞触发条件 1. 先打开: http://127.0.0.1/dedec

dedecms /member/pm.php SQL Injection Vul

catalog 1. 漏洞描述 2. 漏洞触发条件 3. 漏洞影响范围 4. 漏洞代码分析 5. 防御方法 6. 攻防思考 1. 漏洞描述 Dedecms会员中心注入漏洞 Relevant Link http://www.05112.com/anquan/ldfb/sql/2014/0209/7723.html 2. 漏洞触发条件 0x1: POC1 http://127.0.0.1/dedecms5.5/member/pm.php?dopost=read&id=1' and char(@`'`

dedecms /member/mtypes.php SQL Injection Vul

catalog 1. 漏洞描述 2. 漏洞触发条件 3. 漏洞影响范围 4. 漏洞代码分析 5. 防御方法 6. 攻防思考 1. 漏洞描述 Dedecms会员中心注入漏洞 Relevant Link http://www.yunsec.net/a/security/bugs/script/2012/1220/12127.html 2. 漏洞触发条件 因为是update注入,并且用了>ExecuteNoneQuery所以不能采用benchmark延时注入,但是可以通过一个"返回状态差异&qu

dedecms /member/edit_baseinfo.php SQL Injection Vul

catalog 1. 漏洞描述 2. 漏洞触发条件 3. 漏洞影响范围 4. 漏洞代码分析 5. 防御方法 6. 攻防思考 1. 漏洞描述 会员模块中存在的SQL注入 Relevant Link: http://www.grabsun.com/article/2015/1216455.html 2. 漏洞触发条件 1. 注册用户并且登陆 2. 打开http://127.0.0.1/dedecms5.5/member/edit_baseinfo.php 3. 填写完毕后,输入验证码,点击提交,打开

dedecms \plus\guestbook.php SQL Injection Vul By \plus\guestbook\edit.inc.php

catalog 1. 漏洞描述 2. 漏洞触发条件 3. 漏洞影响范围 4. 漏洞代码分析 5. 防御方法 6. 攻防思考 1. 漏洞描述 注射漏洞成功需要条件如下 1. php magic_quotes_gpc=off 2. 漏洞文件存在: plus/guestbook.php 3. 在数据库中: dede_guestbook也需要存在 Relevant Link: inurl:/plus/guestbook.php 2. 漏洞触发条件 1. http://localhost/dedecms5

dedecms /plus/feedback.php SQL Injection Vul

catalog 1. 漏洞描述 2. 漏洞触发条件 3. 漏洞影响范围 4. 漏洞代码分析 5. 防御方法 6. 攻防思考 1. 漏洞描述 1. Dedecms v5.7的plus\feedback.php SQL没有正确验证用户提供的输入,在实现上中存在注入漏洞 2. 攻击者可以利用DEDECMS的变量覆盖漏洞向数据库中注入WEBSHELL Payload 3. 在另一个代码流,攻击者可以触发二次注入 Relevant Link: http://sebug.net/vuldb/ssvid-60

ecshop /search.php SQL Injection Vul

catalog 1. 漏洞描述 2. 漏洞触发条件 3. 漏洞影响范围 4. 漏洞代码分析 5. 防御方法 6. 攻防思考 1. 漏洞描述 ECSHOP商城系统Search.php页面过滤不严导致SQL注入漏洞 Relevant Link: http://sebug.net/vuldb/ssvid-62317 2. 漏洞触发条件 0x1: POC <?php ini_set("max_execution_time",0); error_reporting(7); function

ecshop /pick_out.php SQL Injection Vul By Local Variable Overriding

catalog 1. 漏洞描述 2. 漏洞触发条件 3. 漏洞影响范围 4. 漏洞代码分析 5. 防御方法 6. 攻防思考 1. 漏洞描述 在进行输入变量本地模拟注册的时候,没有进行有效的GPC模拟过滤处理,导出key键注入 Relevant Link: http://bbs.ecshop.com/thread-150545-1-1.html 2. 漏洞触发条件 1. /pick_out.php漏洞未修复 2. magic_quotes_gpc = Off 0x1: POC #!/usr/bin