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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-4 17:36:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
漏洞版本:0 d3 j4 D  m/ ]; X$ q0 C, p
DedeCms 5.x漏洞描述:- ]+ k3 T* B* I7 L( S
DedeCms是免费的PHP网站内容管理系统。+ |- [. L$ I( L. a

2 z9 `; G2 |) d, T, r& i: F4 a/ dplus/carbuyaction.php里没有对变量进行严格的过滤
+ m" e) i1 g& \
7 b8 Y5 Y+ y$ B# k) J$ C. t) O7 }出现漏洞的两个文件为:3 b" R5 W4 U4 U' f. h" R9 P
Include/payment/alipay.php) ~  [+ ]7 k! i% w7 F, W1 |
Include/payment/yeepay.php
5 J% D( n: Z/ H% W4 h2 Q漏洞均出现在respond方法里4 s7 ]. m5 m8 y; h+ y7 N+ w

: U( O8 I$ E! x9 r( v8 @2 SInclude/payment/alipay.php
- ~, T) F* w0 Y. P" j......function respond(){if (!empty($_POST)){foreach($_POST as $key => $data){$_GET[$key] = $data;}}/* 引入配置文件 */require_once DEDEDATA.'/payment/'.$_GET['code'].'.php';......+ L- s1 L/ D$ D4 u% j+ t
                        & c* ~  S& Y8 g8 {, b
大概在133行左右,$_GET[‘code’]没有经过任何判断和过滤。) M3 f" R! O  C! K) N2 f
Include/payment/yeepay.php; I( L( ]  w/ b) B
......function respond(){ /* 引入配置文件 */require_once DEDEDATA.'/payment/'.$_REQUEST['code'].'.php'; $p1_MerId = trim($payment['yp_account']);$merchantKey = trim($payment['yp_key']);......6 u7 s9 w8 I+ S4 [
                        . y& u& l, H) e) Z& b
大概在145行左右,$_REQUEST['code']没有经过任何判断和过滤。<* 参考
$ M" F1 x, H) W; bhttp://bugscan.net/manage/node/83
4 C0 T  @9 [" c' F% chttp://www.cnseay.com/2515/
3 t  @! A% h+ F6 J6 |7 e' g*>, d' x3 |" e) B: ?9 V# ~& n2 G$ S
测试方法:
. f$ e' T& {' w/ X  X6 t  |1.http://www.dedecms.com/plus/carb ... amp;code=../../tags 上面的Exp是包含根目录下的tags.php文件包含其他后缀请自行构造截断, 使用exp测试时须要自己添加一个code等于alipay或yeepay的cookie 1 E; i2 C% ]0 ]/ S  @8 _! W5 U
2.由于bank和cod这两个文件并没有respond方法,所以如果code等于bank或者cod时将会暴错泄露路径
2 k* I8 d+ R" ]& k! f修复方法:
5 J- w' i7 I! Z目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:2 M, p" i/ ~5 Z) H
http://www.dedecms.com/products/dedecms/
: J6 J5 C+ ]! {+ ]( p- v; C6 Q  Y" A0 X
临时修复: ! B7 m1 C& }+ t. \5 D/ ?+ ^8 j
1)Include/payment/alipay.php! G2 s& {. U+ R" t" N8 T7 `* P0 Z
  大概133行左右- c# @; L0 u1 B1 X. L% F* |
  require_once DEDEDATA.'/payment/'.$_GET['code'].'.php';
1 |' s% U# C, v! _替换
+ m0 [5 t4 Q& q2 V- u7 t' O. j require_once DEDEDATA.'/payment/'.basename($_GET['code']).'.php';
/ ?- _8 A; j" _* V2) Include/payment/yeepay.php- d+ B7 R0 t$ P4 m% D/ }# ]' r
大概在145行左右! ^: P* {: I. {
require_once DEDEDATA.'/payment/'.$_REQUEST['code'].'.php';
  Y: H. n8 ^/ C& y$ @; E 替换+ k# {" S) X8 U( Z
require_once DEDEDATA.'/payment/'.basename($_REQUEST['code']).'.php';
' N0 Y# `- E- Q% T% `5 N% M
6 x" ?# {% X$ P
回复

使用道具 举报

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

本版积分规则

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