中国网络渗透测试联盟

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

作者: admin    时间: 2013-4-4 17:36
标题: 织梦(Dedecms)V5.X 本地文件包含漏洞
漏洞版本:
8 d8 ]$ u2 M, D' l1 YDedeCms 5.x漏洞描述:
/ i5 W0 w0 i. D+ t7 T" K2 i8 T1 YDedeCms是免费的PHP网站内容管理系统。
# H: U3 H" X2 S2 `7 y" n  ]8 W, {% K1 M3 }
plus/carbuyaction.php里没有对变量进行严格的过滤, i% P& Z. S2 V$ U

9 P5 F$ ?5 T5 C3 L; M5 Q1 F出现漏洞的两个文件为:$ x- w& E: |1 ^+ C! I
Include/payment/alipay.php% v! W* i+ O7 Z" T
Include/payment/yeepay.php
) R! ~8 x5 n( V& z0 I$ I0 Y; w漏洞均出现在respond方法里" B/ b; k: G! p* j/ @* o

2 d! T( ~" w9 ~Include/payment/alipay.php ; B. u9 F+ N& \4 @
......function respond(){if (!empty($_POST)){foreach($_POST as $key => $data){$_GET[$key] = $data;}}/* 引入配置文件 */require_once DEDEDATA.'/payment/'.$_GET['code'].'.php';......3 h: z3 U4 E3 Z. f1 |: S; N/ U1 ]
                       
7 Z3 s0 ^. u1 `+ r0 n大概在133行左右,$_GET[‘code’]没有经过任何判断和过滤。( g! M8 y" {6 z( s
Include/payment/yeepay.php. o1 ~1 s8 r2 z+ \6 o4 b" n
......function respond(){ /* 引入配置文件 */require_once DEDEDATA.'/payment/'.$_REQUEST['code'].'.php'; $p1_MerId = trim($payment['yp_account']);$merchantKey = trim($payment['yp_key']);......8 U* B( u- j0 x! u" m3 `
                       
3 F# p- N! Z6 i大概在145行左右,$_REQUEST['code']没有经过任何判断和过滤。<* 参考
, A: {( T9 C4 u& ihttp://bugscan.net/manage/node/836 r; A: s* }+ {4 X  P/ i' D2 C
http://www.cnseay.com/2515/# E+ S" j+ E: Q0 [: @
*>
, m+ c6 u5 u" f4 b7 e- `9 d测试方法:
4 C) L$ s7 l; r3 `8 a1.http://www.dedecms.com/plus/carb ... amp;code=../../tags 上面的Exp是包含根目录下的tags.php文件包含其他后缀请自行构造截断, 使用exp测试时须要自己添加一个code等于alipay或yeepay的cookie
6 o! H% p# c2 s" [+ ]2.由于bank和cod这两个文件并没有respond方法,所以如果code等于bank或者cod时将会暴错泄露路径
2 E3 f' o% l5 C修复方法:
) l! J6 h7 [! h5 U! E目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:
5 e8 [, M; b7 ^9 Y* ghttp://www.dedecms.com/products/dedecms/
8 T1 E2 _4 a* x; A- s* a, ^2 f' ?" J- I8 H- I) f
临时修复:
- X- b' }9 I, S$ @' Q1)Include/payment/alipay.php' M' r! @: L0 U, L( ^
  大概133行左右
$ q; G$ I" G, F2 g  require_once DEDEDATA.'/payment/'.$_GET['code'].'.php';" f7 [5 ?: r' Y: p, e- c( i' h  d: Z
替换
5 a7 i( F- s( Q8 m& i require_once DEDEDATA.'/payment/'.basename($_GET['code']).'.php';, V9 p$ D0 H2 X, h8 l! ~$ p
2) Include/payment/yeepay.php
( b: ^9 X0 `/ b" B大概在145行左右
$ ~9 t* i- `8 D! ]! b' ~ require_once DEDEDATA.'/payment/'.$_REQUEST['code'].'.php';! Y) e9 i9 H' I! l4 O0 r) ~) H
替换+ ]9 K7 z4 K7 e5 h( q
require_once DEDEDATA.'/payment/'.basename($_REQUEST['code']).'.php';8 m9 u7 p1 }0 J5 ?
4 w7 q1 w. D* _7 ~# s* L





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