找回密码
 立即注册
查看: 2975|回复: 0
打印 上一主题 下一主题

织梦(Dedecms)V5.X 本地文件包含漏洞

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-4 17:36:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
漏洞版本:. _; o  i8 J3 g% t' \
DedeCms 5.x漏洞描述:: ^6 U: c  [! ^$ T. ]* V
DedeCms是免费的PHP网站内容管理系统。. U2 ^2 V, R4 q$ c6 |- K
3 p: Z& x+ U  w: c
plus/carbuyaction.php里没有对变量进行严格的过滤. X7 a; S/ A. {" ?& L  v: r: H
" Y- V& d& A$ `1 B
出现漏洞的两个文件为:
9 \  o& S2 V% N* k, D/ |Include/payment/alipay.php+ Z5 m& o+ ^3 H
Include/payment/yeepay.php1 y& j% V1 e% i/ s0 q
漏洞均出现在respond方法里
  W$ k/ K* [6 D6 O. l5 ]: p6 y8 m) }
Include/payment/alipay.php & j# l& A6 X1 V- f$ [. ^) M
......function respond(){if (!empty($_POST)){foreach($_POST as $key => $data){$_GET[$key] = $data;}}/* 引入配置文件 */require_once DEDEDATA.'/payment/'.$_GET['code'].'.php';......
2 P. }/ j; _0 r" V7 z# m$ V                        8 T$ V! h# u* B' o
大概在133行左右,$_GET[‘code’]没有经过任何判断和过滤。
, O- r0 B5 R% ~' U" [! P; ~$ hInclude/payment/yeepay.php5 l/ N! ?( s  ]" L; N9 A
......function respond(){ /* 引入配置文件 */require_once DEDEDATA.'/payment/'.$_REQUEST['code'].'.php'; $p1_MerId = trim($payment['yp_account']);$merchantKey = trim($payment['yp_key']);......
' P& [& N; b3 W                       
  d, R5 X) J% u4 J; [大概在145行左右,$_REQUEST['code']没有经过任何判断和过滤。<* 参考0 p9 G& L( C9 i, _6 ]. J
http://bugscan.net/manage/node/83
7 k0 V7 l' P% chttp://www.cnseay.com/2515/
8 y- @# _' v) M' R9 R# m6 Q; n- |*>
5 n1 F3 U$ v" r4 T* W+ G测试方法:  t+ s2 c  r; _8 R7 h( Q; i: i
1.http://www.dedecms.com/plus/carb ... amp;code=../../tags 上面的Exp是包含根目录下的tags.php文件包含其他后缀请自行构造截断, 使用exp测试时须要自己添加一个code等于alipay或yeepay的cookie 3 L5 u; o) {: u" N. A5 u
2.由于bank和cod这两个文件并没有respond方法,所以如果code等于bank或者cod时将会暴错泄露路径9 z! G: ~- ~* r& g/ }, s3 \/ }
修复方法:. t$ M6 Q1 v" ?: v, Q
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:
8 f% d* O5 S7 X1 r& ~- vhttp://www.dedecms.com/products/dedecms/
. _$ r+ E. O: F/ h# d3 S7 }& h/ U# t
$ k* R  R1 V( Y$ J$ T& c 临时修复:
, v8 a% J+ u$ K5 G1 A8 P' _  a1)Include/payment/alipay.php% t( S/ a7 m- h/ i) L3 d) A" b# e
  大概133行左右# f$ Y* p7 P- u( o% e' v
  require_once DEDEDATA.'/payment/'.$_GET['code'].'.php';
1 @* F9 v% H; @8 z& Y3 q8 h+ N替换- P) D7 Y1 ^* T6 F& X# Q5 R
require_once DEDEDATA.'/payment/'.basename($_GET['code']).'.php';9 H/ _( n* a) f4 a9 w
2) Include/payment/yeepay.php4 R# P, H1 K+ ?4 Z: R1 o
大概在145行左右
" V  z8 X) F5 D0 J require_once DEDEDATA.'/payment/'.$_REQUEST['code'].'.php';
6 u2 W, l, |/ z, T: C; y& S4 s 替换* d7 v/ @# Y  N2 H: U
require_once DEDEDATA.'/payment/'.basename($_REQUEST['code']).'.php';! ^: f3 ^5 U7 _7 m: C% u& J

! [( D/ |3 }' K
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表