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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-4 17:36:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
漏洞版本:
: F5 Q  k+ U' n/ v$ R6 A/ TDedeCms 5.x漏洞描述:, I* v( v1 f8 _5 O7 u0 _$ i
DedeCms是免费的PHP网站内容管理系统。
6 N4 Q/ j6 c( f$ @3 j
" t5 g: q( f# p! Y% C; c8 X5 Qplus/carbuyaction.php里没有对变量进行严格的过滤- v7 J+ t2 q" d  R
& f7 k8 D3 o% S2 E
出现漏洞的两个文件为:
) B( r' m! ~1 HInclude/payment/alipay.php7 i$ `3 |7 v6 m* B& R$ h
Include/payment/yeepay.php
4 P' Z2 U1 i2 k- ?" j漏洞均出现在respond方法里
" V% i& h' h8 t+ l( t8 x/ r& F$ @& l# C6 [1 Q
Include/payment/alipay.php
. Z- Q% m; g; n4 m......function respond(){if (!empty($_POST)){foreach($_POST as $key => $data){$_GET[$key] = $data;}}/* 引入配置文件 */require_once DEDEDATA.'/payment/'.$_GET['code'].'.php';......  u+ Q1 V' Y$ k( ^/ d" T
                        ; ^' z0 h5 y: p) I+ t
大概在133行左右,$_GET[‘code’]没有经过任何判断和过滤。1 J6 h, J9 w  _. j0 Y  d0 W8 \; D
Include/payment/yeepay.php
6 d& d" x: i! |4 N......function respond(){ /* 引入配置文件 */require_once DEDEDATA.'/payment/'.$_REQUEST['code'].'.php'; $p1_MerId = trim($payment['yp_account']);$merchantKey = trim($payment['yp_key']);......
6 q) c5 o9 X8 Y7 f6 }& _                        ! Y/ g7 S  v5 N- Y& u- e+ b6 ?
大概在145行左右,$_REQUEST['code']没有经过任何判断和过滤。<* 参考
) \8 f. h. E% u1 I1 \9 z9 rhttp://bugscan.net/manage/node/83
4 _) c4 \! F7 \http://www.cnseay.com/2515/
. O5 P; l. M4 I*>
( R$ m) l  E* h4 z3 P* H" }* W: F测试方法:
" S7 w3 S2 _" t  U9 e4 u# N! r1.http://www.dedecms.com/plus/carb ... amp;code=../../tags 上面的Exp是包含根目录下的tags.php文件包含其他后缀请自行构造截断, 使用exp测试时须要自己添加一个code等于alipay或yeepay的cookie & x  e5 Y; ^+ _+ @, P
2.由于bank和cod这两个文件并没有respond方法,所以如果code等于bank或者cod时将会暴错泄露路径
2 [; S+ c! f( H5 h8 U, E9 S修复方法:6 {4 T" Y8 p/ C
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:
, d/ a) P2 I9 P; m7 p, O% Y9 Ihttp://www.dedecms.com/products/dedecms/
( r6 }1 a5 E  G( W+ j* ?4 m6 O7 Y0 r0 _) {
临时修复: 0 J1 j. w. K: l$ c3 H  X
1)Include/payment/alipay.php
, P/ J7 P8 u& w$ m- e  大概133行左右
7 i) |3 c+ D7 L5 ]: j  require_once DEDEDATA.'/payment/'.$_GET['code'].'.php';" F3 d+ c2 a" E
替换* z1 l9 X9 r  J* o
require_once DEDEDATA.'/payment/'.basename($_GET['code']).'.php';2 ~: J: r! [$ a& g4 K# K
2) Include/payment/yeepay.php9 D4 {# g. b; X* B: g0 `, V
大概在145行左右
2 ^) k5 _8 |; I& k1 O. e require_once DEDEDATA.'/payment/'.$_REQUEST['code'].'.php';$ y( K5 j6 R+ e: ^
替换
. {8 F+ H6 v! I# f% ]8 Q5 M( ?4 Z require_once DEDEDATA.'/payment/'.basename($_REQUEST['code']).'.php';
% o$ W& C4 p% Q6 g% y- n2 Z. {* P! c
; G1 G; t! C) W5 e+ l9 `: e. _
回复

使用道具 举报

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

本版积分规则

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