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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-4 17:36:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
漏洞版本:% X1 A8 D1 ]% [$ g; s
DedeCms 5.x漏洞描述:9 b3 y4 K6 a( C6 j) H
DedeCms是免费的PHP网站内容管理系统。
8 {: Z% b- p0 j! r: H9 H; @: Q9 f
, ~3 ~5 q0 y5 G( N: S5 Vplus/carbuyaction.php里没有对变量进行严格的过滤
& r% W0 q& Q6 t; R: s
3 r5 ~9 T' Z9 P; w! B出现漏洞的两个文件为:
" z3 c" d+ v& C: @Include/payment/alipay.php4 P! @1 B" r8 i& n% Q& |
Include/payment/yeepay.php( v5 J# L7 m$ q& R) B1 [( ?) ^" _
漏洞均出现在respond方法里
5 s  |+ b7 H3 S+ w/ `$ J* y9 @/ e# {
Include/payment/alipay.php / a0 m6 J; S! h+ a/ f* Z& X
......function respond(){if (!empty($_POST)){foreach($_POST as $key => $data){$_GET[$key] = $data;}}/* 引入配置文件 */require_once DEDEDATA.'/payment/'.$_GET['code'].'.php';......
  B: ~* C, f) x- W3 h. W0 ]                       
# \% m. S6 I( y2 b; s大概在133行左右,$_GET[‘code’]没有经过任何判断和过滤。
6 L3 z. z1 E$ N  \9 ^, c% y- CInclude/payment/yeepay.php/ J* y7 d' x: r
......function respond(){ /* 引入配置文件 */require_once DEDEDATA.'/payment/'.$_REQUEST['code'].'.php'; $p1_MerId = trim($payment['yp_account']);$merchantKey = trim($payment['yp_key']);......$ Q* N- F# S$ T2 H' @. K
                       
  j, R' b, z+ G2 H大概在145行左右,$_REQUEST['code']没有经过任何判断和过滤。<* 参考  T: n# ?6 x6 t2 L
http://bugscan.net/manage/node/836 n: a" F1 |4 P
http://www.cnseay.com/2515/1 u) }: `- i* M: N; {3 p+ S
*>
6 @; `/ }* a1 I测试方法:9 ^# P. F3 O  `$ f1 a$ |7 N
1.http://www.dedecms.com/plus/carb ... amp;code=../../tags 上面的Exp是包含根目录下的tags.php文件包含其他后缀请自行构造截断, 使用exp测试时须要自己添加一个code等于alipay或yeepay的cookie
0 |) O2 d! `1 o" ?; i$ j2.由于bank和cod这两个文件并没有respond方法,所以如果code等于bank或者cod时将会暴错泄露路径$ D2 P' R' U, a/ w. w& K
修复方法:0 D! x% {! [- p( r  c
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:
* M* v! S% ?/ U9 I0 jhttp://www.dedecms.com/products/dedecms/
7 H0 K( q5 d; }7 `( p1 u) q- h5 A6 z0 Z0 D- \  \( n
临时修复: $ e- A, P# m; O' ]
1)Include/payment/alipay.php2 f" m' ~2 ^" I
  大概133行左右
3 m5 d1 t; o3 v9 C+ b7 Q7 N  require_once DEDEDATA.'/payment/'.$_GET['code'].'.php';( E$ I0 f  `* B3 s
替换
2 N6 |- N* b, {0 W( O# I0 K6 i require_once DEDEDATA.'/payment/'.basename($_GET['code']).'.php';9 c% o& E7 Z" J4 {
2) Include/payment/yeepay.php5 S) `3 d4 N/ ?
大概在145行左右* t3 W8 Q9 F# x9 r
require_once DEDEDATA.'/payment/'.$_REQUEST['code'].'.php';
4 P# [* U- k7 n" d9 v3 m9 T' ? 替换
$ I4 }' }" J/ `. r* V, a' `9 I require_once DEDEDATA.'/payment/'.basename($_REQUEST['code']).'.php';3 [+ p1 h, ]6 n  D( S

% Y2 O8 a' u7 D# ?
回复

使用道具 举报

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

本版积分规则

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