中国网络渗透测试联盟
标题:
织梦(Dedecms)V5.X 本地文件包含漏洞
[打印本页]
作者:
admin
时间:
2013-4-4 17:36
标题:
织梦(Dedecms)V5.X 本地文件包含漏洞
漏洞版本:
$ G* `+ M: W, m" i9 B: H* j
DedeCms 5.x漏洞描述:
$ {, P7 v. \# x$ p8 f
DedeCms是免费的PHP网站内容管理系统。
' z" \5 L0 M* _" j4 U9 g
: _% _' c" H) i' \6 w
plus/carbuyaction.php里没有对变量进行严格的过滤
8 k p! L& q" l1 K, J3 s; \
3 X4 L/ W3 K- @
出现漏洞的两个文件为:
* P: Y/ a7 c2 S$ i: x- a
Include/payment/alipay.php
! @ \# ^! ?$ a
Include/payment/yeepay.php
% |; k" f) Z$ y, @1 c6 {2 N6 c
漏洞均出现在respond方法里
3 f7 Z4 [ O0 l, M; o0 T7 Y& k5 B* Z
+ P* F! v! R9 C% M
Include/payment/alipay.php
) j) T& f( B) j& ]+ a
......function respond(){if (!empty($_POST)){foreach($_POST as $key => $data){$_GET[$key] = $data;}}/* 引入配置文件 */require_once DEDEDATA.'/payment/'.$_GET['code'].'.php';......
8 c& D( Q# v8 |
# W( T: \& _+ ?# y) Q+ c. s
大概在133行左右,$_GET[‘code’]没有经过任何判断和过滤。
, L- B' s. u; F! F" Q* W
Include/payment/yeepay.php
3 z9 l m( P8 M( P
......function respond(){ /* 引入配置文件 */require_once DEDEDATA.'/payment/'.$_REQUEST['code'].'.php'; $p1_MerId = trim($payment['yp_account']);$merchantKey = trim($payment['yp_key']);......
" ]% x$ _) W6 D1 C
3 x$ d7 H c. \/ a5 T3 `1 G
大概在145行左右,$_REQUEST['code']没有经过任何判断和过滤。<* 参考
9 T6 ?1 }* z5 Z
http://bugscan.net/manage/node/83
3 }; w: v9 s' l1 c
http://www.cnseay.com/2515/
' `" o" u: k0 _4 X3 [
*>
! P( i" k- u2 Y. k4 S& u. {
测试方法:
( N, N3 o; ^$ r8 u6 Z
1.
http://www.dedecms.com/plus/carb ... amp;code=../../tags
上面的Exp是包含根目录下的tags.php文件包含其他后缀请自行构造截断, 使用exp测试时须要自己添加一个code等于alipay或yeepay的cookie
4 r* E6 z/ k% M% }7 p
2.由于bank和cod这两个文件并没有respond方法,所以如果code等于bank或者cod时将会暴错泄露路径
6 t$ A L. ]: B& Z8 q1 x5 L8 F
修复方法:
' x+ U- a6 c9 F5 } U+ Q' z
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:
( I% l' ?7 @) k; F& { D
http://www.dedecms.com/products/dedecms/
* u) \1 H$ a$ ^- Z; r' B* e7 n. _9 q
. H/ F/ z# y: d
临时修复:
0 K1 x) {# t8 X: [; e' W2 ]2 K8 D
1)Include/payment/alipay.php
' J+ Z& v1 M. h# G! E: [' n" p
大概133行左右
" U" U) e0 E3 \+ ~
require_once DEDEDATA.'/payment/'.$_GET['code'].'.php';
' g9 h% U: a0 X, M" t$ I
替换
' `8 q6 ~; A/ S6 o2 S9 M
require_once DEDEDATA.'/payment/'.basename($_GET['code']).'.php';
; n; \+ W$ \' N: X4 V! ^; S
2) Include/payment/yeepay.php
" ?: u6 I0 ?6 v# ]
大概在145行左右
9 h9 l; |! E; e4 c, n: h5 b2 w$ }4 n
require_once DEDEDATA.'/payment/'.$_REQUEST['code'].'.php';
u) s# m2 h! y. Z) O$ \# N
替换
2 K- [: C9 N2 X. V& \
require_once DEDEDATA.'/payment/'.basename($_REQUEST['code']).'.php';
- z' [( h2 |- y2 @9 O% q$ f
% P& c: [. H, a X2 k
欢迎光临 中国网络渗透测试联盟 (https://cobjon.com/)
Powered by Discuz! X3.2