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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-19 19:17:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
说好的第二季来了......0 C" [; ^+ r4 ?2 u( w. r4 P0 h
. r$ E! Y6 A+ y$ F
   要转摘的兄弟们,你们还是带个版权吧!    : Y& Z6 |8 ^" b/ F) C! D
" m4 M; I+ Z, F3 [$ Z& _. \3 @9 U
  组织 : http://www.safekeyer.com/   (欢迎访问)7 T8 _$ @) V  E3 O) b& D8 C$ v

8 m$ R# V$ k3 S+ Kauthor: 西毒    blog: http://hi.baidu.com/sethc57 m9 x) T9 }3 s7 ?
& X, {( k2 M1 c
     
8 j2 g( u% m" }4 b- L
2 J, s; o/ x6 B, c/ h8 A6 f4 d, _* F3 t其实还是有蛮多漏洞的,只是我一步步来吧!你们别催,该放的时候自然就会放了.
. R  ~' r! t/ k9 m0 t7 t8 A9 w% N% O3 m! o3 m: w/ A& ]& H
过程不明显的我就省略了。3 a+ G. v1 m' Y4 Y
2 _  |  ?+ K7 o/ Y3 e8 V
在preview.php 中第7行9 f! u4 i8 a0 \$ ~

& H  ^; }7 y( |+ G$r = new_stripslashes($info);
7 X3 f1 O9 }1 d2 I
. T) F, _5 s- s- {$ I: P/ F* L我们跟踪new_stripslashes这个函数
9 T% E1 M# L. D# b( \
% o7 O, E4 T# |5 Z! r3 X( n在global.func.php中可以找到
, |  x. M" ?& p- A2 g  f# A/ o: d* M5 @; h) {+ {  ~  v9 \0 k
1- t; f/ k+ R, U" j, G3 k' ^
2
( J! t9 m" ]0 b# `8 \9 P37 `& l3 ^1 Y, t* `6 l
4
# T- F2 m) \1 q5 K: q: N/ g5
4 ~: x! q( S" s) W6 function new_stripslashes($string)
/ E- y9 _5 V* P/ R+ p8 U{" F7 [+ p/ N3 O6 w, v) b9 r, z* d/ p
    if(!is_array($string)) return stripslashes($string);5 ]1 `; p3 \7 q9 M8 j
    foreach($string as $key => $val) $string[$key] = new_stripslashes($val);
$ R+ g& v, k5 b" j    return $string;
/ `9 ^6 g; I  Q; {, I+ `( D}
* r. N8 m) }% ?& S- E6 z9 o! Z8 m; ]. C' l8 t  U1 w- s, Q; M
这个函数的功能不用解释了吧" P5 v  G* }" c
0 b) e% Z' F* x. o4 F
所以我们看具体应用点再哪?& k. a; B! [- u. R/ h

, o7 @4 X; m; r7 E. t; i) K18 J/ |, O8 k& q( W; b2 \
2
' I( {2 r! K6 Q6 h5 D% ~3
  t6 A& G$ W: r+ s! A41 b2 a3 S2 p) v
5
3 `0 I7 U4 X$ P) {/ \0 t) H+ ~6! o) Z( I1 T, T6 J; |" g  [
7
. M7 D  j' n+ D9 {& w84 u8 J: H( h: ~$ ?
9
9 a% \$ W  h- k10" k. `5 V" u* I. I3 V, L
11
3 B" o1 z0 b$ h' ^- h3 ?12) h/ f4 {& S; h7 F! i
136 o$ @' D+ x, d
142 W4 ]/ k0 B; v0 l
15. _0 z0 r5 E; C0 Y
164 W. D* u. s) d% C
17
4 b4 m: w. F) X. @9 ?5 u9 s1 e. Q2 @18
1 @! Z6 {$ b+ F# p4 N" a19
, g1 x9 g! U2 m2 _" |5 v7 B4 U20
- J. Y. q4 ?& O" v" ]3 V2 Q# d21
! S; k4 s1 }: I' W223 r! `" }* D: K9 m% Z# X7 X
23
1 j1 J" [0 P& Q+ o, F% v7 V. k249 W% O& m$ D$ Q* W( g. i+ ^
25
& x$ w9 \5 p- n) b$ r# A1 J26
# g" k8 t" `; Z8 t27
( V" |0 g" X4 J9 y4 ^5 c289 V+ L: g" a7 r4 o( Z. v
29
& Q3 y; J* \* z- {4 z! A; S30, s% E2 `+ N  q* d$ {) E
31
% D  O/ [) }! D0 u% Y32
# q: @  B8 r/ s7 i! I) h1 f7 l0 L. s- x; U338 \4 e) Q. f: O% B5 P& f
343 X) K* X4 e4 d. A. t
35 require dirname(__FILE__).'/include/common.inc.php';4 [, ^8 w8 Z0 c5 F4 p7 v4 c
if(!$_userid) showmessage('禁止访问'); // 所以前提是我们注册个会员就ok了.( _6 P- o/ r1 s' R
require_once CACHE_MODEL_PATH.'content_output.class.php';
& R. Z. e* t7 c) N! |% vrequire_once 'output.class.php';- N, ?! Y# Q) f/ N" d9 Q
if(!is_array($info)) showmessage('信息预览不能翻页');//这里将要带进来我们的危险参数了, R5 p5 U4 j! P" S" @
$r = new_stripslashes($info);   //反转义了.....关键
* g1 G, x# W2 \) o$ @$ _: ~$C = cache_read('category_'.$r['catid'].'.php');1 ?) a8 w  W2 h$ I& u% m9 k
$out = new content_output();) R9 U  f5 ?, h/ g; r! z
$r['userid'] = $_userid;7 h- N$ c4 q. q3 C, p  }7 N
$r['inputtime'] = TIME;) P. X7 i' E3 K! w2 b5 U( V/ ]
$data = $out->get($r);; e* |/ t2 u/ X" G& T
extract($data);
( H5 _) }1 f" |. F5 ]( F$userid = $_username;5 i2 s; W7 d( J; {" z$ n
for($i=1;$i<10;$i++). W+ d8 e3 j* @% H7 r4 v+ I
{; r$ v$ B  f* _2 O+ M8 U
    $str_attachmentArray[$i] = array("filepath" => "images/preview.gif","description" => "这里是图片的描述","thumb"=>"images/thumb_60_60_preview.gif");
+ q: o" L! {" W2 I}
5 `* ~2 x) f3 Y% I/ ^: W        
; V7 ?/ \8 V4 y8 V, ]$array_images = $str_attachmentArray;' |2 w) j: ?) I, b
$images_number = 10;4 V( A& D8 T, V! S! C' [
$allow_priv = $allow_readpoint = 1;
+ ~0 p2 |( b6 E4 d/ |$updatetime = date('Y-m-d H:i:s',TIME);
& _2 x9 d, r3 y# {- l! c1 y5 _2 @        / E8 k- a) N& u, B5 _% P
$page = max(intval($page), 1);
* b4 I0 W3 e( x" [: j$pages = $titles = '';9 d$ w+ }5 P, b8 o& A
if(strpos($content, '
回复

使用道具 举报

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

本版积分规则

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