中国网络渗透测试联盟
标题:
织梦(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 ?" a
DedeCms是免费的PHP网站内容管理系统。
7 r/ L% B% h& C
6 {' Q1 ]9 t; e% Z" w( q5 y+ v4 y/ V
plus/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. Q
Include/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 |" m
Include/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# u
http://bugscan.net/manage/node/83
1 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# W
1.
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.php
0 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