中国网络渗透测试联盟

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

作者: admin    时间: 2013-4-4 17:36
标题: 织梦(Dedecms)V5.X 本地文件包含漏洞
漏洞版本:
) y! a% h9 p% @DedeCms 5.x漏洞描述:
' l" z* f2 ~# d2 v* xDedeCms是免费的PHP网站内容管理系统。# f; |/ m+ S1 h, X
3 Z" t$ s" Q( o. E* u
plus/carbuyaction.php里没有对变量进行严格的过滤% b/ J& ~: `9 J- l. ~. V
9 U* G' m/ ~* D% I& {# I
出现漏洞的两个文件为:9 _3 r% g; v6 K4 l$ Z
Include/payment/alipay.php
2 R: i: p' S' u6 r+ m( sInclude/payment/yeepay.php+ K/ c: M/ }5 ]! e. K/ R, ~
漏洞均出现在respond方法里6 {2 ~$ ]& {% Y; D& Z

* k3 f2 o4 \$ E5 T& h) mInclude/payment/alipay.php
, S' ?# {# g% d6 c% {. T* q5 D......function respond(){if (!empty($_POST)){foreach($_POST as $key => $data){$_GET[$key] = $data;}}/* 引入配置文件 */require_once DEDEDATA.'/payment/'.$_GET['code'].'.php';......
, |7 c" ^2 o' r# q  O& J                       
, y- M- P) u% \8 }6 J+ ?$ g大概在133行左右,$_GET[‘code’]没有经过任何判断和过滤。
, x( I4 `8 D( p+ u/ e1 oInclude/payment/yeepay.php8 \+ ?" q% r( S8 t& e5 Z
......function respond(){ /* 引入配置文件 */require_once DEDEDATA.'/payment/'.$_REQUEST['code'].'.php'; $p1_MerId = trim($payment['yp_account']);$merchantKey = trim($payment['yp_key']);......' G0 W! I% ]" W, i- U7 x! v
                        $ `- D. `9 a( T; E
大概在145行左右,$_REQUEST['code']没有经过任何判断和过滤。<* 参考3 P9 x! B3 [1 v7 U
http://bugscan.net/manage/node/83
; Y* @- x0 k# c4 ^, i, Dhttp://www.cnseay.com/2515/
& E& k4 z# S, `+ B% o4 ^*>
5 N) E) ?; y# v! D3 C. p  ]测试方法:
3 d4 L1 a! {4 o( V# A1.http://www.dedecms.com/plus/carb ... amp;code=../../tags 上面的Exp是包含根目录下的tags.php文件包含其他后缀请自行构造截断, 使用exp测试时须要自己添加一个code等于alipay或yeepay的cookie ) s: C% q8 k1 z5 J  |
2.由于bank和cod这两个文件并没有respond方法,所以如果code等于bank或者cod时将会暴错泄露路径
+ \* Z. n: X8 }$ D: p修复方法:
! U- N; \2 P$ n% ]+ f$ Z9 [目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:; c# W" s& }. p
http://www.dedecms.com/products/dedecms/0 v. M! K* C6 V' u7 g# o

- `! W0 k; D; X3 H 临时修复:
7 r; G" U6 q: ~& [6 W" G! g3 ^1)Include/payment/alipay.php
, A% K  T  [, m* X  大概133行左右$ A. Q5 Y  V  \3 J4 k, o7 n$ \) u
  require_once DEDEDATA.'/payment/'.$_GET['code'].'.php';
7 S% l, S* Z$ c4 d  l! C/ X" j替换/ l$ a. N7 K8 \; ^3 J/ |
require_once DEDEDATA.'/payment/'.basename($_GET['code']).'.php';
( W, ~7 N- q* ?" p5 {+ T: @2) Include/payment/yeepay.php* [3 r: P( p- k+ U, n
大概在145行左右
7 ]5 C* B5 y5 C* V4 F  z0 N require_once DEDEDATA.'/payment/'.$_REQUEST['code'].'.php';4 }! w. b, E5 K
替换
: C& a/ O1 @! B0 c7 e require_once DEDEDATA.'/payment/'.basename($_REQUEST['code']).'.php';8 _- @" J, `: D: D+ k
/ ~) w/ q) o- Q: i





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