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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-19 19:17:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
说好的第二季来了......
  S9 ^$ q+ p' D, u6 n8 g. h# b2 F: J
   要转摘的兄弟们,你们还是带个版权吧!   
# ?0 g5 m. {- w  |; s9 c* x
% _% b' D' a* z: H( W6 f0 e: f  组织 : http://www.safekeyer.com/   (欢迎访问)$ }. [) d6 e3 p+ T* _) b
% `8 v4 a! M: w% N2 \) s
author: 西毒    blog: http://hi.baidu.com/sethc5# P/ j2 F9 H  i, ?: G
; P3 `, d) V# E
     , N& \7 W1 J+ T: t2 d  _
' S' h0 {" u, B; }' O3 D
其实还是有蛮多漏洞的,只是我一步步来吧!你们别催,该放的时候自然就会放了." P- M) Q# z- A5 W' `
2 w) O, g* P$ z* S, @) V+ ~" A
过程不明显的我就省略了。
1 M- s( X3 I9 D) f
2 U6 m) H5 e4 v: C1 Z. K在preview.php 中第7行0 z, ?7 W( S, o  |) S3 D& l% P

! B; d9 K9 T: W9 R+ t6 R$r = new_stripslashes($info);
" J: ~- r. }; C6 X( G) k+ U7 X2 L! s# \6 k$ R0 C, m( p: S0 D* J, N
我们跟踪new_stripslashes这个函数
+ n9 F" ^% s6 A- q0 [, U/ S+ m# t: p3 [7 e1 D3 W( C" A
在global.func.php中可以找到3 `" t* e' ]+ m) {( ]3 g
8 u7 k0 ~5 c" p/ R
1: ~% D  h; ~! s9 m5 K7 \( H% y, I
2
3 Y) O1 @: R- N7 T3
: |2 k. f' ~! y$ O9 D45 Y) o0 f5 V! a
59 Z, d9 G  Q- W; c; H0 D
6 function new_stripslashes($string)0 P; q! _( h9 J  B) s3 L) A1 R
{
  k& _  b+ j2 B    if(!is_array($string)) return stripslashes($string);
" [$ |6 G& U% S- f6 V) I' m    foreach($string as $key => $val) $string[$key] = new_stripslashes($val);( ^! _1 Z2 A0 n8 B7 a  y4 l
    return $string;
" `. v8 f. Y. _+ n$ K# _% g/ ?7 B}
5 v' H3 r  ^, M: n9 D% W8 N8 d0 n8 N/ N) o
这个函数的功能不用解释了吧
& g: h- ?, Y' q( f4 ?4 ]5 `7 h* I! z9 B" u! P* C* H
所以我们看具体应用点再哪?4 Z" R2 t' ~' A* H
0 c( i3 L) ?$ W# q% [5 E( Y
1) U( O  Q! S1 R+ ?* s) t  j# e0 G
23 L  X6 b% E) }( C
3+ B& {1 J' o2 z
4: R( Q: V2 g8 _9 S1 F
5
5 ?, j! f9 s$ N$ h; n' e  ?- {6  y0 S7 v, a' D  R3 J! c
7
" w( ~8 o6 N- T8
3 A; g9 i% O; Z( n9
7 `/ K4 o- E' {1 \; G10
% t/ I9 C, {7 m3 x11  R& X$ Z9 @; s8 |* a
126 \6 h8 q+ ?2 P6 p8 _1 `
13+ F3 |1 O3 V% N7 q2 M1 }$ Z5 Z- M
14: a! s+ X! Y% K
15
; U; T# P3 ]- O7 G. _# _8 {/ w16
2 ~2 j3 o! o; n9 D$ Y17
( e, x$ w7 _/ }# ?8 q1 @18
0 |' P9 _* E9 l; _19
6 E3 F+ b6 E( f5 N* C203 ]0 a* o9 f3 j- {! U
21
( v$ l# Y5 g5 `- i22) P/ C6 Q- @6 P$ [. [+ k8 K
23* o/ c0 j; P9 I1 H" j4 f
24
3 J; R8 @7 [; c4 S& N$ S25. N0 w) g3 Q( [7 L7 q
26
5 J  i  q$ A2 i2 i27
' A" K, W8 H- y1 u' V28) ]7 G6 X% B6 o' \) f" Z# t
29
( S, @$ [6 U: M4 X% G30
6 k. f  x5 T. r4 J* @! C  @$ {31% @+ q8 ?+ l4 @0 V# }
32; J" B' o5 M$ h+ I
33
- w$ h( l3 a0 N8 ?, Y1 ~8 P. ]$ u34
; Q0 F$ a# U. L. M35 require dirname(__FILE__).'/include/common.inc.php';( V6 X* V% N  ?1 p
if(!$_userid) showmessage('禁止访问'); // 所以前提是我们注册个会员就ok了.  i: p) J; X- _  R' l6 [
require_once CACHE_MODEL_PATH.'content_output.class.php';- Y$ L$ u, U, m# \. |( \2 H
require_once 'output.class.php';" x" |; R3 k' v+ |, I: m+ ]2 _
if(!is_array($info)) showmessage('信息预览不能翻页');//这里将要带进来我们的危险参数了  h* B  D9 \9 D, Z+ C0 p; O/ h5 z
$r = new_stripslashes($info);   //反转义了.....关键
; o6 ^5 y) ], K7 e" v$C = cache_read('category_'.$r['catid'].'.php');
! S: ]- e, G3 ~) k$ J( t. p$out = new content_output();
1 w, q  h1 |5 v' K3 w4 e9 ^$ g, |$r['userid'] = $_userid;
+ F: J! I5 L( {# f! h: C7 f$r['inputtime'] = TIME;# K* x" D! Z* B+ y. N" g  P
$data = $out->get($r);
, a1 ~* {3 N7 T8 qextract($data);" @* p2 R7 g3 M; I
$userid = $_username;8 i5 I: Z2 J' u/ k  e) K9 e
for($i=1;$i<10;$i++)8 @+ K/ Z. M! {$ t+ _
{6 L. J1 j2 z6 L
    $str_attachmentArray[$i] = array("filepath" => "images/preview.gif","description" => "这里是图片的描述","thumb"=>"images/thumb_60_60_preview.gif");
2 O3 U! y1 S, L0 p( {" a}
, H4 y# F; s# `- Y        
/ w) E# X, o$ V' g$array_images = $str_attachmentArray;
) _& T0 ~+ r9 k9 }" s/ {$images_number = 10;
( n, r) a1 c) h$allow_priv = $allow_readpoint = 1;" \2 B0 }. K$ |
$updatetime = date('Y-m-d H:i:s',TIME);9 V" k3 A5 ~) \3 p+ z
        2 {9 D4 F6 e% K7 N& r2 x
$page = max(intval($page), 1);
! g0 c/ P8 {( U1 O+ J, s$pages = $titles = '';3 D( g3 P& \5 C/ F2 x/ Z
if(strpos($content, '
回复

使用道具 举报

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

本版积分规则

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