中国网络渗透测试联盟

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

作者: admin    时间: 2013-4-4 17:36
标题: 织梦(Dedecms)V5.X 本地文件包含漏洞
漏洞版本:
$ D* ?) A" y  z1 bDedeCms 5.x漏洞描述:
5 I! w  Q& @3 P& R% o# vDedeCms是免费的PHP网站内容管理系统。3 S# O% T1 N/ ]2 {# w$ X

; D; O  X4 d8 Z1 f9 Z9 i7 bplus/carbuyaction.php里没有对变量进行严格的过滤2 s  l3 ^3 M6 U- n: s7 Q2 Q
8 G- d1 A4 ^( t7 e; K3 C6 X( ~
出现漏洞的两个文件为:
  `7 @% n& Q% o3 u2 Y  gInclude/payment/alipay.php
, a6 g, ?* O1 V8 G2 P+ T7 T1 I2 ^Include/payment/yeepay.php3 p" ?# F* i, N$ K4 _% Q* a
漏洞均出现在respond方法里. `8 S2 ]1 N; Z' Q3 D3 m# w/ H

0 i# x: d! n; R7 [Include/payment/alipay.php 3 F3 E  A/ R1 Y
......function respond(){if (!empty($_POST)){foreach($_POST as $key => $data){$_GET[$key] = $data;}}/* 引入配置文件 */require_once DEDEDATA.'/payment/'.$_GET['code'].'.php';......
  W5 _5 K* _( u5 ^2 I3 U                       
4 H* ?. W: F/ ]5 x1 t2 K! ^大概在133行左右,$_GET[‘code’]没有经过任何判断和过滤。
% `, Q' m9 D5 [' z8 W0 ?6 V( ]Include/payment/yeepay.php5 W( I9 G% m, y- L1 A, h- v# G
......function respond(){ /* 引入配置文件 */require_once DEDEDATA.'/payment/'.$_REQUEST['code'].'.php'; $p1_MerId = trim($payment['yp_account']);$merchantKey = trim($payment['yp_key']);......: }8 U4 I- k* v6 \/ @& H
                       
1 N% C4 g6 j+ D+ x" X& w* R8 G/ G6 A大概在145行左右,$_REQUEST['code']没有经过任何判断和过滤。<* 参考8 n3 w* f, j2 I+ T/ V  J
http://bugscan.net/manage/node/838 _9 f" p' A' \5 L0 ~3 n0 m
http://www.cnseay.com/2515/( G0 L* j/ Q" D& ?
*>
6 y- e! @0 n' w- m: ~测试方法:
" p% U9 y* V8 X) @  ^# Z1.http://www.dedecms.com/plus/carb ... amp;code=../../tags 上面的Exp是包含根目录下的tags.php文件包含其他后缀请自行构造截断, 使用exp测试时须要自己添加一个code等于alipay或yeepay的cookie
+ u" l# \6 ]8 B2 j7 a2.由于bank和cod这两个文件并没有respond方法,所以如果code等于bank或者cod时将会暴错泄露路径
5 B; S% y, }; c0 J1 b$ L修复方法:
3 ?7 s9 P9 C  G2 e目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:
3 x4 z1 G6 e& x1 \6 Y; Mhttp://www.dedecms.com/products/dedecms/1 K8 q  K9 u& M* ~& y6 C
6 i/ o" k8 y4 `& B4 m  B
临时修复:
9 |- K3 o& p7 `8 h9 K' i4 T4 k: N$ F1)Include/payment/alipay.php
2 @' |( \) j8 ^9 i6 t- I  大概133行左右4 X! q7 {; ?3 I
  require_once DEDEDATA.'/payment/'.$_GET['code'].'.php';
8 K# |9 `0 p( s1 Z2 R替换
4 j1 M2 j9 \$ T( o, `. P/ I require_once DEDEDATA.'/payment/'.basename($_GET['code']).'.php';
) f0 i- b6 K5 N2 |  {2) Include/payment/yeepay.php& g3 ]( o4 L* ^4 ?1 {0 D. ]8 Q
大概在145行左右
! C1 S+ B) q4 A7 A- C require_once DEDEDATA.'/payment/'.$_REQUEST['code'].'.php';/ x" i6 s% j" X/ E, v8 u6 J$ C0 t
替换
% x6 `* ^7 j3 [) W require_once DEDEDATA.'/payment/'.basename($_REQUEST['code']).'.php';5 L) `/ M* t+ a

/ p9 N) b2 P+ _




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