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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-4 17:36:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
漏洞版本:
% p5 K3 P' Q$ y: `6 R" uDedeCms 5.x漏洞描述:# g  D" }& W0 A0 `1 x# r! ?
DedeCms是免费的PHP网站内容管理系统。5 h+ R, r2 `1 T/ Z0 w) @4 `0 l1 ]

8 ]7 s1 o3 O. G% I" q5 k, Oplus/carbuyaction.php里没有对变量进行严格的过滤" C1 y/ z: x8 J

8 [; H! w  T/ {; _# r出现漏洞的两个文件为:' \$ l$ x- \+ R/ u
Include/payment/alipay.php! e' @/ C, g7 i# D; z7 m9 p
Include/payment/yeepay.php8 v; l2 e) y& X3 {
漏洞均出现在respond方法里* o- I. C6 f% N: p1 x
( @# d5 `. K7 N
Include/payment/alipay.php / i! q2 U' t6 R  b/ ?0 W* j
......function respond(){if (!empty($_POST)){foreach($_POST as $key => $data){$_GET[$key] = $data;}}/* 引入配置文件 */require_once DEDEDATA.'/payment/'.$_GET['code'].'.php';......
6 j6 H% o- D: p7 a. S+ K7 X                       
6 N% R7 ]8 p& y" h" C2 d' `大概在133行左右,$_GET[‘code’]没有经过任何判断和过滤。$ [/ L+ _. Z. v1 s
Include/payment/yeepay.php
/ e7 C3 f2 k4 Q) }9 `......function respond(){ /* 引入配置文件 */require_once DEDEDATA.'/payment/'.$_REQUEST['code'].'.php'; $p1_MerId = trim($payment['yp_account']);$merchantKey = trim($payment['yp_key']);....... G8 H* V0 ^. p2 c. z/ _6 }' h) p
                        ( L9 |' z$ `$ I/ L( ], V+ p5 M
大概在145行左右,$_REQUEST['code']没有经过任何判断和过滤。<* 参考% g1 M1 H" n. A% J& x
http://bugscan.net/manage/node/83  \% e' @1 ~" H9 M& s" F% Z
http://www.cnseay.com/2515/, v! G* O( z& _" m" g
*>
0 N" Z$ y. J6 k; ~$ H5 }% ~3 U2 |测试方法:) R; M7 f9 U* c& p1 ]% G8 L  U8 {
1.http://www.dedecms.com/plus/carb ... amp;code=../../tags 上面的Exp是包含根目录下的tags.php文件包含其他后缀请自行构造截断, 使用exp测试时须要自己添加一个code等于alipay或yeepay的cookie
' D4 j0 `/ p1 _0 i2.由于bank和cod这两个文件并没有respond方法,所以如果code等于bank或者cod时将会暴错泄露路径% ^1 V  ^% w% v
修复方法:- b. j- G# V. v) W; K$ ?/ n7 m  W$ b7 }- Y
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:
5 ~! G, f' x( H. }http://www.dedecms.com/products/dedecms/7 H( l; n6 b3 N7 @1 q( c

, c: P$ A" A+ `: a% \ 临时修复:
) d: Z5 A/ a! g" Z1)Include/payment/alipay.php" c+ L" k" D. p$ T5 L" B
  大概133行左右# Q/ z! Z& ]4 z5 B
  require_once DEDEDATA.'/payment/'.$_GET['code'].'.php';
/ @$ I( C  h5 }) U" p: d替换
7 v7 {+ q! a9 @7 M require_once DEDEDATA.'/payment/'.basename($_GET['code']).'.php';
- v2 @( H* h% h# B& t2 X6 @% H2) Include/payment/yeepay.php9 o9 O: |+ n+ z$ H; m1 i
大概在145行左右
* F4 k. `9 O5 r3 M! U require_once DEDEDATA.'/payment/'.$_REQUEST['code'].'.php';
$ c8 a2 Z$ P1 D$ x 替换
5 y0 d9 e% I# P# S. i9 r/ u require_once DEDEDATA.'/payment/'.basename($_REQUEST['code']).'.php';
, P# h  h" j8 O% A9 R+ t' ^
: E. _  j0 ?5 {& i
回复

使用道具 举报

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

本版积分规则

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