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. AI: Jarvis

    AI: Jarvis   扎克伯格本周二在facebook发布了一篇文章,介绍自己利用个人时间开发的一套在自己家里使用的AI系统,并将它命名为Jarvis,对!就是电影钢铁侠里的AI助手Jarvis. ...

  2. Oracle中使用Entity Framework 6.x Code-First方式开发

    去年写过一篇EF的简单学习笔记,当时EF还不支持Oracle的Code-First开发模式,今天无意又看了下Oracle官网,发现EF6.X已经支持了,并且给出了二篇教程(英文版): 1.Using ...

  3. spring mvc4:异常处理

    前面学习过struts2的异常处理,今天来看下spring mvc4的异常处理: 一.Servlet配置文件修改 <bean id="exceptionResolver" c ...

  4. XmlSpy / XSD 以及 验证

    很早以前看过一句话:“XML就象空气”,在企业应用开发中XML是一个重要的数据交换标准.而XSD则可以用来校验XML的数据格式是否正确. 一个典型的XSD文件如下: <?xml version= ...

  5. UC~移动端的IE!!!坑总结

    1.接入过WAP版支付宝支付的应该会发现,支付宝页面在UC中巨丑,完全就是诺基亚时代的网页.你可能会怪它是支付宝的问题吧.但你用QQ浏览器打开,很好啊:你在电脑用火狐.Chrome打开都很好啊:那你试 ...

  6. Web Worker 是什么鬼?

    前言 前端工程师们一定有过这样的体验,当一个页面加载了大量的 js 文件时,用户界面可能会短暂地"冻结".这很好理解,因为 js 是单线程的语言.我们再走的极端点,一段 js 中出 ...

  7. 利用manifest文件对程序目录下的dll进行分类

    1 背景 对于大部分的券商和机构投资者,只能通过有交易所交易系统接入资质的券商提供的柜台系统来进行现货交易.相对于期货市场,现货市场的柜台系统千差万别,接入协议有明文字符串.二进制数据和FIX协议等, ...

  8. 硬件升级win8.1重新安装系统

    上次重装系统一年后升级了硬件配置,双11后,再次折腾系统. 配置硬件的选择 部分配件已经升级过了,之前的一直是AMD平台,发热大功耗高,08年我配的AMD 8450+映泰GX790 128M待机在10 ...

  9. CSS HACK tab制表符导致行内元素之间的空隙如何解决

    <!DOCTYPE html> <html lang="zh-CN"><head> <meta name="viewport&q ...

  10. linux 防火墙开放特定端口与指定ip谨防

    vi etc/iptable/sysconfig/iptables linux 开放固定端口 -A INPUT -m state --state NEW -m tcp -p tcp --dport 1 ...