中国网络渗透测试联盟

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

作者: admin    时间: 2013-4-4 17:36
标题: 织梦(Dedecms)V5.X 本地文件包含漏洞
漏洞版本:+ H, _# T) G/ d% I( T3 t
DedeCms 5.x漏洞描述:/ D5 t, F4 H5 }+ V
DedeCms是免费的PHP网站内容管理系统。0 H8 |5 t8 G) L, A3 p8 P
6 a, z4 D5 B2 R1 G. S! U
plus/carbuyaction.php里没有对变量进行严格的过滤
5 Y: P- K% \9 [2 ^! T" `- p  [! c' H
) e! y& ~% u9 v2 e7 i出现漏洞的两个文件为:
, A# a/ ?6 |3 d* t% R! n1 r* D. Q7 CInclude/payment/alipay.php
0 l  R8 d3 D: q5 O7 w; b# EInclude/payment/yeepay.php
/ y" C0 h& v" W9 y" F' k$ z漏洞均出现在respond方法里$ Z( T+ U  O/ g- d; j- n. k2 z6 i

8 r$ |* s0 U$ UInclude/payment/alipay.php
$ y; g6 J. e! r2 U......function respond(){if (!empty($_POST)){foreach($_POST as $key => $data){$_GET[$key] = $data;}}/* 引入配置文件 */require_once DEDEDATA.'/payment/'.$_GET['code'].'.php';......
1 v( ]; m( X! x9 C2 F2 R                       
5 H; {# B. N# |; h( x- y7 R大概在133行左右,$_GET[‘code’]没有经过任何判断和过滤。
+ e# |& s& Q/ Y  ?* X, `Include/payment/yeepay.php- M& w) _, f- u+ E/ H7 W, k# p
......function respond(){ /* 引入配置文件 */require_once DEDEDATA.'/payment/'.$_REQUEST['code'].'.php'; $p1_MerId = trim($payment['yp_account']);$merchantKey = trim($payment['yp_key']);......8 [7 W) _8 X* }6 y+ ^; U4 g
                        ' Z4 K) D1 Y, g$ U' {
大概在145行左右,$_REQUEST['code']没有经过任何判断和过滤。<* 参考
; v: J. k. Z8 G5 Zhttp://bugscan.net/manage/node/83  }8 U" _& x) A+ |
http://www.cnseay.com/2515/
& X+ E6 s9 f* J- h6 Z7 C9 @*>
5 P( y% E7 G" L8 \: |" U6 e测试方法:
0 A' W+ C* Q' s8 S( V' M+ q% ?0 D1.http://www.dedecms.com/plus/carb ... amp;code=../../tags 上面的Exp是包含根目录下的tags.php文件包含其他后缀请自行构造截断, 使用exp测试时须要自己添加一个code等于alipay或yeepay的cookie
# L/ j! X, D) F0 h$ s% Q$ l2.由于bank和cod这两个文件并没有respond方法,所以如果code等于bank或者cod时将会暴错泄露路径
5 j* {; ~0 K3 A' b) _" ~: l修复方法:: H4 `# g$ V8 a0 C1 O& `, @! `: K
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:
4 P" n% k5 l8 q7 s  U; ~; Jhttp://www.dedecms.com/products/dedecms/1 D" Z% [$ Q# S. H
3 p5 T8 y5 P8 P# K* W
临时修复: 9 q0 z' r- Q5 H2 W2 v% N) d
1)Include/payment/alipay.php
5 S: Z, z$ W7 j# i0 m. [# q  大概133行左右. k; M* }$ Y5 ^& D% Y5 S
  require_once DEDEDATA.'/payment/'.$_GET['code'].'.php';
  n4 G, K; N# L& G替换) I# u% m2 c  d3 Z! n
require_once DEDEDATA.'/payment/'.basename($_GET['code']).'.php';
1 ~6 a( u1 v. |4 e9 m- ]1 Y, [1 J* R2) Include/payment/yeepay.php& w/ a3 D4 W1 Y, W; k
大概在145行左右
6 a) J3 G  e; I8 A5 j% o require_once DEDEDATA.'/payment/'.$_REQUEST['code'].'.php';! W7 G8 e# }- L0 }7 {
替换, L; E0 W4 y" y' B
require_once DEDEDATA.'/payment/'.basename($_REQUEST['code']).'.php';
( d# Y; O7 a* Y% L5 f
5 v) p; j/ T7 t: N7 u2 O' S( G




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