中国网络渗透测试联盟
标题:
织梦(Dedecms)V5.X 本地文件包含漏洞
[打印本页]
作者:
admin
时间:
2013-4-4 17:36
标题:
织梦(Dedecms)V5.X 本地文件包含漏洞
漏洞版本:
1 z, G; G) Y) \4 P. Y
DedeCms 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- o
http://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( u
2.由于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+ |' p
http://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, z
1)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