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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-4 17:36:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
漏洞版本:
# t$ T. }9 P( P: f. B( F& FDedeCms 5.x漏洞描述:
( C( x2 K; }$ P" i9 uDedeCms是免费的PHP网站内容管理系统。1 F0 H0 b. U9 s9 b2 M; l, z
+ A, S, V- I/ Z' [8 I
plus/carbuyaction.php里没有对变量进行严格的过滤
  n4 r% u7 @3 f' j2 {7 H  g; o3 ]2 o1 U) ~
出现漏洞的两个文件为:
' h& i  I6 r' A( o, ZInclude/payment/alipay.php
# m1 m1 z" Y# {1 c4 wInclude/payment/yeepay.php
/ P9 P0 m8 i0 s# ~8 p漏洞均出现在respond方法里
' z) X" ~$ F& Y! v0 t  e
. }, l% q  q3 }" R& ~3 Q+ Q- n" QInclude/payment/alipay.php 3 Q/ h- h' X% g/ ]
......function respond(){if (!empty($_POST)){foreach($_POST as $key => $data){$_GET[$key] = $data;}}/* 引入配置文件 */require_once DEDEDATA.'/payment/'.$_GET['code'].'.php';......: m1 G: t1 ?5 O* m5 z  ]
                        : X4 Q! V* U  Y& m
大概在133行左右,$_GET[‘code’]没有经过任何判断和过滤。
  T' r- C, d1 R+ d6 |5 K. k; ?Include/payment/yeepay.php* B8 t$ l6 ?3 i5 s# O& |
......function respond(){ /* 引入配置文件 */require_once DEDEDATA.'/payment/'.$_REQUEST['code'].'.php'; $p1_MerId = trim($payment['yp_account']);$merchantKey = trim($payment['yp_key']);......4 H6 w: o5 j% K9 I& L# \
                        6 ~0 q# p7 `3 O1 L) v$ o8 J7 E- S6 S( {
大概在145行左右,$_REQUEST['code']没有经过任何判断和过滤。<* 参考
$ a+ N& h1 U. N( x5 |http://bugscan.net/manage/node/83
) b4 t, K5 g/ B  ^9 m6 u" Ohttp://www.cnseay.com/2515// ^2 J3 A7 h$ k
*>
) Q# k. t9 u# @) T2 h% Q测试方法:  P% W: m- |0 E; I7 }  D
1.http://www.dedecms.com/plus/carb ... amp;code=../../tags 上面的Exp是包含根目录下的tags.php文件包含其他后缀请自行构造截断, 使用exp测试时须要自己添加一个code等于alipay或yeepay的cookie # G# h+ T; h$ w. X, L" @' I+ `
2.由于bank和cod这两个文件并没有respond方法,所以如果code等于bank或者cod时将会暴错泄露路径
6 I6 S3 H& d- k修复方法:
. T# o. j2 R7 D( F. a# O2 b目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:: @& t. m1 p6 X  b$ J6 [+ G- B2 S
http://www.dedecms.com/products/dedecms/
# Z% c; o$ O; w5 @! Z* o8 }
& ]% i" G; h0 M* v 临时修复: + T2 T: ^/ J$ m- K+ H
1)Include/payment/alipay.php
7 a6 u/ r% W2 A! z  大概133行左右6 k! q- T7 B) H/ _0 T; d+ S
  require_once DEDEDATA.'/payment/'.$_GET['code'].'.php';
5 _, W! W0 @, U9 o% ~  Q# c替换
9 ?8 x& B) }' M3 q require_once DEDEDATA.'/payment/'.basename($_GET['code']).'.php';
- j0 f7 p; N, e2) Include/payment/yeepay.php
' m. u" ]" E0 I大概在145行左右
4 y. ?, N: t) m3 o0 X$ k* B8 l require_once DEDEDATA.'/payment/'.$_REQUEST['code'].'.php';
- o# Z: {+ o; x+ \" G$ A6 E* q 替换" ]1 f9 c, ]% G5 |
require_once DEDEDATA.'/payment/'.basename($_REQUEST['code']).'.php';
) U  O  ~) V) i) X! f1 x1 H7 W/ y
* m2 C4 _. _! O9 X7 P; D
回复

使用道具 举报

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

本版积分规则

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