中国网络渗透测试联盟
标题:
织梦(Dedecms)V5.X 本地文件包含漏洞
[打印本页]
作者:
admin
时间:
2013-4-4 17:36
标题:
织梦(Dedecms)V5.X 本地文件包含漏洞
漏洞版本:
% \" i0 w9 L/ F% h: a$ W4 r
DedeCms 5.x漏洞描述:
5 J, m! k% t- n" J
DedeCms是免费的PHP网站内容管理系统。
+ c/ S; ^/ ^3 x2 Y9 N& ^ E, }
$ ?% W; o. W4 ~9 ^8 w6 J
plus/carbuyaction.php里没有对变量进行严格的过滤
. ]& o( g4 [+ k/ {2 a- _' C
6 j4 g3 _- Q. I: V) ^/ a1 U
出现漏洞的两个文件为:
( M9 ?) A6 _8 P
Include/payment/alipay.php
# ^- g' L- f# c O& l. V' K
Include/payment/yeepay.php
& {% n8 j) g! p, d( S& c
漏洞均出现在respond方法里
. l6 f* z6 m$ o- D4 _
# h0 j7 G7 Y( [
Include/payment/alipay.php
, ]% p5 ~' V' e1 m/ w0 d1 N, C
......function respond(){if (!empty($_POST)){foreach($_POST as $key => $data){$_GET[$key] = $data;}}/* 引入配置文件 */require_once DEDEDATA.'/payment/'.$_GET['code'].'.php';......
, a% \0 g" B; L0 `
5 L* v6 F* D! U% B& M( }5 e
大概在133行左右,$_GET[‘code’]没有经过任何判断和过滤。
+ E8 t& e3 @7 W
Include/payment/yeepay.php
. j+ _' h, c5 @
......function respond(){ /* 引入配置文件 */require_once DEDEDATA.'/payment/'.$_REQUEST['code'].'.php'; $p1_MerId = trim($payment['yp_account']);$merchantKey = trim($payment['yp_key']);......
; K! F" L9 K! x/ \" U
) K/ Y/ F8 |5 M. K
大概在145行左右,$_REQUEST['code']没有经过任何判断和过滤。<* 参考
! m* `" ~/ i! y* o
http://bugscan.net/manage/node/83
9 A# f6 N) w7 M# s3 j0 P
http://www.cnseay.com/2515/
( r4 c; N& [ a5 y8 u( m" k
*>
9 M5 l3 u/ z$ ~8 c7 f7 r* y6 E
测试方法:
/ U$ }9 |6 \: j5 ?
1.
http://www.dedecms.com/plus/carb ... amp;code=../../tags
上面的Exp是包含根目录下的tags.php文件包含其他后缀请自行构造截断, 使用exp测试时须要自己添加一个code等于alipay或yeepay的cookie
4 q2 |" Z( L" O; l2 a/ V2 I
2.由于bank和cod这两个文件并没有respond方法,所以如果code等于bank或者cod时将会暴错泄露路径
) h/ @9 ^1 n, X' H4 o; B ]5 h! g
修复方法:
8 ?! W, v# ]! a* a
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:
" H/ {! ?( l$ E4 o4 y, p
http://www.dedecms.com/products/dedecms/
2 j( _% v7 B$ i n9 C" `8 F/ i: _
4 Z' }9 [: U- t6 A" b V7 c; `" @
临时修复:
7 ~/ |0 [! a1 H* M
1)Include/payment/alipay.php
" ^9 P, ]* V+ \+ D, Q
大概133行左右
' F9 K, a$ W6 W" n$ h" Y- |6 r) `
require_once DEDEDATA.'/payment/'.$_GET['code'].'.php';
/ m" n8 {, L K# ]: Z; b; N
替换
2 |1 e. z! q+ d- m
require_once DEDEDATA.'/payment/'.basename($_GET['code']).'.php';
1 G' E8 S7 y; u }7 ?9 V
2) Include/payment/yeepay.php
Z* N3 W. p* X
大概在145行左右
{' ]/ X0 l$ d
require_once DEDEDATA.'/payment/'.$_REQUEST['code'].'.php';
8 d* e* A$ T P; v! y
替换
5 C, S) ]' g6 x# X& \2 R6 I
require_once DEDEDATA.'/payment/'.basename($_REQUEST['code']).'.php';
) X A% B( A4 G4 [, U
0 ~! J$ S; r% ]% V$ Z5 e
欢迎光临 中国网络渗透测试联盟 (https://cobjon.com/)
Powered by Discuz! X3.2