找回密码
 立即注册
查看: 2770|回复: 0
打印 上一主题 下一主题

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

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-4 17:36:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
漏洞版本:
" _8 p- N" b6 z& z1 H2 O- oDedeCms 5.x漏洞描述:
# k2 u9 Q+ j: a5 M0 gDedeCms是免费的PHP网站内容管理系统。8 E0 @/ T* ?5 [7 a! d0 Z, ]

# k8 q% B* @0 v( }7 lplus/carbuyaction.php里没有对变量进行严格的过滤/ o# s1 Q, ]9 n+ `/ {+ Z) I

& [" r" y: C0 A# M) D6 f出现漏洞的两个文件为:
" e/ P6 \% U1 ]6 }) I6 aInclude/payment/alipay.php
1 p" Q& I: x, U* w+ TInclude/payment/yeepay.php) j& ^+ i  \6 n! J
漏洞均出现在respond方法里" C& e) v; Y; p4 R! H
  y; A3 {  z6 W: D0 {
Include/payment/alipay.php ' ?: ^: \  N) R9 R
......function respond(){if (!empty($_POST)){foreach($_POST as $key => $data){$_GET[$key] = $data;}}/* 引入配置文件 */require_once DEDEDATA.'/payment/'.$_GET['code'].'.php';......
# |4 ~) g$ L1 {  J2 v3 @0 K                        & I' _# m! o: l+ ~' S" k$ ]
大概在133行左右,$_GET[‘code’]没有经过任何判断和过滤。* i1 }* u" ^. D5 z& P
Include/payment/yeepay.php6 _" L8 ?4 q3 }  S4 ^1 w# G5 c7 k; n
......function respond(){ /* 引入配置文件 */require_once DEDEDATA.'/payment/'.$_REQUEST['code'].'.php'; $p1_MerId = trim($payment['yp_account']);$merchantKey = trim($payment['yp_key']);......: O- j' [3 r# |% }( F3 J$ A" [
                        . e% o4 e' y' r0 \" w9 _0 ]
大概在145行左右,$_REQUEST['code']没有经过任何判断和过滤。<* 参考
5 k- x' f; W& g4 t$ K- s9 |7 {http://bugscan.net/manage/node/83
. \2 }7 |$ @# Ihttp://www.cnseay.com/2515/2 V$ B8 I+ s9 u5 m
*>/ R* G, }$ O. ?. g7 ^& J5 U; Y
测试方法:
" R! l7 c. Z5 f2 z1.http://www.dedecms.com/plus/carb ... amp;code=../../tags 上面的Exp是包含根目录下的tags.php文件包含其他后缀请自行构造截断, 使用exp测试时须要自己添加一个code等于alipay或yeepay的cookie
; f+ \$ B9 F' Y7 }, k  w2.由于bank和cod这两个文件并没有respond方法,所以如果code等于bank或者cod时将会暴错泄露路径
- U# V; S% _$ E! R( ]6 a9 y0 Z修复方法:/ u: @3 ?. X9 I) E1 ^" |$ N
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:6 s  ^0 c. A$ u
http://www.dedecms.com/products/dedecms/2 `; p$ g1 r# R6 s  z
9 U& t/ n" q1 ?# N% n5 h0 J: G* h
临时修复:
" p3 r. g! y# h, \1 I1)Include/payment/alipay.php" E- ?/ v% r; g* O/ G4 R
  大概133行左右
: l* k9 m1 A. `" d& h* v  require_once DEDEDATA.'/payment/'.$_GET['code'].'.php';% \( Z6 ?% ]. s9 |
替换
6 J0 D' P& h) S  t require_once DEDEDATA.'/payment/'.basename($_GET['code']).'.php';. f5 `8 {( F. t  V' X
2) Include/payment/yeepay.php
8 Q+ B. T9 S6 A1 E5 n2 X大概在145行左右
" ~. }" K! k) W% e4 P5 B require_once DEDEDATA.'/payment/'.$_REQUEST['code'].'.php';+ |: G2 L6 v/ D3 _
替换2 {7 H8 R" A8 [" J& h4 A6 `* W
require_once DEDEDATA.'/payment/'.basename($_REQUEST['code']).'.php';
8 B* x& J) K' o
0 M* _3 W* N& S& u; }5 Z! y8 t
回复

使用道具 举报

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

本版积分规则

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