找回密码
 立即注册
查看: 2778|回复: 0
打印 上一主题 下一主题

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

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-4 17:36:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
漏洞版本:
  [! _$ }7 x( I) p# T: y* U- mDedeCms 5.x漏洞描述:) S% J9 P& D  y3 u- y# g
DedeCms是免费的PHP网站内容管理系统。
5 t( p7 t0 _3 U9 G1 p' @; b. e4 ?0 T! b( Q
plus/carbuyaction.php里没有对变量进行严格的过滤
* n- c1 B* [! H  N
$ _9 L# e$ @' `* x: U- M! w出现漏洞的两个文件为:
' a% T$ b+ I& V) V- ~4 vInclude/payment/alipay.php
8 Z3 c* A1 j! z: i5 l) g4 B% kInclude/payment/yeepay.php
& l. z" f! ]( s* S  h5 J. d漏洞均出现在respond方法里
8 E+ Y; W: Z$ Q7 o) S
8 ?( z7 G! K' w: {: oInclude/payment/alipay.php
# k; P+ S" k( i, G' I......function respond(){if (!empty($_POST)){foreach($_POST as $key => $data){$_GET[$key] = $data;}}/* 引入配置文件 */require_once DEDEDATA.'/payment/'.$_GET['code'].'.php';....../ \; j1 m0 G  X) Z1 M/ b
                       
) q' n" B, B- s5 ^) K6 W+ ]大概在133行左右,$_GET[‘code’]没有经过任何判断和过滤。/ x3 [$ D7 P/ }$ q8 _/ l; u$ Q
Include/payment/yeepay.php( i- t( z. w  W, ]
......function respond(){ /* 引入配置文件 */require_once DEDEDATA.'/payment/'.$_REQUEST['code'].'.php'; $p1_MerId = trim($payment['yp_account']);$merchantKey = trim($payment['yp_key']);......
2 {4 n5 q" _, M% w1 W                        2 ^1 d  V. r: U1 v9 T
大概在145行左右,$_REQUEST['code']没有经过任何判断和过滤。<* 参考* Q4 L, E* o9 C8 O
http://bugscan.net/manage/node/83
  h- P. g5 z# b  U5 T7 ^http://www.cnseay.com/2515/
& u& O/ L9 Y* K( `+ O9 A*>
& X$ o; b  X' n6 N% e测试方法:! o# I. j% m4 m2 b2 {5 W
1.http://www.dedecms.com/plus/carb ... amp;code=../../tags 上面的Exp是包含根目录下的tags.php文件包含其他后缀请自行构造截断, 使用exp测试时须要自己添加一个code等于alipay或yeepay的cookie
9 S) b7 V" @4 z8 n4 p, K4 q/ g2.由于bank和cod这两个文件并没有respond方法,所以如果code等于bank或者cod时将会暴错泄露路径1 q( a8 X9 d3 h* o8 |
修复方法:) k3 U1 ]! \5 x5 X* B
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:
! f* e& t; `9 @' B0 rhttp://www.dedecms.com/products/dedecms/' v/ m6 a. b: j/ O8 I
7 C( D- D9 a, M, f4 O# F% N4 i6 F
临时修复:
) k# P$ P9 H' o3 c" E1)Include/payment/alipay.php
: y( |( x, S, f  大概133行左右/ h8 e7 b( [. M- f& }" j( S
  require_once DEDEDATA.'/payment/'.$_GET['code'].'.php';' Q- v$ N# ~1 ~; z
替换" ~2 H1 k' \2 C6 p7 b9 X" Z! Y
require_once DEDEDATA.'/payment/'.basename($_GET['code']).'.php';
+ Z% M- g$ Z) e( G7 G2) Include/payment/yeepay.php! q! d, r; x, W: Z3 J5 l
大概在145行左右. ^1 Z* U. s, C
require_once DEDEDATA.'/payment/'.$_REQUEST['code'].'.php';
3 b! _; L% L/ u$ l7 R 替换: T( t5 J0 F% b" Z/ T8 d
require_once DEDEDATA.'/payment/'.basename($_REQUEST['code']).'.php';
: [6 l* T( h" ^5 g6 c2 I$ V
/ h( ?: {7 V6 `0 f
回复

使用道具 举报

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

本版积分规则

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