中国网络渗透测试联盟
标题:
织梦(Dedecms)V5.X 本地文件包含漏洞
[打印本页]
作者:
admin
时间:
2013-4-4 17:36
标题:
织梦(Dedecms)V5.X 本地文件包含漏洞
漏洞版本:
" _. F) K9 u" X# [1 k$ r0 V2 ^
DedeCms 5.x漏洞描述:
0 S% }* I% a- Z; p; H! j3 u! H
DedeCms是免费的PHP网站内容管理系统。
2 S$ c& _# k; a
2 m1 p% V# M# T" b/ m ^+ u
plus/carbuyaction.php里没有对变量进行严格的过滤
7 o1 E% u2 v) ]
% ~0 ]; \8 T+ H9 x
出现漏洞的两个文件为:
. ~( C1 q% K# x& z
Include/payment/alipay.php
# h6 j- ^2 i; S2 t9 p
Include/payment/yeepay.php
5 h; u$ P J$ g) y% l5 S! f
漏洞均出现在respond方法里
, Z. N0 [, k( c4 Z" Z0 L
9 O% G# v. y i/ F6 T2 m% x
Include/payment/alipay.php
# G t, [' i: y1 h. s
......function respond(){if (!empty($_POST)){foreach($_POST as $key => $data){$_GET[$key] = $data;}}/* 引入配置文件 */require_once DEDEDATA.'/payment/'.$_GET['code'].'.php';......
5 [! D- k h: r
3 B1 T4 X! G3 f) ?+ o5 R6 p
大概在133行左右,$_GET[‘code’]没有经过任何判断和过滤。
( h9 o' [( Z; ~) f3 x5 M3 V' p
Include/payment/yeepay.php
" m& l/ A* Q! T
......function respond(){ /* 引入配置文件 */require_once DEDEDATA.'/payment/'.$_REQUEST['code'].'.php'; $p1_MerId = trim($payment['yp_account']);$merchantKey = trim($payment['yp_key']);......
/ g8 [: p2 Z. `# M) ^! d+ ~8 X6 n3 E
3 t3 {$ E- X) b
大概在145行左右,$_REQUEST['code']没有经过任何判断和过滤。<* 参考
* r! x+ B( ^- r- v
http://bugscan.net/manage/node/83
. A4 E' l8 r$ ]7 [+ E* M3 H
http://www.cnseay.com/2515/
' D" Q" V2 `" i; l' s" P4 y
*>
' ^1 `. A- w4 U6 E2 p: ~1 G
测试方法:
% [* w( @5 g( L
1.
http://www.dedecms.com/plus/carb ... amp;code=../../tags
上面的Exp是包含根目录下的tags.php文件包含其他后缀请自行构造截断, 使用exp测试时须要自己添加一个code等于alipay或yeepay的cookie
& Z1 s" K: [# K* e: K
2.由于bank和cod这两个文件并没有respond方法,所以如果code等于bank或者cod时将会暴错泄露路径
& m! g/ T# S) ?# O% R3 k
修复方法:
* c k2 {+ p# Q
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:
; b& @7 _4 M& k6 s
http://www.dedecms.com/products/dedecms/
3 v( R7 n2 P( u4 h8 Z3 n* A
8 A+ `- |5 v2 f' \
临时修复:
& D7 K* N5 F" z3 n
1)Include/payment/alipay.php
" k- U- q0 d6 }7 b( @ _( P3 D. Q
大概133行左右
2 ]* B. }) B7 p% |7 B% m5 G
require_once DEDEDATA.'/payment/'.$_GET['code'].'.php';
3 S/ z$ Z% T9 C- Z: V
替换
" N) f. u1 f7 k2 s, k, r
require_once DEDEDATA.'/payment/'.basename($_GET['code']).'.php';
# B# D0 j9 f1 E" x( k0 P( T3 L
2) Include/payment/yeepay.php
9 S6 Q, f1 l" i, Z0 o; m$ @1 w! h
大概在145行左右
2 E* b" L) }& H
require_once DEDEDATA.'/payment/'.$_REQUEST['code'].'.php';
) r z( A6 C. W& j
替换
! m" V' s. p, F4 k; }, i# T
require_once DEDEDATA.'/payment/'.basename($_REQUEST['code']).'.php';
1 v0 x8 n5 ?0 I/ N
" h* o% D( z/ ^6 O
欢迎光临 中国网络渗透测试联盟 (https://cobjon.com/)
Powered by Discuz! X3.2