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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-4 17:36:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
漏洞版本:& x. u! [, f1 K6 A
DedeCms 5.x漏洞描述:
, z: ~" B+ D' [- FDedeCms是免费的PHP网站内容管理系统。
4 M: h+ W+ j9 J
( P! n  _8 X- l, ~plus/carbuyaction.php里没有对变量进行严格的过滤
: I& [3 M: T6 n  w' w5 {1 S
! Y. b/ G4 r& k6 R, a出现漏洞的两个文件为:9 ]* V" K$ ?& m7 ]& L, j" E
Include/payment/alipay.php! x2 k7 Y3 K3 P5 a* [
Include/payment/yeepay.php
& ]  P; J3 W' D% I漏洞均出现在respond方法里/ x5 x' C, [/ a& ]4 v1 b

4 F, R$ C& _2 G& a9 o5 AInclude/payment/alipay.php 0 l2 a3 y2 Y# M' E8 e* \2 [
......function respond(){if (!empty($_POST)){foreach($_POST as $key => $data){$_GET[$key] = $data;}}/* 引入配置文件 */require_once DEDEDATA.'/payment/'.$_GET['code'].'.php';......
/ `- z# F! Q- T& {6 `, L# H' `                       
5 N' A' @; p% ^# g/ Y+ I% T) E大概在133行左右,$_GET[‘code’]没有经过任何判断和过滤。+ c  J! I" o# c
Include/payment/yeepay.php8 J. Q- f  b* q
......function respond(){ /* 引入配置文件 */require_once DEDEDATA.'/payment/'.$_REQUEST['code'].'.php'; $p1_MerId = trim($payment['yp_account']);$merchantKey = trim($payment['yp_key']);......+ m6 d# D' f* J* G" P% D% H
                        + ~& E/ I. W+ y! [$ B, R
大概在145行左右,$_REQUEST['code']没有经过任何判断和过滤。<* 参考
& i. g6 {$ J$ I$ lhttp://bugscan.net/manage/node/83! u9 [* w. ~! t. V0 _3 t
http://www.cnseay.com/2515/# P' V6 t. D6 J+ G8 L1 R
*>
% M* d* n  m: u; q# V$ z测试方法:( \4 ?* K$ L6 Q% Q
1.http://www.dedecms.com/plus/carb ... amp;code=../../tags 上面的Exp是包含根目录下的tags.php文件包含其他后缀请自行构造截断, 使用exp测试时须要自己添加一个code等于alipay或yeepay的cookie
8 u2 k. c, i6 c# g2 m2.由于bank和cod这两个文件并没有respond方法,所以如果code等于bank或者cod时将会暴错泄露路径
% k0 p8 B+ X8 b/ ^' T修复方法:
( C& [" ^3 [- K  @0 ?5 E目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:
7 e, m$ o3 o8 B% v0 chttp://www.dedecms.com/products/dedecms/
7 v0 Q* |# @9 q1 q- @  Q0 D+ z3 l- t* P3 X4 y1 s
临时修复:
+ u0 H9 @/ Q) M3 C! r1)Include/payment/alipay.php4 S6 L6 {- ^5 W* T+ O5 _
  大概133行左右$ L" z7 e$ a: @7 ~7 `; B5 f4 ]
  require_once DEDEDATA.'/payment/'.$_GET['code'].'.php';: t3 N) B# i* x+ e( `+ e2 c
替换8 \' k  c4 v$ y7 w2 }( ~' u* D! k
require_once DEDEDATA.'/payment/'.basename($_GET['code']).'.php';4 R/ _4 H9 N" S; H0 l8 N" D
2) Include/payment/yeepay.php1 Q, D3 J2 P3 s0 g% c) {7 l
大概在145行左右( B& [6 n) n+ |
require_once DEDEDATA.'/payment/'.$_REQUEST['code'].'.php';
6 \, O3 k  ]; {. q 替换
- b% L3 D! N1 L: s  Y( {9 c  a/ K require_once DEDEDATA.'/payment/'.basename($_REQUEST['code']).'.php';# b" m7 e8 J& Y1 h

+ ]4 F" w# _" G, X+ _0 k
回复

使用道具 举报

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

本版积分规则

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