中国网络渗透测试联盟

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

作者: admin    时间: 2013-4-4 17:36
标题: 织梦(Dedecms)V5.X 本地文件包含漏洞
漏洞版本:  P/ K0 z, y& J( K% |
DedeCms 5.x漏洞描述:- h; F& s3 J2 X! X
DedeCms是免费的PHP网站内容管理系统。7 v5 f3 t) W3 O# f3 i: C
5 l& @7 k) ]: k* I
plus/carbuyaction.php里没有对变量进行严格的过滤8 P' Q1 L3 ~9 ^* b
  w) m8 V1 R$ _' J$ }8 |5 i; c
出现漏洞的两个文件为:
3 I0 s* q$ S) c0 i6 M, l0 g! A5 DInclude/payment/alipay.php& l, @9 s) A6 u/ x
Include/payment/yeepay.php
4 N. p2 d) Y+ Y漏洞均出现在respond方法里, f: c1 J, O- i  o: \' J

6 C5 J, \- u( w6 OInclude/payment/alipay.php 9 N" U7 @0 Q" y. w+ o, Y0 d6 ?
......function respond(){if (!empty($_POST)){foreach($_POST as $key => $data){$_GET[$key] = $data;}}/* 引入配置文件 */require_once DEDEDATA.'/payment/'.$_GET['code'].'.php';......
; F7 D  i) T2 y                       
& X9 X+ n! w4 B- r3 v- ~% q大概在133行左右,$_GET[‘code’]没有经过任何判断和过滤。
1 M; E0 e4 Q8 S: q7 E. z/ I$ BInclude/payment/yeepay.php
& I' ]. B0 Y2 P# d4 e* S......function respond(){ /* 引入配置文件 */require_once DEDEDATA.'/payment/'.$_REQUEST['code'].'.php'; $p1_MerId = trim($payment['yp_account']);$merchantKey = trim($payment['yp_key']);......2 |, W& u/ _; x. h" h8 G
                        $ _0 A, V. D$ Q, {" G0 D5 u, l
大概在145行左右,$_REQUEST['code']没有经过任何判断和过滤。<* 参考
, b2 o) W0 w0 k, p) Q7 ]http://bugscan.net/manage/node/838 d+ o. a( F& }1 t) S
http://www.cnseay.com/2515/
( ^/ }- v! ~9 c$ e( s*>* C9 t% i$ }' X0 h1 p6 e* x2 j
测试方法:+ v0 O9 r3 L& \: Y5 Z5 }  w
1.http://www.dedecms.com/plus/carb ... amp;code=../../tags 上面的Exp是包含根目录下的tags.php文件包含其他后缀请自行构造截断, 使用exp测试时须要自己添加一个code等于alipay或yeepay的cookie
7 a! H9 T2 I0 c+ Y; C% ]  ~1 S0 X2.由于bank和cod这两个文件并没有respond方法,所以如果code等于bank或者cod时将会暴错泄露路径
+ c0 U. F/ T6 `4 h  t  v修复方法:
/ m7 ^" [; l# I, L% w目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:
1 C; n7 x5 @, I6 B- r4 Hhttp://www.dedecms.com/products/dedecms/
* b9 A% Q/ s* y2 e/ S# D
& ^8 m" ~7 Q) ] 临时修复: , j# \; T; Z. d: I; B" T2 Y
1)Include/payment/alipay.php
1 F! T, }3 p6 x+ j6 l1 S. k) ~  大概133行左右6 {, o" i+ y0 A* C3 `, C" n
  require_once DEDEDATA.'/payment/'.$_GET['code'].'.php';
9 Z% z# ^$ ?" q2 Y: r/ c5 r替换
, X  ~! a2 r' y: U4 H9 \8 X8 P require_once DEDEDATA.'/payment/'.basename($_GET['code']).'.php';
& L* a3 r: v- M8 R2) Include/payment/yeepay.php  N. u7 F# b  V* A
大概在145行左右
# k7 G0 y4 u  e! H6 ~! X require_once DEDEDATA.'/payment/'.$_REQUEST['code'].'.php';. X3 b! n! Z0 X& B
替换
6 M7 P1 Y* i  e8 l" Y) B require_once DEDEDATA.'/payment/'.basename($_REQUEST['code']).'.php';
0 X, x: z; s- Z / a: v; k0 o6 o* E$ f5 F: K





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