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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-19 19:17:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
说好的第二季来了......
- L& u7 L/ L$ q3 o: s- J+ o9 w. O
2 Z: u$ u8 `( Y5 U0 [, }( B& b   要转摘的兄弟们,你们还是带个版权吧!   
, R+ f2 P  e8 L7 D
, x7 X) o$ q2 O$ i  组织 : http://www.safekeyer.com/   (欢迎访问)
* O% [1 Z' [( g! I6 p# c* |( R, P" x  K8 }3 H( T- r! `
author: 西毒    blog: http://hi.baidu.com/sethc5
9 V& h' C. Q$ j/ _* N8 \9 D/ s: ^: X) d% G: G
     
0 ~5 u$ b9 o5 S8 V) A
0 n. l# K6 k2 H其实还是有蛮多漏洞的,只是我一步步来吧!你们别催,该放的时候自然就会放了.
- {- w( A" q. x9 @0 G8 f( Z! @6 f' U# `0 a" t! L% A2 a
过程不明显的我就省略了。+ C) u$ P7 z9 j( x' V# [* l

: T* f2 c( d; U7 D在preview.php 中第7行
# F8 S) m  H8 V5 T6 q) d, L7 Z& C# F* x) g# M# G
$r = new_stripslashes($info);
0 B& x5 A1 J6 u: [: ?, r5 `1 |3 r/ a, v7 @# V, J) \  P# T- X2 v
我们跟踪new_stripslashes这个函数7 a1 g' R0 u9 `' V

+ C( c; ^# r" @. O# n7 n1 p0 I在global.func.php中可以找到
6 B+ R) f: j9 M& c+ j9 k% ^/ w2 m4 [$ N* V8 ~+ Z7 H+ X  P
1
% ~4 w7 @% U3 ?) q' F5 f, `2: }& V6 c1 E8 h5 i+ z& G6 e. D
3
9 I# b6 F$ g4 x, k- [% Y6 U- V; W- A' `4, V. U! ^& m' i- t  j6 s$ o
5# A3 j3 ]! ?- |$ G
6 function new_stripslashes($string)* y8 R( s' F& x* R
{
" J( n% v6 ^' T    if(!is_array($string)) return stripslashes($string);
% f. P# l. a( W) _$ T. f. A    foreach($string as $key => $val) $string[$key] = new_stripslashes($val);
; n. U1 m1 K( J* d, L$ b/ A    return $string;1 A$ G/ [0 s, _; M
} 6 A" |+ s! p# y: V6 L; E- q3 Q" @$ \

: u/ g, j7 t! y2 T这个函数的功能不用解释了吧
8 C2 F4 k8 a( X! G
" D. N' n3 N' ^$ ~4 s: K" A所以我们看具体应用点再哪?6 r1 F' v* D+ a3 Z
1 m0 {+ O+ k3 J  a" N7 K3 \/ c% |
1
# j" m2 n( T7 k- B- V22 C6 y: v+ ]' \1 ?$ W. H
3; j( G; Z& M/ i' D# n2 U
4; |# G; E5 w8 v5 {, K7 w
50 _" }& T; _0 f' l4 G
6
  x! G3 |+ t8 L6 M, x7) s4 T& ~/ Q. k$ ]' L
8% _9 c; s. y8 P
92 Q! W/ |9 s/ q, U; S* R2 T5 u
10
% |4 S/ H+ C, p4 E# O6 Z) U11
1 S& h# \( N  R$ m2 z; o# M12
* }! u7 |' l4 ?7 m1 h' G13
( A+ H* I5 D  J141 X3 S3 X* h2 L* |, h4 [
157 Z' ]: b6 j# `, I1 {7 k: l
16% ^, m% H$ N1 R& u* x
17
3 S2 a( Y/ v$ X18
( U" M; M. t- g, w% D0 E4 l( k198 ?, f% L1 @! W8 e2 X; J4 ~
20
5 v: C5 A3 b& M: g211 Q0 n! \& ?! z* B% D% g/ C
22
. x3 v( H6 ^( }4 p9 z23
# e# m: q% d+ S- e24; j- ~% V& M$ M3 |# i# Q
25; ?$ c0 j# \, K0 ?3 ^
26
: Q9 k7 V( B! \0 e9 O275 c7 N& Y* U  E  k8 D
28$ k; l6 i3 H9 T1 f/ O
29$ d: X7 G/ G8 S$ w8 ^" S4 Y' G
30
) [2 h& F+ B: v5 N1 E9 ]31
8 \- K/ R! b- K: N2 w) j( c6 z32  F' a0 O6 q1 D0 b& V
33
8 N% k3 X/ Q: B: G4 V34+ Z0 C3 `3 F, c$ K) {( Q- X, v% I3 g
35 require dirname(__FILE__).'/include/common.inc.php';7 J) X0 Y: O+ K6 K! c0 F8 O' N
if(!$_userid) showmessage('禁止访问'); // 所以前提是我们注册个会员就ok了.
7 ?; o. M) }! t& ?require_once CACHE_MODEL_PATH.'content_output.class.php';3 a8 I& o' l1 o2 D, N( s& r( M
require_once 'output.class.php';' {% H( `+ V- V6 D
if(!is_array($info)) showmessage('信息预览不能翻页');//这里将要带进来我们的危险参数了
5 h1 Z: N$ q) w" J% U5 P$r = new_stripslashes($info);   //反转义了.....关键
4 ]. a# X) i5 p3 v$C = cache_read('category_'.$r['catid'].'.php');
7 G8 x& Q* J/ X/ B: M+ @$out = new content_output();
% M9 [7 w, A+ `# @5 C* F% e& S$r['userid'] = $_userid;" y- }2 F: h6 q  h/ e- i
$r['inputtime'] = TIME;6 ?( z6 O+ C  x$ m* }
$data = $out->get($r);5 R( S: A$ J3 d, ]- N$ m
extract($data);
; S$ m. c6 B5 O- A3 A* R* g$userid = $_username;
. a) N9 N) x& ^2 E0 ]& k' dfor($i=1;$i<10;$i++)& v$ H- x' u9 K' \
{
: Z; J% u. l" g2 l6 m: B# @    $str_attachmentArray[$i] = array("filepath" => "images/preview.gif","description" => "这里是图片的描述","thumb"=>"images/thumb_60_60_preview.gif");
/ ]8 h, J) l0 e" j. f9 S. ]}
. H3 F: l6 n* j6 c0 R& R8 p        
: R1 M! s* H0 d2 L( q9 L% J) k$array_images = $str_attachmentArray;* R+ H; u( X/ y! d! T( {7 r# H
$images_number = 10;
5 u: h; y2 z* e6 U; o" `) n- S$allow_priv = $allow_readpoint = 1;
# j% R7 H: b* {) I2 W$updatetime = date('Y-m-d H:i:s',TIME);
) f' |+ N4 z+ Q  D! E. [. Q; O        
8 t6 b7 O$ s2 C9 F5 W* B* X. l; L- z, |$page = max(intval($page), 1);& t* ~% p3 c$ [; m/ Z" |+ p
$pages = $titles = '';
/ \3 x, K7 I, x7 E3 r' uif(strpos($content, '
回复

使用道具 举报

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

本版积分规则

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