中国网络渗透测试联盟
标题:
织梦(Dedecms)V5.X 本地文件包含漏洞
[打印本页]
作者:
admin
时间:
2013-4-4 17:36
标题:
织梦(Dedecms)V5.X 本地文件包含漏洞
漏洞版本:
: n5 ` }" O E ]7 d! h5 n0 n$ j
DedeCms 5.x漏洞描述:
- ~0 e) L2 }( A! t) J
DedeCms是免费的PHP网站内容管理系统。
0 e" s. G9 E4 G, Y5 x P8 D
4 Q0 e# o$ C$ W8 {) {; r
plus/carbuyaction.php里没有对变量进行严格的过滤
2 }. F' q8 a& f. w$ r) m
# E3 c2 C z5 ]( `
出现漏洞的两个文件为:
+ a, o( N* ~! C4 `
Include/payment/alipay.php
1 F$ s2 R$ k4 S/ Q/ {; w! e/ R7 g
Include/payment/yeepay.php
& _0 F$ | [+ ~6 x# }2 d+ m
漏洞均出现在respond方法里
0 j* d0 M* l; }
* @. l6 J4 G( N6 ^) x5 r3 j2 F' X
Include/payment/alipay.php
1 k* m( d1 w. q P6 `
......function respond(){if (!empty($_POST)){foreach($_POST as $key => $data){$_GET[$key] = $data;}}/* 引入配置文件 */require_once DEDEDATA.'/payment/'.$_GET['code'].'.php';......
3 N. } s' f; b( v+ K# A2 a/ e+ v
$ ~5 _7 q8 w; U/ p/ f2 c
大概在133行左右,$_GET[‘code’]没有经过任何判断和过滤。
# L# C1 r' A! M
Include/payment/yeepay.php
2 J1 H! Z: J/ i8 F% a
......function respond(){ /* 引入配置文件 */require_once DEDEDATA.'/payment/'.$_REQUEST['code'].'.php'; $p1_MerId = trim($payment['yp_account']);$merchantKey = trim($payment['yp_key']);......
x+ X. ~2 o8 `5 e- y
/ y: L7 f: b h, V7 V7 I ~
大概在145行左右,$_REQUEST['code']没有经过任何判断和过滤。<* 参考
. ]( }0 Y( v+ r) Y
http://bugscan.net/manage/node/83
; d9 ]2 d2 U- f4 e4 x; p( w4 W
http://www.cnseay.com/2515/
& }$ S4 P0 \0 @/ h1 M+ L# h9 p0 m
*>
, s8 e8 q3 S' V2 Y* L- M8 s9 j# S
测试方法:
# {. ?* K8 n# y1 ~" ^
1.
http://www.dedecms.com/plus/carb ... amp;code=../../tags
上面的Exp是包含根目录下的tags.php文件包含其他后缀请自行构造截断, 使用exp测试时须要自己添加一个code等于alipay或yeepay的cookie
% E2 U# L# y4 W& q+ m0 L3 ?
2.由于bank和cod这两个文件并没有respond方法,所以如果code等于bank或者cod时将会暴错泄露路径
7 G+ D* `6 Y \% ]; x4 ?2 @, }
修复方法:
" p1 ?6 {9 }5 v, t+ H4 X
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:
( r1 p9 g5 f0 _8 E1 s) z
http://www.dedecms.com/products/dedecms/
8 y( i0 k) n- E/ z# b2 l
! p, \! e( _- e: _$ G( I, |
临时修复:
`8 t" h8 q$ s
1)Include/payment/alipay.php
4 B# U) f: ~; Q( U6 v
大概133行左右
2 M7 l/ B6 T* I2 r6 ?# z) U
require_once DEDEDATA.'/payment/'.$_GET['code'].'.php';
+ \3 _* b2 E! c
替换
3 b T7 \1 i+ W" k# i
require_once DEDEDATA.'/payment/'.basename($_GET['code']).'.php';
. M- C. D7 y* }* _! Q3 ~. a. B, c' G
2) Include/payment/yeepay.php
: f+ \* v# l. ~% r
大概在145行左右
) D8 b/ m- y1 S/ o( s$ A) |, d s
require_once DEDEDATA.'/payment/'.$_REQUEST['code'].'.php';
% G# U5 r3 j( V' t, k
替换
, N) w+ `! p h7 l, K, N
require_once DEDEDATA.'/payment/'.basename($_REQUEST['code']).'.php';
) \3 D1 X# V& I- U+ q" {0 T( o
$ B& }$ ^6 t2 J7 o5 p) G& L
欢迎光临 中国网络渗透测试联盟 (https://www.cobjon.com/)
Powered by Discuz! X3.2