中国网络渗透测试联盟

标题: 织梦(Dedecms)V5.X 本地文件包含漏洞 [打印本页]

作者: admin    时间: 2013-4-4 17:36
标题: 织梦(Dedecms)V5.X 本地文件包含漏洞
漏洞版本:+ E% |8 z1 }. _4 A6 H
DedeCms 5.x漏洞描述:
7 ~8 L( ^2 y4 _- X& o0 u/ \) z) {DedeCms是免费的PHP网站内容管理系统。
6 G8 T8 h4 d* Y+ O- h) B1 J* M& J2 z
plus/carbuyaction.php里没有对变量进行严格的过滤
3 y/ q3 H2 `2 p! I) _. T
/ B0 q- _2 M4 z, p! N, z" J6 O* Y出现漏洞的两个文件为:
% `& V* F3 @- t8 c& x0 K5 L# n  q3 EInclude/payment/alipay.php
# `, ?7 K( [  }' Y  }, n, l- @& x; oInclude/payment/yeepay.php; U- [' S; _( [6 A. L
漏洞均出现在respond方法里8 E, i, c& G0 a' R" S

/ Q" `0 r. q! u, k* kInclude/payment/alipay.php
+ t, l& a( u: M) S......function respond(){if (!empty($_POST)){foreach($_POST as $key => $data){$_GET[$key] = $data;}}/* 引入配置文件 */require_once DEDEDATA.'/payment/'.$_GET['code'].'.php';......* K( B$ |0 Q/ U
                        & ], ?7 Z1 V& E% m+ l
大概在133行左右,$_GET[‘code’]没有经过任何判断和过滤。8 p' Q, {; H% L: ]+ l5 W
Include/payment/yeepay.php
8 i3 {1 I+ a! k5 y......function respond(){ /* 引入配置文件 */require_once DEDEDATA.'/payment/'.$_REQUEST['code'].'.php'; $p1_MerId = trim($payment['yp_account']);$merchantKey = trim($payment['yp_key']);......
# N- l5 q, d1 i7 p2 J                        6 O; [" u( }% A2 ]5 L5 V( Z$ w
大概在145行左右,$_REQUEST['code']没有经过任何判断和过滤。<* 参考
$ N- W- R! k' Y! d5 Z3 ^http://bugscan.net/manage/node/83
+ @7 J9 ^8 p' K/ H6 bhttp://www.cnseay.com/2515/: B) l* \3 M* x. ^6 Z1 y" ~9 [6 r8 r
*>+ N8 k0 b/ Y6 E- ]6 ~2 J* X& x
测试方法:
$ U: W" ^  S+ v- k  g- W, h/ E, Y1.http://www.dedecms.com/plus/carb ... amp;code=../../tags 上面的Exp是包含根目录下的tags.php文件包含其他后缀请自行构造截断, 使用exp测试时须要自己添加一个code等于alipay或yeepay的cookie
: k7 v4 w4 x' r; V5 ?# Q2.由于bank和cod这两个文件并没有respond方法,所以如果code等于bank或者cod时将会暴错泄露路径
( [* v3 l& j6 h: [修复方法:' r8 ]8 }+ ~- k4 T& B7 p# L2 Q
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:
, Z  z6 s0 e2 [; o, ^! r7 b& s6 Qhttp://www.dedecms.com/products/dedecms/
5 ^6 ~+ h) `1 i" M
, F9 T2 L( s: ?6 }2 x. d8 ?' n 临时修复: ; a' U: N6 u0 c; L/ Z
1)Include/payment/alipay.php+ h2 I) [" M4 b( Q
  大概133行左右5 Y, B% h+ X2 Y
  require_once DEDEDATA.'/payment/'.$_GET['code'].'.php';
$ q" B4 W4 Y2 T8 O替换; d4 m/ e3 ?. k" z
require_once DEDEDATA.'/payment/'.basename($_GET['code']).'.php';) O2 _# v3 o) z
2) Include/payment/yeepay.php+ g* D: J' _4 t+ Q' h0 [! C
大概在145行左右9 {3 S1 ]' ?) d% }; O
require_once DEDEDATA.'/payment/'.$_REQUEST['code'].'.php';2 e: ]3 s9 J" c% D
替换2 Z3 ]" |/ Z' x* T
require_once DEDEDATA.'/payment/'.basename($_REQUEST['code']).'.php';
: ?0 J& n9 D) k4 x& b" ?1 ` + A" G; G# }4 ]; G8 v





欢迎光临 中国网络渗透测试联盟 (https://www.cobjon.com/) Powered by Discuz! X3.2