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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-4 17:36:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
漏洞版本:, F! g- v: X* S1 }7 A. I+ ?
DedeCms 5.x漏洞描述:
( C; n7 ^8 C! z5 RDedeCms是免费的PHP网站内容管理系统。
( f% i5 h9 }" E3 s& l0 B- ^1 I! y$ N- @/ e
plus/carbuyaction.php里没有对变量进行严格的过滤$ Y) X6 s7 J; a/ ]  W
" u# s( o6 l  g! K$ n2 Z* I. y# T7 w
出现漏洞的两个文件为:
: u+ j6 ~7 d& U9 I, ?1 ZInclude/payment/alipay.php: k8 [3 N# G$ B, }2 ^+ {3 b
Include/payment/yeepay.php* M# R, D, M% i9 c& k
漏洞均出现在respond方法里9 r7 d2 r) J6 F3 h; x: x' i
- V, U. ]# l$ ]' k% f/ G/ ~
Include/payment/alipay.php
- P' U# q$ V# U% e: k......function respond(){if (!empty($_POST)){foreach($_POST as $key => $data){$_GET[$key] = $data;}}/* 引入配置文件 */require_once DEDEDATA.'/payment/'.$_GET['code'].'.php';......- h' e' F% \! [3 A$ ^) d& |
                        : ~) x- Y: V6 \; o# v* c$ p
大概在133行左右,$_GET[‘code’]没有经过任何判断和过滤。3 ~0 w, L( w) k; x9 f( b
Include/payment/yeepay.php. M, X' e* H0 Q: L- C; ~% L0 D. N
......function respond(){ /* 引入配置文件 */require_once DEDEDATA.'/payment/'.$_REQUEST['code'].'.php'; $p1_MerId = trim($payment['yp_account']);$merchantKey = trim($payment['yp_key']);......
0 O) A9 O: ?; H( [' Q* d8 L                       
8 G  P! |+ X( `$ M. e, c, f& [/ |大概在145行左右,$_REQUEST['code']没有经过任何判断和过滤。<* 参考- T+ u8 I, j; v3 ^, E
http://bugscan.net/manage/node/83
9 i# n, V3 _, [; W) Dhttp://www.cnseay.com/2515/- J0 t; n8 c+ B
*>2 ~/ y! f1 q  X5 J1 d1 R( J8 y
测试方法:' ^& P  Q. }# u9 c2 D) U
1.http://www.dedecms.com/plus/carb ... amp;code=../../tags 上面的Exp是包含根目录下的tags.php文件包含其他后缀请自行构造截断, 使用exp测试时须要自己添加一个code等于alipay或yeepay的cookie
; g, m* P8 g/ c4 d/ {7 C2.由于bank和cod这两个文件并没有respond方法,所以如果code等于bank或者cod时将会暴错泄露路径; e" j: w; |& y7 s# `& u
修复方法:5 K8 Z3 m) f& k' o( U
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:
5 w0 g+ S2 E8 chttp://www.dedecms.com/products/dedecms/3 q, s# @, p. U/ I
3 G" l7 w5 O0 c& N2 u
临时修复:
* f7 X1 [9 R, z* u1)Include/payment/alipay.php3 l4 T+ }, D  q. I, ^2 Q
  大概133行左右
0 A4 ^6 [% W0 l' ~  require_once DEDEDATA.'/payment/'.$_GET['code'].'.php';
+ n" g, q* T0 e" j1 A4 |/ X, `替换: i/ L  d& e* v! b7 x8 d
require_once DEDEDATA.'/payment/'.basename($_GET['code']).'.php';3 u) a* H  K5 T$ z
2) Include/payment/yeepay.php- ?: c0 P0 j1 h& \8 ?; Y
大概在145行左右+ m0 a# U) |' P9 M7 n* H4 |
require_once DEDEDATA.'/payment/'.$_REQUEST['code'].'.php';1 `' _9 d/ q$ ]$ F/ p
替换- N! G5 ?2 L0 r
require_once DEDEDATA.'/payment/'.basename($_REQUEST['code']).'.php';
' c& i( u+ M# a" s3 j8 D
2 C3 }5 G5 E6 p2 E% |/ _% \
回复

使用道具 举报

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

本版积分规则

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