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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-19 19:17:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
说好的第二季来了......% c* h) J, t9 D( o

* L* B4 L0 @- ]( b9 \' Y: o   要转摘的兄弟们,你们还是带个版权吧!    0 i' ~  }5 O) q6 v! W; ?
8 D2 a8 B7 w8 p; s7 v! e% t
  组织 : http://www.safekeyer.com/   (欢迎访问)% y; g; |) F; S2 h4 M/ S4 w
9 c# O$ P+ \; k& N0 p0 g
author: 西毒    blog: http://hi.baidu.com/sethc5
$ F: a0 s; H" L' x7 i/ y' T, q9 ?
" h/ a8 C: ]( ~2 n& ~' w     
& l; B8 X5 ^; T" L2 @3 t( M; B9 S6 E8 U- A; }
其实还是有蛮多漏洞的,只是我一步步来吧!你们别催,该放的时候自然就会放了.5 l( d+ H* i0 G2 B+ J# S

2 n1 c$ F) E7 s( _$ ~$ F过程不明显的我就省略了。
% O7 k5 x4 h# Z$ y( e; J8 \6 ]8 l8 z" H- V: H: L
在preview.php 中第7行
/ I, p0 W5 k, t! a' }1 Y0 M8 U9 H) [
$r = new_stripslashes($info);
0 m% a5 t4 k# ]
" U2 k( h' W, {1 @" w我们跟踪new_stripslashes这个函数
9 _- q( H* Y- @+ I7 E
+ [; R0 F. B" l( u4 A8 J% P* d在global.func.php中可以找到
4 l7 l) A$ i9 e/ V2 m- g# Y; {! }$ x1 o& H" w6 X. y  h
1) W: X2 }% i2 z4 p4 S9 P) s
2
- T) n, i: z' s, y6 {! E3  X6 F- {0 D# m3 D' P6 E9 _) f; K
4
6 Y1 e! z& X% e7 w' @5
) j5 M9 e+ B" p( b* x6 function new_stripslashes($string)' {1 ?, Z& D! E3 h& M# e
{
5 I, N% ~0 O# i: }/ b    if(!is_array($string)) return stripslashes($string);
% z) }0 R; Q% [  i8 k  O: L6 f    foreach($string as $key => $val) $string[$key] = new_stripslashes($val);
4 P. a  q, U* c- b) _( O    return $string;- M1 c3 t5 c' V; d
} : t' I- A! Z4 i3 A- H* W- [  e

6 G( ?4 }; t" q/ C- Y3 c8 Z这个函数的功能不用解释了吧
) h/ @4 A% y' g( o, E8 N: Z# a/ |- Z& T
所以我们看具体应用点再哪?
7 }: J3 F/ V2 R( E2 ~3 D
2 z4 o4 y! H6 f) ^) ]1
! c3 J$ r3 H2 p: `2: D0 Y5 X$ x6 F2 Y: I  m% \# d& x$ Q
3
' }& r/ S7 ~9 u& Y4
% a5 \, F. q( m! H' w5
9 o  a+ L! L/ p( s+ ?6/ r0 c, h6 L: Q
7
( x0 g$ Q5 T; ]/ t8
/ ?2 }3 h4 Y0 s" {( F97 q3 J  {! i  q. }" _& o2 z- X  e% ]
107 X) n$ p* {4 J! r- b7 v4 ]
11
$ K: C2 w1 M) ?* B8 Z" ?12
! |- j; `, x# _( L' A13
# K! b3 L8 D- K! |/ [  }14, t: ?/ L1 B2 X; o# d+ B0 L
15
5 |; ^" h0 F4 Y* ]0 V1 e, u3 z16; H- _" B0 q8 c2 u# i, h& |* ~
17, w+ P. J9 ?% J+ w: B
18& }( a5 c8 V- E2 f- J0 i6 \
19* v6 x' K, h$ Z; K6 n7 q
20
- d2 ~. T9 J! D  X: z8 Q- i( b1 |21
1 n( D1 H; M- C. Y8 r4 t4 w22
* b3 `6 ]5 K! s4 Q& r8 Y9 ?+ H4 N236 R9 R! x/ b7 s2 E7 I
24
5 h! a3 }4 C4 d( D; @4 P25
7 v# R7 r, H$ N26
9 @% @7 y& ~- n2 U6 i* ]. N; q! l27
8 ^3 o) C! T; _6 v& Y$ f8 _' s+ j28. P7 ]* h( e2 m' k2 }
29" L1 n7 W6 E' F% o  S1 z' q) R
302 w" w5 I; V. q4 r/ \
31% N) m- q& f( Q
32
8 t  f% F4 q& T33
* `3 \$ p. o/ f# w2 x2 F  j+ b34
9 O1 U* Q8 X9 J35 require dirname(__FILE__).'/include/common.inc.php';5 h9 V3 w5 v+ W
if(!$_userid) showmessage('禁止访问'); // 所以前提是我们注册个会员就ok了.
. o& Y7 X5 d/ qrequire_once CACHE_MODEL_PATH.'content_output.class.php';* Q! E2 M# n5 H+ L8 [8 j' \
require_once 'output.class.php';* h* w% g7 _) C% E
if(!is_array($info)) showmessage('信息预览不能翻页');//这里将要带进来我们的危险参数了. x- C5 |1 [- ?# ~6 t3 }
$r = new_stripslashes($info);   //反转义了.....关键
* V1 i* O7 \  a$C = cache_read('category_'.$r['catid'].'.php');' @# H7 M$ r5 h7 A) H
$out = new content_output();
% q3 ?7 ?" b$ e$r['userid'] = $_userid;) ^4 R6 |4 V: ?. h% l6 N2 Z
$r['inputtime'] = TIME;- _% a" i' Y  Z& C% [8 Q
$data = $out->get($r);
( P1 \; E4 ^# b6 `$ dextract($data);
) s6 g2 t& H; f$userid = $_username;
& `6 D2 s! v5 g6 Qfor($i=1;$i<10;$i++): ^, F3 l, F# Z) p/ h0 ^
{: t! C0 I5 a& @/ k( O5 ]
    $str_attachmentArray[$i] = array("filepath" => "images/preview.gif","description" => "这里是图片的描述","thumb"=>"images/thumb_60_60_preview.gif");
7 e" `5 v( J7 Q7 ~8 A1 h}( c4 c+ S+ ^& f5 h% z
        5 C. g9 ]# Q, f: O
$array_images = $str_attachmentArray;2 r1 o) [& i7 ?& w- W1 M
$images_number = 10;
4 y8 A; i0 G( F: u& t$allow_priv = $allow_readpoint = 1;
$ U* r' m! H% o3 z9 e$updatetime = date('Y-m-d H:i:s',TIME);1 b/ }5 s" e0 D! A
        
$ ]3 }. Z  t! Y% h9 j# x1 _$ }; u$page = max(intval($page), 1);% A, X. ]3 Y; R
$pages = $titles = '';# E/ F  M8 X* k7 V1 k7 |6 J% ]
if(strpos($content, '
回复

使用道具 举报

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

本版积分规则

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