catalog

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

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=""><br>
<input name="mode" type="hidden" value="">
<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,);
if($mediatype==) $utype = 'image';
else if($mediatype==)
{
$utype = 'flash';
}
else if($mediatype==)
{
$utype = 'media';
}
else
{
$utype = 'addon';
}
$title = HtmlReplace($title,);
//获取"."前面的文件名
$exname = ereg_replace("(.*)/","",$oldurl);
//获取"."之外的扩展名
$exname = ereg_replace("\.(.*)$","",$exname);
//返回上传的文件名
$filename = MemberUploads('addonfile',$oldurl,$cfg_ml->M_ID,$utype,$exname,-,-,true);
//$filename带入函数查询
SaveUploadInfo($title,$filename,$mediatype);
ShowMsg("成功修改文件!","uploads_edit.php?aid=$aid");
}

\member\inc\inc_archives_functions.php

function SaveUploadInfo($title,$filename,$medaitype=,$addinfos='')
{
global $dsql,$cfg_ml,$cfg_basedir;
if($filename=='')
{
return false;
}
if(!is_array($addinfos))
{
$addinfos[] = $addinfos[] = $addinfos[] = ;
}
if($medaitype==)
{
$info = '';
$addinfos = GetImageSize($cfg_basedir.$filename,$info);
}
$addinfos[] = @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]."','','".$addinfos[2]."','$uptime','".$cfg_ml->M_ID."'); ";
$dsql->ExecuteNoneQuery($inquery);
}
return true;
}

5. 防御方法

/member/uploads_edit.php

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

6. 攻防思考

Copyright (c) 2015 LittleHann All rights reserved

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

  1. dedecms /member/flink_main.php SQL Injection Vul

    catalog . 漏洞描述 . 漏洞触发条件 . 漏洞影响范围 . 漏洞代码分析 . 防御方法 . 攻防思考 1. 漏洞描述 会员模块中存在的SQL注入 Relevant Link http://w ...

  2. dedecms /member/resetpassword.php SQL Injection Vul

    catalog . 漏洞描述 . 漏洞触发条件 . 漏洞影响范围 . 漏洞代码分析 . 防御方法 . 攻防思考 1. 漏洞描述 DEDEcms SQL注入漏洞导致可以修改任意用户密码 2. 漏洞触发条 ...

  3. dedecms /member/reg_new.php SQL Injection Vul

    catalog . 漏洞描述 . 漏洞触发条件 . 漏洞影响范围 . 漏洞代码分析 . 防御方法 . 攻防思考 1. 漏洞描述 Dedecms会员中心注入漏洞 2. 漏洞触发条件 http://127 ...

  4. dedecms /member/pm.php SQL Injection Vul

    catalog . 漏洞描述 . 漏洞触发条件 . 漏洞影响范围 . 漏洞代码分析 . 防御方法 . 攻防思考 1. 漏洞描述 Dedecms会员中心注入漏洞 Relevant Link http:/ ...

  5. dedecms /member/myfriend_group.php SQL Injection Vul

    catalog . 漏洞描述 . 漏洞触发条件 . 漏洞影响范围 . 漏洞代码分析 . 防御方法 . 攻防思考 1. 漏洞描述 Dedecms会员中心注入漏洞 Relevant Link http:/ ...

  6. dedecms /member/mtypes.php SQL Injection Vul

    catalog . 漏洞描述 . 漏洞触发条件 . 漏洞影响范围 . 漏洞代码分析 . 防御方法 . 攻防思考 1. 漏洞描述 Dedecms会员中心注入漏洞 Relevant Link http:/ ...

  7. dedecms /member/edit_baseinfo.php SQL Injection Vul

    catalog . 漏洞描述 . 漏洞触发条件 . 漏洞影响范围 . 漏洞代码分析 . 防御方法 . 攻防思考 1. 漏洞描述 会员模块中存在的SQL注入 Relevant Link: http:// ...

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

    catalog . 漏洞描述 . 漏洞触发条件 . 漏洞影响范围 . 漏洞代码分析 . 防御方法 . 攻防思考 1. 漏洞描述 注射漏洞成功需要条件如下 . php magic_quotes_gpc= ...

  9. dedecms /plus/feedback.php SQL Injection Vul

    catalog . 漏洞描述 . 漏洞触发条件 . 漏洞影响范围 . 漏洞代码分析 . 防御方法 . 攻防思考 1. 漏洞描述 . Dedecms v5.7的plus\feedback.php SQL ...

随机推荐

  1. c语言 指针与地址的区别

    指针由两部分组成,指针的类型和指针的值(也就是变量的地址). 指针和地址的区别: 地址只是一堆十六进制的字符,对应着内存条的某段内存, 而指针本身有地址,指针的值也是一个地址,指针本身还有类型,这与单 ...

  2. UDP的坏处

    众所周知,UDP是一个面向无连接的协议.通信时不可靠的.这就会出现一些问题 (1)数据报丢失 因为是无连接,的所以可以用recvfrom和sendto来接收和发送消息,如果socket是阻塞的,那么当 ...

  3. Caffe学习系列(22):caffe图形化操作工具digits运行实例

    上接:Caffe学习系列(21):caffe图形化操作工具digits的安装与运行 经过前面的操作,我们就把数据准备好了. 一.训练一个model 右击右边Models模块的” Images" ...

  4. 常用 redis 命令(for php)

    Redis 主要能存储 5 种数据结构,分别是 strings,hashes,lists,sets 以及 sorted sets. 新建一个 redis 数据库 $redis = new Redis( ...

  5. retrofit2中ssl的Trust anchor for certification path not found问题

    在retrofit2中使用ssl,刚刚接触,很可能会出现如下错误. java.security.cert.CertPathValidatorException: Trust anchor for ce ...

  6. HTML5之CSS3 3D transform 剖析式学习之一

    最近坐地铁发现“亚洲动物基金”在地铁上做了很多公益广告,比较吸引人的是一个月熊的广告.做的很可爱.回去就搜了一下,发现这个网站是HTML5做的,非常炫. 所以想学习一下,方法就是传统的学习办法,模仿. ...

  7. WCF x509证书安装问题汇总

    1.win7及以后系统可以使用certlm.msc打开localmachine的证书管理界面.win7前的版本需要使用mmc打开控制台,然后选择文件->添加删除管理单元->选择证书.2.部 ...

  8. 9.28 Java基本数据类型作业

    要求:声明各数据类型变量或常量,赋值并进行输出. 以下为代码: public class SJLX {//公共类 public static void main(String[] args) { // ...

  9. Java设计模式(七) 模板模式

    [模板模式]在一个方法中定义了一个算法的骨架,而将一些步骤延迟到子类中.模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤. 1,定义模板类 package com.pattern ...

  10. python日常-list and dict

    什么是list: list 觉得算是python日常编程中用的最多的python自带的数据结构了.但是python重的list跟其他语言中的并不相同. 少年..不知道你听说过python中的appen ...