中国网络渗透测试联盟
标题:
织梦(Dedecms)V5.X 本地文件包含漏洞
[打印本页]
作者:
admin
时间:
2013-4-4 17:36
标题:
织梦(Dedecms)V5.X 本地文件包含漏洞
漏洞版本:
P/ K0 z, y& J( K% |
DedeCms 5.x漏洞描述:
- h; F& s3 J2 X! X
DedeCms是免费的PHP网站内容管理系统。
7 v5 f3 t) W3 O# f3 i: C
5 l& @7 k) ]: k* I
plus/carbuyaction.php里没有对变量进行严格的过滤
8 P' Q1 L3 ~9 ^* b
w) m8 V1 R$ _' J$ }8 |5 i; c
出现漏洞的两个文件为:
3 I0 s* q$ S) c0 i6 M, l0 g! A5 D
Include/payment/alipay.php
& l, @9 s) A6 u/ x
Include/payment/yeepay.php
4 N. p2 d) Y+ Y
漏洞均出现在respond方法里
, f: c1 J, O- i o: \' J
6 C5 J, \- u( w6 O
Include/payment/alipay.php
9 N" U7 @0 Q" y. w+ o, Y0 d6 ?
......function respond(){if (!empty($_POST)){foreach($_POST as $key => $data){$_GET[$key] = $data;}}/* 引入配置文件 */require_once DEDEDATA.'/payment/'.$_GET['code'].'.php';......
; F7 D i) T2 y
& X9 X+ n! w4 B- r3 v- ~% q
大概在133行左右,$_GET[‘code’]没有经过任何判断和过滤。
1 M; E0 e4 Q8 S: q7 E. z/ I$ B
Include/payment/yeepay.php
& I' ]. B0 Y2 P# d4 e* S
......function respond(){ /* 引入配置文件 */require_once DEDEDATA.'/payment/'.$_REQUEST['code'].'.php'; $p1_MerId = trim($payment['yp_account']);$merchantKey = trim($payment['yp_key']);......
2 |, W& u/ _; x. h" h8 G
$ _0 A, V. D$ Q, {" G0 D5 u, l
大概在145行左右,$_REQUEST['code']没有经过任何判断和过滤。<* 参考
, b2 o) W0 w0 k, p) Q7 ]
http://bugscan.net/manage/node/83
8 d+ o. a( F& }1 t) S
http://www.cnseay.com/2515/
( ^/ }- v! ~9 c$ e( s
*>
* C9 t% i$ }' X0 h1 p6 e* x2 j
测试方法:
+ v0 O9 r3 L& \: Y5 Z5 } w
1.
http://www.dedecms.com/plus/carb ... amp;code=../../tags
上面的Exp是包含根目录下的tags.php文件包含其他后缀请自行构造截断, 使用exp测试时须要自己添加一个code等于alipay或yeepay的cookie
7 a! H9 T2 I0 c+ Y; C% ] ~1 S0 X
2.由于bank和cod这两个文件并没有respond方法,所以如果code等于bank或者cod时将会暴错泄露路径
+ c0 U. F/ T6 `4 h t v
修复方法:
/ m7 ^" [; l# I, L% w
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:
1 C; n7 x5 @, I6 B- r4 H
http://www.dedecms.com/products/dedecms/
* b9 A% Q/ s* y2 e/ S# D
& ^8 m" ~7 Q) ]
临时修复:
, j# \; T; Z. d: I; B" T2 Y
1)Include/payment/alipay.php
1 F! T, }3 p6 x+ j6 l1 S. k) ~
大概133行左右
6 {, o" i+ y0 A* C3 `, C" n
require_once DEDEDATA.'/payment/'.$_GET['code'].'.php';
9 Z% z# ^$ ?" q2 Y: r/ c5 r
替换
, X ~! a2 r' y: U4 H9 \8 X8 P
require_once DEDEDATA.'/payment/'.basename($_GET['code']).'.php';
& L* a3 r: v- M8 R
2) Include/payment/yeepay.php
N. u7 F# b V* A
大概在145行左右
# k7 G0 y4 u e! H6 ~! X
require_once DEDEDATA.'/payment/'.$_REQUEST['code'].'.php';
. X3 b! n! Z0 X& B
替换
6 M7 P1 Y* i e8 l" Y) B
require_once DEDEDATA.'/payment/'.basename($_REQUEST['code']).'.php';
0 X, x: z; s- Z
/ a: v; k0 o6 o* E$ f5 F: K
欢迎光临 中国网络渗透测试联盟 (https://cobjon.com/)
Powered by Discuz! X3.2