中国网络渗透测试联盟
标题:
织梦(Dedecms)V5.X 本地文件包含漏洞
[打印本页]
作者:
admin
时间:
2013-4-4 17:36
标题:
织梦(Dedecms)V5.X 本地文件包含漏洞
漏洞版本:
8 d8 ]$ u2 M, D' l1 Y
DedeCms 5.x漏洞描述:
/ i5 W0 w0 i. D+ t7 T" K2 i8 T1 Y
DedeCms是免费的PHP网站内容管理系统。
# H: U3 H" X2 S2 `7 y
" n ]8 W, {% K1 M3 }
plus/carbuyaction.php里没有对变量进行严格的过滤
, i% P& Z. S2 V$ U
9 P5 F$ ?5 T5 C3 L; M5 Q1 F
出现漏洞的两个文件为:
$ x- w& E: |1 ^+ C! I
Include/payment/alipay.php
% v! W* i+ O7 Z" T
Include/payment/yeepay.php
) R! ~8 x5 n( V& z0 I$ I0 Y; w
漏洞均出现在respond方法里
" B/ b; k: G! p* j/ @* o
2 d! T( ~" w9 ~
Include/payment/alipay.php
; B. u9 F+ N& \4 @
......function respond(){if (!empty($_POST)){foreach($_POST as $key => $data){$_GET[$key] = $data;}}/* 引入配置文件 */require_once DEDEDATA.'/payment/'.$_GET['code'].'.php';......
3 h: z3 U4 E3 Z. f1 |: S; N/ U1 ]
7 Z3 s0 ^. u1 `+ r0 n
大概在133行左右,$_GET[‘code’]没有经过任何判断和过滤。
( g! M8 y" {6 z( s
Include/payment/yeepay.php
. o1 ~1 s8 r2 z+ \6 o4 b" n
......function respond(){ /* 引入配置文件 */require_once DEDEDATA.'/payment/'.$_REQUEST['code'].'.php'; $p1_MerId = trim($payment['yp_account']);$merchantKey = trim($payment['yp_key']);......
8 U* B( u- j0 x! u" m3 `
3 F# p- N! Z6 i
大概在145行左右,$_REQUEST['code']没有经过任何判断和过滤。<* 参考
, A: {( T9 C4 u& i
http://bugscan.net/manage/node/83
6 r; A: s* }+ {4 X P/ i' D2 C
http://www.cnseay.com/2515/
# E+ S" j+ E: Q0 [: @
*>
, m+ c6 u5 u" f4 b7 e- `9 d
测试方法:
4 C) L$ s7 l; r3 `8 a
1.
http://www.dedecms.com/plus/carb ... amp;code=../../tags
上面的Exp是包含根目录下的tags.php文件包含其他后缀请自行构造截断, 使用exp测试时须要自己添加一个code等于alipay或yeepay的cookie
6 o! H% p# c2 s" [+ ]
2.由于bank和cod这两个文件并没有respond方法,所以如果code等于bank或者cod时将会暴错泄露路径
2 E3 f' o% l5 C
修复方法:
) l! J6 h7 [! h5 U! E
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:
5 e8 [, M; b7 ^9 Y* g
http://www.dedecms.com/products/dedecms/
8 T1 E2 _4 a* x; A- s
* a, ^2 f' ?" J- I8 H- I) f
临时修复:
- X- b' }9 I, S$ @' Q
1)Include/payment/alipay.php
' M' r! @: L0 U, L( ^
大概133行左右
$ q; G$ I" G, F2 g
require_once DEDEDATA.'/payment/'.$_GET['code'].'.php';
" f7 [5 ?: r' Y: p, e- c( i' h d: Z
替换
5 a7 i( F- s( Q8 m& i
require_once DEDEDATA.'/payment/'.basename($_GET['code']).'.php';
, V9 p$ D0 H2 X, h8 l! ~$ p
2) Include/payment/yeepay.php
( b: ^9 X0 `/ b" B
大概在145行左右
$ ~9 t* i- `8 D! ]! b' ~
require_once DEDEDATA.'/payment/'.$_REQUEST['code'].'.php';
! Y) e9 i9 H' I! l4 O0 r) ~) H
替换
+ ]9 K7 z4 K7 e5 h( q
require_once DEDEDATA.'/payment/'.basename($_REQUEST['code']).'.php';
8 m9 u7 p1 }0 J5 ?
4 w7 q1 w. D* _7 ~# s* L
欢迎光临 中国网络渗透测试联盟 (https://cobjon.com/)
Powered by Discuz! X3.2