中国网络渗透测试联盟
标题:
织梦(Dedecms)V5.X 本地文件包含漏洞
[打印本页]
作者:
admin
时间:
2013-4-4 17:36
标题:
织梦(Dedecms)V5.X 本地文件包含漏洞
漏洞版本:
& x. L5 W4 g; g. H V/ f& t
DedeCms 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 O
Include/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 f
1.
http://www.dedecms.com/plus/carb ... amp;code=../../tags
上面的Exp是包含根目录下的tags.php文件包含其他后缀请自行构造截断, 使用exp测试时须要自己添加一个code等于alipay或yeepay的cookie
# D7 }! ~. B9 C3 j
2.由于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+ b
http://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.php
3 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