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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-4 17:36:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
漏洞版本:* K* s* T, m  ^. U: k9 k# }3 N
DedeCms 5.x漏洞描述:
3 T% r7 S6 h4 H2 RDedeCms是免费的PHP网站内容管理系统。% u! @- L+ Y! E; F; B9 ?

7 E7 Q% p7 [  o/ H3 M7 \3 c5 Q, \plus/carbuyaction.php里没有对变量进行严格的过滤
$ J2 a6 Q' ^2 H% \7 m0 b
5 E  w  q, a6 \+ |9 ^出现漏洞的两个文件为:
3 Y$ }+ ^$ W. P/ Q! MInclude/payment/alipay.php7 j0 s% M. v# G1 R# N$ G( ?
Include/payment/yeepay.php
7 u) R9 E. G) u漏洞均出现在respond方法里
- P: \# N6 N3 e/ |0 c
$ F! {5 u; F1 p# s/ F! L, `Include/payment/alipay.php
- c% L% \) r. {  D. o+ u# S......function respond(){if (!empty($_POST)){foreach($_POST as $key => $data){$_GET[$key] = $data;}}/* 引入配置文件 */require_once DEDEDATA.'/payment/'.$_GET['code'].'.php';......% q* w& i: q% v7 Y" U* X& y
                       
* ~( K  ?) E# u2 n- J5 L4 |( [0 H大概在133行左右,$_GET[‘code’]没有经过任何判断和过滤。
" [/ i6 O3 k9 p1 Z' J6 WInclude/payment/yeepay.php
2 i  q. k/ A8 M( Y# F......function respond(){ /* 引入配置文件 */require_once DEDEDATA.'/payment/'.$_REQUEST['code'].'.php'; $p1_MerId = trim($payment['yp_account']);$merchantKey = trim($payment['yp_key']);......- i! n- l6 S8 D) o
                       
) w; T) u( }# m2 x5 U8 |1 B大概在145行左右,$_REQUEST['code']没有经过任何判断和过滤。<* 参考
5 K# }# ?0 {7 ^$ Mhttp://bugscan.net/manage/node/83  ^4 R, q1 \8 [" G% i/ y
http://www.cnseay.com/2515/2 N% T  Z+ m3 Q1 n" ]2 \7 e% Q  e
*>
1 |. `5 w; o( A) Y测试方法:
- S9 T& y- `1 p( B0 L3 y1.http://www.dedecms.com/plus/carb ... amp;code=../../tags 上面的Exp是包含根目录下的tags.php文件包含其他后缀请自行构造截断, 使用exp测试时须要自己添加一个code等于alipay或yeepay的cookie
- E6 O+ f% O/ h/ K  G$ b2.由于bank和cod这两个文件并没有respond方法,所以如果code等于bank或者cod时将会暴错泄露路径
0 }1 v( |9 Z* f修复方法:
# h8 E! u% K5 D: F4 @目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:
/ U0 b5 X% ~6 R& D/ Fhttp://www.dedecms.com/products/dedecms/. k  s/ Z; c  l0 n3 ^
2 ]9 b+ b; ~1 f, d: p9 _
临时修复: 6 F4 r2 N! r6 m
1)Include/payment/alipay.php+ M! ]& R: Q4 I/ F; s
  大概133行左右
+ l5 O0 I: Z% H& a7 ^  require_once DEDEDATA.'/payment/'.$_GET['code'].'.php';* T  |& n- }8 t/ U
替换
: E3 Q. u+ g( Z* \7 i. e require_once DEDEDATA.'/payment/'.basename($_GET['code']).'.php';: L! l& G7 K& H! O( i
2) Include/payment/yeepay.php: u$ m6 d1 f  v8 {( H
大概在145行左右
8 x$ \9 ~$ P8 ^& M: J) c, N7 C: s require_once DEDEDATA.'/payment/'.$_REQUEST['code'].'.php';
% i+ t# |' A( e. t9 q 替换
/ y: D* d0 x$ ^: I2 |3 S1 ` require_once DEDEDATA.'/payment/'.basename($_REQUEST['code']).'.php';: A6 K, f" s3 J& y0 w

. f0 _' T* K$ Y2 L" J8 b
回复

使用道具 举报

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

本版积分规则

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