中国网络渗透测试联盟

标题: 织梦(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" JDedeCms是免费的PHP网站内容管理系统。+ c/ S; ^/ ^3 x2 Y9 N& ^  E, }

$ ?% W; o. W4 ~9 ^8 w6 Jplus/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' KInclude/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 WInclude/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 Phttp://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 I2.由于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* M1)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