中国网络渗透测试联盟

标题: 织梦(Dedecms)V5.X 本地文件包含漏洞 [打印本页]

作者: admin    时间: 2013-4-4 17:36
标题: 织梦(Dedecms)V5.X 本地文件包含漏洞
漏洞版本:
1 z, G; G) Y) \4 P. YDedeCms 5.x漏洞描述:' L, [( R0 |4 K  y/ J7 }
DedeCms是免费的PHP网站内容管理系统。
! y2 d* h$ d9 D2 D- {% O- F  |+ B% p( F5 B! r4 C4 Z
plus/carbuyaction.php里没有对变量进行严格的过滤
* A. X  ?! j/ K) \2 e. `; ~- W8 o; \% i' ?/ `4 _0 E3 G4 H. y7 g
出现漏洞的两个文件为:$ y6 I1 U  v4 C8 x8 R: I( f
Include/payment/alipay.php& F/ ?6 E5 T& `& x1 Q
Include/payment/yeepay.php
" s$ e) u! T( Z$ j% p漏洞均出现在respond方法里/ p2 V# ?8 h5 ?# C% w% t+ v1 Q# r: `
. A0 _- N" @+ o& Y
Include/payment/alipay.php & L# Q1 e4 x* a' W8 g) M
......function respond(){if (!empty($_POST)){foreach($_POST as $key => $data){$_GET[$key] = $data;}}/* 引入配置文件 */require_once DEDEDATA.'/payment/'.$_GET['code'].'.php';....../ r5 F( s. ?) }" v( h; K
                       
* C: K: Q  j! ?6 l; J% ^; p) H+ b大概在133行左右,$_GET[‘code’]没有经过任何判断和过滤。2 \! r  H1 ]/ _  A* h" g4 A
Include/payment/yeepay.php
4 P$ H) T; E: s$ f: }......function respond(){ /* 引入配置文件 */require_once DEDEDATA.'/payment/'.$_REQUEST['code'].'.php'; $p1_MerId = trim($payment['yp_account']);$merchantKey = trim($payment['yp_key']);......
" r# k* h6 o) k. @                       
$ S  M0 J7 \4 M7 T2 Z0 A8 i  d大概在145行左右,$_REQUEST['code']没有经过任何判断和过滤。<* 参考
6 T) @) N+ K- o5 z% j- ohttp://bugscan.net/manage/node/83/ t  m* b/ u$ m0 @% u. A- o% [
http://www.cnseay.com/2515/6 P3 i4 y0 [* u7 u, V
*>
# r7 l7 h! k+ R- b  |& H2 j  ?3 O4 [+ V0 L测试方法:# R- ?; H; i$ J% u& c% {9 D
1.http://www.dedecms.com/plus/carb ... amp;code=../../tags 上面的Exp是包含根目录下的tags.php文件包含其他后缀请自行构造截断, 使用exp测试时须要自己添加一个code等于alipay或yeepay的cookie
( n$ L/ _; q4 @" @; d( u2.由于bank和cod这两个文件并没有respond方法,所以如果code等于bank或者cod时将会暴错泄露路径
3 ]; b) }* J! N- C# o( }修复方法:- X$ A( p* L6 ?/ r5 R6 X7 T
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:
- V: L' ]* t; R% v! Q5 K+ |' phttp://www.dedecms.com/products/dedecms/
3 D! x% f! \, ~- o3 [$ Y* r
, s* Y$ {# v, C; T: i 临时修复:
& i/ P( Y' W! A9 ]4 p: Z, z1)Include/payment/alipay.php& Y- n$ E/ _/ Y2 p4 C7 n. n
  大概133行左右  `3 `3 }, K/ C# E" I& t; j
  require_once DEDEDATA.'/payment/'.$_GET['code'].'.php';! X5 q, S0 d( u6 E$ H: \
替换9 U/ e; U; T/ T# J
require_once DEDEDATA.'/payment/'.basename($_GET['code']).'.php';0 z4 w, m# R1 r2 @# p
2) Include/payment/yeepay.php
* O6 b/ Q% p8 @* y% S/ i9 M大概在145行左右
% G. F4 k1 p+ \/ M* d require_once DEDEDATA.'/payment/'.$_REQUEST['code'].'.php';
$ U/ l& G& @. m; X; u 替换
$ R9 S, U, S5 ~ require_once DEDEDATA.'/payment/'.basename($_REQUEST['code']).'.php';
9 g4 x  j% K. H. [! a5 P+ A $ |+ H* T6 [. L4 F4 }





欢迎光临 中国网络渗透测试联盟 (https://www.cobjon.com/) Powered by Discuz! X3.2