中国网络渗透测试联盟
标题:
织梦(Dedecms)V5.X 本地文件包含漏洞
[打印本页]
作者:
admin
时间:
2013-4-4 17:36
标题:
织梦(Dedecms)V5.X 本地文件包含漏洞
漏洞版本:
$ D* ?) A" y z1 b
DedeCms 5.x漏洞描述:
5 I! w Q& @3 P& R% o# v
DedeCms是免费的PHP网站内容管理系统。
3 S# O% T1 N/ ]2 {# w$ X
; D; O X4 d8 Z1 f9 Z9 i7 b
plus/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 g
Include/payment/alipay.php
, a6 g, ?* O1 V8 G2 P+ T7 T1 I2 ^
Include/payment/yeepay.php
3 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.php
5 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/83
8 _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) @ ^# Z
1.
http://www.dedecms.com/plus/carb ... amp;code=../../tags
上面的Exp是包含根目录下的tags.php文件包含其他后缀请自行构造截断, 使用exp测试时须要自己添加一个code等于alipay或yeepay的cookie
+ u" l# \6 ]8 B2 j7 a
2.由于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; M
http://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$ F
1)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