中国网络渗透测试联盟

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

作者: admin    时间: 2013-4-4 17:36
标题: 织梦(Dedecms)V5.X 本地文件包含漏洞
漏洞版本:/ U: S! e( g4 n9 C, o3 T
DedeCms 5.x漏洞描述:
& }/ i3 Y* T* z+ n" N9 D4 ?" aDedeCms是免费的PHP网站内容管理系统。
7 r/ L% B% h& C
6 {' Q1 ]9 t; e% Z" w( q5 y+ v4 y/ Vplus/carbuyaction.php里没有对变量进行严格的过滤" Q3 G0 }9 g; p) a. H( [
6 l4 E" u+ U$ v
出现漏洞的两个文件为:2 }& C2 V2 z( w- k
Include/payment/alipay.php* C( p) d1 S5 c9 B
Include/payment/yeepay.php
" J/ ~- B- a- g4 _漏洞均出现在respond方法里2 Y- n0 O' \0 _- N0 ]' L* I

" J* o. K: Q3 v7 T& F. QInclude/payment/alipay.php & G# |/ I( ^) P( M
......function respond(){if (!empty($_POST)){foreach($_POST as $key => $data){$_GET[$key] = $data;}}/* 引入配置文件 */require_once DEDEDATA.'/payment/'.$_GET['code'].'.php';......- I# Q* ^) W! Q  ~( l( a  W
                        + B/ C7 ]) B# U1 d' V0 u: U
大概在133行左右,$_GET[‘code’]没有经过任何判断和过滤。
, G# g( {! U  I$ X1 |" mInclude/payment/yeepay.php
, ~+ E# }/ a% I) A: V$ {......function respond(){ /* 引入配置文件 */require_once DEDEDATA.'/payment/'.$_REQUEST['code'].'.php'; $p1_MerId = trim($payment['yp_account']);$merchantKey = trim($payment['yp_key']);......- w* ~3 I( K4 m1 B6 X
                       
0 W( O* L  D9 g; ^  g' j. X大概在145行左右,$_REQUEST['code']没有经过任何判断和过滤。<* 参考
8 m1 |. r/ L, b# uhttp://bugscan.net/manage/node/831 Y6 Q: \( G* j5 K, g2 a
http://www.cnseay.com/2515/! ^2 U1 \  @( r  S
*>
& J  g! K1 F# f测试方法:
7 C# R1 C* D- S8 K* Y* U1 m# W1.http://www.dedecms.com/plus/carb ... amp;code=../../tags 上面的Exp是包含根目录下的tags.php文件包含其他后缀请自行构造截断, 使用exp测试时须要自己添加一个code等于alipay或yeepay的cookie - F. P4 \$ m2 f, ~3 w
2.由于bank和cod这两个文件并没有respond方法,所以如果code等于bank或者cod时将会暴错泄露路径
" p0 G/ }0 s6 C& c* U修复方法:
) D/ K- {# W* H& a5 ]+ r  p( S目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:3 d) ?  T9 w1 D
http://www.dedecms.com/products/dedecms/
9 F6 B6 X) z1 R4 m3 @( u! D
* h0 Z* V7 k. g8 M, N 临时修复: $ X4 G2 z7 S8 a: `" t0 g  N9 C
1)Include/payment/alipay.php0 O- _* }: R! {+ r! B
  大概133行左右4 U6 l' |3 w% H# x$ d& r
  require_once DEDEDATA.'/payment/'.$_GET['code'].'.php';
1 ^: e: `0 v; C8 P0 y3 o替换: F: F  c' o$ d
require_once DEDEDATA.'/payment/'.basename($_GET['code']).'.php';. M$ L0 ^. Y% x7 }+ J1 o" C3 t5 ~
2) Include/payment/yeepay.php; d8 W5 u0 C* B5 ?. Y% G- v$ A
大概在145行左右& d1 C" c3 O  h, L: ^. n# Q
require_once DEDEDATA.'/payment/'.$_REQUEST['code'].'.php';7 l" x  e* F5 q: a# G$ Y2 F3 ~
替换
7 ?$ g- p- [5 A6 l6 E: } require_once DEDEDATA.'/payment/'.basename($_REQUEST['code']).'.php';
/ L7 o- Z2 U/ L6 ]7 f( B5 k5 |3 L 1 \# X% |( c: y9 r8 ^& \0 b" c$ g





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