中国网络渗透测试联盟

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

作者: admin    时间: 2013-4-4 17:36
标题: 织梦(Dedecms)V5.X 本地文件包含漏洞
漏洞版本:: n5 `  }" O  E  ]7 d! h5 n0 n$ j
DedeCms 5.x漏洞描述:- ~0 e) L2 }( A! t) J
DedeCms是免费的PHP网站内容管理系统。0 e" s. G9 E4 G, Y5 x  P8 D

4 Q0 e# o$ C$ W8 {) {; rplus/carbuyaction.php里没有对变量进行严格的过滤2 }. F' q8 a& f. w$ r) m
# E3 c2 C  z5 ]( `
出现漏洞的两个文件为:+ a, o( N* ~! C4 `
Include/payment/alipay.php
1 F$ s2 R$ k4 S/ Q/ {; w! e/ R7 gInclude/payment/yeepay.php
& _0 F$ |  [+ ~6 x# }2 d+ m漏洞均出现在respond方法里
0 j* d0 M* l; }
* @. l6 J4 G( N6 ^) x5 r3 j2 F' XInclude/payment/alipay.php
1 k* m( d1 w. q  P6 `......function respond(){if (!empty($_POST)){foreach($_POST as $key => $data){$_GET[$key] = $data;}}/* 引入配置文件 */require_once DEDEDATA.'/payment/'.$_GET['code'].'.php';......3 N. }  s' f; b( v+ K# A2 a/ e+ v
                       
$ ~5 _7 q8 w; U/ p/ f2 c大概在133行左右,$_GET[‘code’]没有经过任何判断和过滤。
# L# C1 r' A! MInclude/payment/yeepay.php
2 J1 H! Z: J/ i8 F% a......function respond(){ /* 引入配置文件 */require_once DEDEDATA.'/payment/'.$_REQUEST['code'].'.php'; $p1_MerId = trim($payment['yp_account']);$merchantKey = trim($payment['yp_key']);......  x+ X. ~2 o8 `5 e- y
                       
/ y: L7 f: b  h, V7 V7 I  ~大概在145行左右,$_REQUEST['code']没有经过任何判断和过滤。<* 参考. ]( }0 Y( v+ r) Y
http://bugscan.net/manage/node/83
; d9 ]2 d2 U- f4 e4 x; p( w4 Whttp://www.cnseay.com/2515/
& }$ S4 P0 \0 @/ h1 M+ L# h9 p0 m*>, s8 e8 q3 S' V2 Y* L- M8 s9 j# S
测试方法:
# {. ?* K8 n# y1 ~" ^1.http://www.dedecms.com/plus/carb ... amp;code=../../tags 上面的Exp是包含根目录下的tags.php文件包含其他后缀请自行构造截断, 使用exp测试时须要自己添加一个code等于alipay或yeepay的cookie
% E2 U# L# y4 W& q+ m0 L3 ?2.由于bank和cod这两个文件并没有respond方法,所以如果code等于bank或者cod时将会暴错泄露路径
7 G+ D* `6 Y  \% ]; x4 ?2 @, }修复方法:" p1 ?6 {9 }5 v, t+ H4 X
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:
( r1 p9 g5 f0 _8 E1 s) zhttp://www.dedecms.com/products/dedecms/
8 y( i0 k) n- E/ z# b2 l
! p, \! e( _- e: _$ G( I, | 临时修复:
  `8 t" h8 q$ s1)Include/payment/alipay.php4 B# U) f: ~; Q( U6 v
  大概133行左右
2 M7 l/ B6 T* I2 r6 ?# z) U  require_once DEDEDATA.'/payment/'.$_GET['code'].'.php';
+ \3 _* b2 E! c替换
3 b  T7 \1 i+ W" k# i require_once DEDEDATA.'/payment/'.basename($_GET['code']).'.php';
. M- C. D7 y* }* _! Q3 ~. a. B, c' G2) Include/payment/yeepay.php
: f+ \* v# l. ~% r大概在145行左右) D8 b/ m- y1 S/ o( s$ A) |, d  s
require_once DEDEDATA.'/payment/'.$_REQUEST['code'].'.php';% G# U5 r3 j( V' t, k
替换
, N) w+ `! p  h7 l, K, N require_once DEDEDATA.'/payment/'.basename($_REQUEST['code']).'.php';) \3 D1 X# V& I- U+ q" {0 T( o
$ B& }$ ^6 t2 J7 o5 p) G& L





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