中国网络渗透测试联盟

标题: 织梦(Dedecms)V5.X 本地文件包含漏洞 [打印本页]

作者: admin    时间: 2013-4-4 17:36
标题: 织梦(Dedecms)V5.X 本地文件包含漏洞
漏洞版本:
& x. L5 W4 g; g. H  V/ f& tDedeCms 5.x漏洞描述:: @# D7 n. d& j* N2 c
DedeCms是免费的PHP网站内容管理系统。" Y! }5 Q( M% G
! S5 p, f8 w, K9 N5 a2 m+ A8 R
plus/carbuyaction.php里没有对变量进行严格的过滤
. y' k. H" U- X. t$ U( X; l
) G8 y" k" {. a" \6 [4 _出现漏洞的两个文件为:
: d. h* c+ L) q6 d" D1 OInclude/payment/alipay.php' n4 @& Y4 \1 y, d- ], ^
Include/payment/yeepay.php. g2 y/ w0 x- _- v
漏洞均出现在respond方法里5 i6 N) k- k! I6 ~3 b

, p% ?* d% y2 q' R# ~Include/payment/alipay.php
, T8 C, @. w" @/ A/ |......function respond(){if (!empty($_POST)){foreach($_POST as $key => $data){$_GET[$key] = $data;}}/* 引入配置文件 */require_once DEDEDATA.'/payment/'.$_GET['code'].'.php';......( S' v0 Z  B" m: C7 _: r7 Y* y  S
                        ) T+ F" u% P6 ?% ~
大概在133行左右,$_GET[‘code’]没有经过任何判断和过滤。, }! S$ n' \/ Q8 w! P) K, U4 J' A
Include/payment/yeepay.php
2 \  \8 W; t8 m7 x6 l......function respond(){ /* 引入配置文件 */require_once DEDEDATA.'/payment/'.$_REQUEST['code'].'.php'; $p1_MerId = trim($payment['yp_account']);$merchantKey = trim($payment['yp_key']);......- D6 j- j- ~  E, h  s; ~7 a
                        - h% {/ ~* t& c+ i# B
大概在145行左右,$_REQUEST['code']没有经过任何判断和过滤。<* 参考# q) [8 V7 \+ L8 ?
http://bugscan.net/manage/node/83
# w- {* @8 }3 a% \http://www.cnseay.com/2515/$ L0 l  j( I1 V9 Z
*>
$ k5 U4 o: l7 [% N: m# T; ?测试方法:
4 D# T% T) j$ |, m! R2 f1.http://www.dedecms.com/plus/carb ... amp;code=../../tags 上面的Exp是包含根目录下的tags.php文件包含其他后缀请自行构造截断, 使用exp测试时须要自己添加一个code等于alipay或yeepay的cookie
# D7 }! ~. B9 C3 j2.由于bank和cod这两个文件并没有respond方法,所以如果code等于bank或者cod时将会暴错泄露路径8 z2 w% V- s& _8 @- ~: G
修复方法:
" [' k% L( \) Z& G4 @: Z5 U目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:
* z* t: k+ k8 x0 D+ bhttp://www.dedecms.com/products/dedecms/
# w7 i3 {( j4 r1 R6 V
: S; z: M, y" q: K; Q3 g5 `/ m( J 临时修复: 9 }/ o$ M& Z3 q' ~4 f
1)Include/payment/alipay.php& y" ?' \5 L* f% a
  大概133行左右: Z: K. T$ O' L2 L4 N) Q- [, V
  require_once DEDEDATA.'/payment/'.$_GET['code'].'.php';
6 P5 D: `" M0 F& v替换2 ^! L7 G( K2 }, m
require_once DEDEDATA.'/payment/'.basename($_GET['code']).'.php';8 e* m6 j: [, f; E+ {! W
2) Include/payment/yeepay.php3 q) V2 o+ z& m3 F& M3 u
大概在145行左右
3 x6 o0 O; r4 p! w9 d. n require_once DEDEDATA.'/payment/'.$_REQUEST['code'].'.php';; U" t5 ]& x  x1 s' H, c
替换* o9 O  j% h( b' T* T7 O' S1 a
require_once DEDEDATA.'/payment/'.basename($_REQUEST['code']).'.php';
! f7 M4 D+ M3 D % F7 @, t( X  y5 Z4 M# O





欢迎光临 中国网络渗透测试联盟 (https://cobjon.com/) Powered by Discuz! X3.2