找回密码
 立即注册
欢迎中测联盟老会员回家,1997年注册的域名
查看: 1929|回复: 0
打印 上一主题 下一主题

织梦(Dedecms)V5.X 本地文件包含漏洞

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-4 17:36:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
漏洞版本:
) y6 E% n: ^5 }5 l; V2 M+ q0 R+ LDedeCms 5.x漏洞描述:
. o$ k: \' L* s) ]5 l9 T9 Z8 y; jDedeCms是免费的PHP网站内容管理系统。
2 v: O, H' N2 _+ T& [* T9 ?: O, B5 I% r$ E9 W. F9 O! o
plus/carbuyaction.php里没有对变量进行严格的过滤
! X3 f" D! `9 X2 Y1 g
3 ]$ b/ m+ K) U  x出现漏洞的两个文件为:% |5 l+ M. k6 L3 e
Include/payment/alipay.php# D" d) E: M$ Q. E+ Y$ L3 {# E3 m
Include/payment/yeepay.php/ I2 l9 f) U9 v# W& G
漏洞均出现在respond方法里8 S8 L  n+ J3 d) a- c

% l5 W( g8 y: q7 {! r: K6 v5 V# ~! wInclude/payment/alipay.php
* N1 z  A0 F+ V5 I- V......function respond(){if (!empty($_POST)){foreach($_POST as $key => $data){$_GET[$key] = $data;}}/* 引入配置文件 */require_once DEDEDATA.'/payment/'.$_GET['code'].'.php';......
7 S5 @( g% y) J                        # ~& _. X- g, J. _6 q' J" S' r. {
大概在133行左右,$_GET[‘code’]没有经过任何判断和过滤。# W- c& n, q) H9 Z$ H! l
Include/payment/yeepay.php0 ]& c* y' M1 v! j  Z, ?; M( X$ Z
......function respond(){ /* 引入配置文件 */require_once DEDEDATA.'/payment/'.$_REQUEST['code'].'.php'; $p1_MerId = trim($payment['yp_account']);$merchantKey = trim($payment['yp_key']);....../ f; ^' M+ p' \; b% A2 a
                        ; v" V* q) N% W$ a1 p
大概在145行左右,$_REQUEST['code']没有经过任何判断和过滤。<* 参考
9 H3 y" C; M+ I$ C. S, Whttp://bugscan.net/manage/node/83
; t9 |8 x0 h& g9 I, Whttp://www.cnseay.com/2515/$ i8 v. Q2 W: Q
*>4 y4 W& F3 X- q0 c8 a
测试方法:) w% D5 ?; E) w
1.http://www.dedecms.com/plus/carb ... amp;code=../../tags 上面的Exp是包含根目录下的tags.php文件包含其他后缀请自行构造截断, 使用exp测试时须要自己添加一个code等于alipay或yeepay的cookie . g' D' g: L# u5 c
2.由于bank和cod这两个文件并没有respond方法,所以如果code等于bank或者cod时将会暴错泄露路径
& f% N+ F, v+ Q1 x; C修复方法:
1 F5 W1 j+ @1 x& K# L9 b- {( B目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:# H5 P: B  }+ U
http://www.dedecms.com/products/dedecms/
+ E$ f7 X, j5 j  N- X8 v8 B: O( }/ b% r& u# Y: M
临时修复: 3 L! z% t& i1 T$ w: Y& G
1)Include/payment/alipay.php# D/ f% N" j4 n8 U6 F
  大概133行左右
6 P' R  S, B: {4 {  require_once DEDEDATA.'/payment/'.$_GET['code'].'.php';
, r) I& e) N& N替换
  h" U. @" ^' `/ G require_once DEDEDATA.'/payment/'.basename($_GET['code']).'.php';
# g1 W# F0 m& Y" ^: U/ _2) Include/payment/yeepay.php0 b0 t) o' c" z/ p1 |
大概在145行左右
5 p7 E( B8 I  Z) E5 M- u6 H require_once DEDEDATA.'/payment/'.$_REQUEST['code'].'.php';" g' Z) F( O/ B: T, ~
替换; t7 V: \$ O8 x/ G  m2 x2 O
require_once DEDEDATA.'/payment/'.basename($_REQUEST['code']).'.php';
0 }; @% X3 X3 y9 t! N) R
; @1 h( _1 U7 ]% [, N  G
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表