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

PHPCMS 2008 最新漏洞(第二季)附EXP

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-19 19:17:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
说好的第二季来了......
+ y; X) F+ S( }1 j& n
- S0 O% F9 {! [% L9 D- {* i   要转摘的兄弟们,你们还是带个版权吧!   
7 s" a( @9 c3 e# h- _8 u! u' V5 X3 W. @" U+ O: L! W6 M
  组织 : http://www.safekeyer.com/   (欢迎访问)
. H/ Z2 b- W, u7 ^4 k7 M% _5 b( d. Y+ p. r" C7 ]! E! e
author: 西毒    blog: http://hi.baidu.com/sethc56 U  J6 q9 \8 ]

4 q2 w: l, f" Q9 r( C' e* T     
& G  w1 L+ ^! p4 j& |& a' @2 ^0 i  j9 L  y7 s
其实还是有蛮多漏洞的,只是我一步步来吧!你们别催,该放的时候自然就会放了.
" d, `% p0 ?' x/ Y1 V) A9 N% [6 M  Q$ ?2 }8 @& K
过程不明显的我就省略了。
( g# y  k/ U4 k& G4 `/ u  F+ M, x8 E9 C5 _, b4 f; t
在preview.php 中第7行7 O0 X7 ?/ v) @7 q$ P, i
( g8 G; d# p0 K4 I# n
$r = new_stripslashes($info);- T5 A9 o3 ?/ b0 v1 f
/ e" J  }  c5 `) B
我们跟踪new_stripslashes这个函数# n: R3 X# v8 ]5 ~6 V3 Q
9 S5 `, S5 n* G0 U; K5 {. L4 Q
在global.func.php中可以找到
) h4 s4 B0 `5 A, l: d* l4 S0 ?. H1 A2 z
1( E4 E8 i. b4 z9 i3 e7 h" E
21 W; h% D. T  B, A, E" a/ d: X3 g
3
' d1 ^# i" U9 e4 H/ S. E" u9 U, G6 Q4 y( X4
' N  P3 o+ F" {' `/ j: Q8 J5
# h* W) J; r6 k( W, G: C6 function new_stripslashes($string)
' L( v7 ~  X3 U2 q5 w{& Q2 q: }6 w* s& W2 I
    if(!is_array($string)) return stripslashes($string);5 L, y: y& m9 @% z7 Q/ B- \
    foreach($string as $key => $val) $string[$key] = new_stripslashes($val);
  b6 e% y* F4 x$ w    return $string;5 n% S, Y! e1 A
}
& L0 O( x) k7 j7 p5 e5 ^" C' o# g( _1 f; L$ U% T: h" `
这个函数的功能不用解释了吧9 g  X' ?7 k: J, [. [: P, i
8 }9 ^. c  I) j: K0 L- m
所以我们看具体应用点再哪?
3 ?/ K. @( M; c$ D& |$ z
+ d3 `7 S$ `/ \, M6 M1
) a0 b/ O9 i3 O. l* T2' n6 Z1 o* U2 ]7 S
3
* [/ B4 X1 [. w. d, L4+ I; d9 l$ X$ d$ i) L
50 H1 _$ Y/ x/ C; K% t: N8 N, c
6
! Y% Y3 U4 G1 f5 T  ^$ l7( ?# _2 W7 N5 y5 @- m
8, Q( Z" b# C8 z- U, {; k- J
9/ r1 K3 z2 ~8 E' h: e; S3 j
10+ `. Z* X: e" L: s+ M" K2 R
111 ^! M; P) M, Y7 _: C
12& Y: `4 f& s9 ]6 e; i6 @$ {$ C
13
; r" u0 s9 a  x8 {7 h7 X& X4 d4 s147 q- U, |& c2 d, D
15
, M: \8 |6 h+ z9 V, W' F8 S: c16
2 N$ l" q5 V9 v$ N) a3 C7 p17
' @5 J7 S' n: g( G' |5 j18
# m, e+ v6 Z5 S, P$ i6 b8 L% m19
# p3 r( _3 _' E, T2 \# v20
' _  c" N# C7 w21( ]7 f3 G7 l. g  B$ Y+ s4 {' f! k
22: _& y- P) i) d% w. N# k3 R1 N- v
23
! l3 {3 v! k/ g) R24
2 T+ F# p" c) k" P25
! O& j7 T% w1 ~: I% D26
: C" S5 G. S+ G( f278 @5 t2 g2 H. b( e: H6 a
28
0 E9 s% K% _& V1 T: g: Q29, g0 Y, g& U" W5 L1 h
309 m5 Y# v. Z$ d- x5 f
31
0 O9 e* _1 L2 t6 K+ j3 h' g: r; q- x32
( R9 n; E% p4 `. P5 G$ F33# D4 M1 i: q7 \9 S" v
34
+ E' f, W; }- R% e35 require dirname(__FILE__).'/include/common.inc.php';
1 O' \  R* Y8 t: c1 g2 B8 _+ gif(!$_userid) showmessage('禁止访问'); // 所以前提是我们注册个会员就ok了.
$ @; [* f  @+ X8 @require_once CACHE_MODEL_PATH.'content_output.class.php';
- c  \3 [, |. H, Vrequire_once 'output.class.php';
" R/ W% k  d' i% h3 W  C- N: Kif(!is_array($info)) showmessage('信息预览不能翻页');//这里将要带进来我们的危险参数了5 Q# L& b7 G7 G/ E0 ~# S- Q# y4 }
$r = new_stripslashes($info);   //反转义了.....关键& `) ^0 E. R, w! U# P# O: T
$C = cache_read('category_'.$r['catid'].'.php');
$ R+ |4 e: u8 W4 U8 _4 S: _1 U+ c$out = new content_output();# _+ H* \2 w8 D
$r['userid'] = $_userid;3 a+ r9 m1 k9 |! Q5 l0 U% G4 O
$r['inputtime'] = TIME;
( [3 ^. ~' @) D1 `+ e9 O$data = $out->get($r);
2 v: O) U/ S8 B" N7 W7 s; cextract($data);5 O5 P. _! ], `: S0 ?" }
$userid = $_username;+ m9 G/ H. q" p
for($i=1;$i<10;$i++): }6 O8 B$ o1 _; K! w* u
{7 f6 l3 f% H- f
    $str_attachmentArray[$i] = array("filepath" => "images/preview.gif","description" => "这里是图片的描述","thumb"=>"images/thumb_60_60_preview.gif");
; n( V+ {' e+ b* j& @: P& C}) [$ W* Z; v$ P; e* x
        5 z8 {; e8 R" T( [
$array_images = $str_attachmentArray;
+ ?! Z/ M3 D- _$images_number = 10;
$ ]2 I2 u3 O7 ]% r0 y$allow_priv = $allow_readpoint = 1;
' G$ y$ ?' a8 h0 c' P$ b$updatetime = date('Y-m-d H:i:s',TIME);
7 q# }$ }  `) I+ w        9 ^$ V! L1 n& U" ]
$page = max(intval($page), 1);
0 `) W; @2 Y3 D' \5 K$pages = $titles = '';
. N/ l/ N1 g( R; F2 I% ?4 Rif(strpos($content, '
回复

使用道具 举报

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

本版积分规则

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