找回密码
 立即注册
欢迎中测联盟老会员回家,1997年注册的域名
查看: 2212|回复: 0
打印 上一主题 下一主题

织梦(Dedecms)V5.X 本地文件包含漏洞

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-4 17:36:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
漏洞版本:
" D$ i. |9 g( C6 \+ _DedeCms 5.x漏洞描述:2 M" x( A; p( U
DedeCms是免费的PHP网站内容管理系统。
# X) U; ~4 u5 P
. c; C5 e4 F$ b. jplus/carbuyaction.php里没有对变量进行严格的过滤, t4 F" {0 d/ h

' j* M4 f' o- T6 Z5 b  q; b" O出现漏洞的两个文件为:
; \, n' U% Z4 g9 b: q* P( WInclude/payment/alipay.php; s9 h" f0 U! ?# [' X0 `
Include/payment/yeepay.php/ A& a" D; E7 c: D/ X
漏洞均出现在respond方法里8 i( p( h+ Z1 ^6 D1 e
/ t' {1 z# x  J( ^; Z( _0 d
Include/payment/alipay.php - J, K# v2 p" Q( ~
......function respond(){if (!empty($_POST)){foreach($_POST as $key => $data){$_GET[$key] = $data;}}/* 引入配置文件 */require_once DEDEDATA.'/payment/'.$_GET['code'].'.php';......
" S/ m- A" f. b  z; r8 C                       
' }6 N- ?  W: A大概在133行左右,$_GET[‘code’]没有经过任何判断和过滤。
1 c+ M  U9 h4 `1 b  J. `. \4 @Include/payment/yeepay.php/ Q+ N5 N' @$ n9 ^4 |
......function respond(){ /* 引入配置文件 */require_once DEDEDATA.'/payment/'.$_REQUEST['code'].'.php'; $p1_MerId = trim($payment['yp_account']);$merchantKey = trim($payment['yp_key']);......
% M2 T* p$ O+ r& E9 p* Q! r                        0 L5 w" G% Z3 c, H' n
大概在145行左右,$_REQUEST['code']没有经过任何判断和过滤。<* 参考$ e( _! a- q6 V, e  l! {& Q9 q
http://bugscan.net/manage/node/833 c- }6 S/ I0 D% F( f! @
http://www.cnseay.com/2515/
; m0 F! N3 f- I( Z0 \0 l*>! q. H4 G3 ~6 A  ^( K& r1 A% G. I
测试方法:, h( ^, @! @* |5 f  L" }& k
1.http://www.dedecms.com/plus/carb ... amp;code=../../tags 上面的Exp是包含根目录下的tags.php文件包含其他后缀请自行构造截断, 使用exp测试时须要自己添加一个code等于alipay或yeepay的cookie ( E- D* s+ P* H, C0 ]+ r
2.由于bank和cod这两个文件并没有respond方法,所以如果code等于bank或者cod时将会暴错泄露路径& v6 c! F; U7 S  F; D. t: R
修复方法:# P$ o! `' P6 g
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:
0 c8 _$ y% ?  z- Khttp://www.dedecms.com/products/dedecms/
$ x. P+ R+ S  O: u2 ^# G2 ?+ h( N3 i& q: z' E& h
临时修复:
  m7 t7 h! r# v( M& O) |1)Include/payment/alipay.php
/ J* ~. g/ N; w# M/ ^5 `% }( T; g  大概133行左右
" Y6 y8 \6 Q' @% F! b( `3 D, B  require_once DEDEDATA.'/payment/'.$_GET['code'].'.php';
$ W: Y' n0 `% j' G替换
2 j( G6 W7 B1 {, Q require_once DEDEDATA.'/payment/'.basename($_GET['code']).'.php';6 e2 w4 ]9 l5 E' Y
2) Include/payment/yeepay.php
1 Z- }9 k3 u2 c" O- {/ d2 M( }8 r大概在145行左右8 M# W$ I8 H; t
require_once DEDEDATA.'/payment/'.$_REQUEST['code'].'.php';. Y! ?5 \! ?0 y$ R. t& \: W$ S1 A
替换
$ P# K3 s2 |" V+ ~  \3 N require_once DEDEDATA.'/payment/'.basename($_REQUEST['code']).'.php';2 f' C# [$ @1 U

4 T3 |0 v, l4 [% V8 a
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表