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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-4 17:36:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
漏洞版本:
+ w! ?9 @' Q9 P* p+ V% e/ i& oDedeCms 5.x漏洞描述:5 F' X# g, D7 H' F. j) n
DedeCms是免费的PHP网站内容管理系统。" [; x, X5 `8 q5 U
1 b3 E* M+ h  p2 o9 i
plus/carbuyaction.php里没有对变量进行严格的过滤
5 _, ]: D, q+ E4 T. r. N4 q# a3 e. z. S
出现漏洞的两个文件为:
$ z1 H0 q. u3 E9 _4 zInclude/payment/alipay.php
. }9 s+ X; @7 Z6 l8 ^, G* V2 [Include/payment/yeepay.php
2 l: T8 o! G/ S! S4 |& m漏洞均出现在respond方法里
/ {5 V4 J6 V( @3 C, K1 N8 i! p% [$ I! x' p9 f% r5 t
Include/payment/alipay.php ) o5 K! O, {. g9 w' }* X
......function respond(){if (!empty($_POST)){foreach($_POST as $key => $data){$_GET[$key] = $data;}}/* 引入配置文件 */require_once DEDEDATA.'/payment/'.$_GET['code'].'.php';......# v& M" o% d! M$ V, g
                        9 ]. f) B$ U1 r: K
大概在133行左右,$_GET[‘code’]没有经过任何判断和过滤。
/ Z  X* k% Z" m. UInclude/payment/yeepay.php" y8 _+ @" u& c
......function respond(){ /* 引入配置文件 */require_once DEDEDATA.'/payment/'.$_REQUEST['code'].'.php'; $p1_MerId = trim($payment['yp_account']);$merchantKey = trim($payment['yp_key']);......5 A" N4 \3 O, @" [+ h6 n
                        ' I7 p6 ~+ ^& G/ ?& {# q
大概在145行左右,$_REQUEST['code']没有经过任何判断和过滤。<* 参考
; _! h- ^+ K$ K& A- \5 h" v( c: jhttp://bugscan.net/manage/node/83+ E3 @) b( U6 v" i8 S+ C# o' g/ T
http://www.cnseay.com/2515/
+ k4 K  W8 \, {1 `5 n*>4 }0 f0 m* s2 w, E- t0 |
测试方法:8 L7 x5 F7 C+ y  w& l
1.http://www.dedecms.com/plus/carb ... amp;code=../../tags 上面的Exp是包含根目录下的tags.php文件包含其他后缀请自行构造截断, 使用exp测试时须要自己添加一个code等于alipay或yeepay的cookie $ I* C$ i0 K' O
2.由于bank和cod这两个文件并没有respond方法,所以如果code等于bank或者cod时将会暴错泄露路径
5 K$ h  p$ F7 j8 m修复方法:  r' O% u  j" x/ `+ |, y
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:5 c, M% p* S1 X# ^6 N) @2 c* O
http://www.dedecms.com/products/dedecms// z& `7 I! p. x2 [; |5 {: I, K
+ q! a3 r' k$ g7 L4 O
临时修复: , Z! X, \! x% q( `3 e
1)Include/payment/alipay.php
5 u; e' l+ d  ^: b0 B+ y- _  大概133行左右" Q* o" a( b* }. O/ {% S$ A' ?8 T
  require_once DEDEDATA.'/payment/'.$_GET['code'].'.php';( A1 L* K8 Y' _$ N
替换
1 p: c7 t; d5 L( w9 o" A  k require_once DEDEDATA.'/payment/'.basename($_GET['code']).'.php';
4 D0 x9 _1 D) @/ X: [2) Include/payment/yeepay.php
4 A% B* p, O  H2 X. x& g! E大概在145行左右
# b5 ^  M+ q6 b! o7 D& i6 Z require_once DEDEDATA.'/payment/'.$_REQUEST['code'].'.php';! G$ l' J; v, n# w' w2 |) ^
替换( m1 |' X3 {# n$ s" y9 v% i9 v) }& \% ^
require_once DEDEDATA.'/payment/'.basename($_REQUEST['code']).'.php';5 a  t8 ^2 w! K3 N. N$ r

# c0 _4 b+ D+ h
回复

使用道具 举报

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

本版积分规则

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