9 v2 n% `: J7 X S8 i
; Z, L# r) G( T7 K4 S' `
以iphone客户端app为例,在登陆的时候选择使用微博账号登陆
$ U K1 l% s, o, y9 ~+ E$ o' z1 _, H
我的登陆账号为no*****003. w0 O- j0 U8 x! w+ H
0 c7 N% U9 r1 a6 k/ H" y
: b- U3 [7 |& n- v 0 s1 H+ [! [% I
9 m0 X2 e: R) I 7 E# ?5 g7 [; l$ ?2 d
9 v9 M( K' t6 n4 C9 V% v
点击登陆,然后截取https://api.weibo.com/oauth2/sso ... p;disable_sinaurl=1
! O, Z+ p1 _/ q+ E6 r这个数据包,将返回的uid改为其他人的uid就可以登陆对应的账号了。
/ C; B& ^$ a& {+ D
& Z& J8 X+ c1 s
' Y" a6 I% M7 S/ M) G 6 @$ ?# P+ | K$ }1 B
漏洞证明:- b8 A6 c8 f6 P$ {
/ _2 r5 E/ ?( ]- k
4 _' w$ {) b5 Q" I
- W5 i; r/ q1 r# b: S5 m W' l. e 我把uid修改为雪狼领导的,成功登陆雪狼领导账号。" [1 f- w7 |2 K6 A
* f6 q1 u+ p2 b) O
- H6 f+ u) o6 g' x6 {5 T6 Z/ b/ }
" c1 s! r& l( S+ I
4 P# X$ Q; u( J: c2 n8 Y ) Z0 `/ _* a9 c+ F) I" |
" ]) \7 E' ^1 }. i, [* j
8 c' W" U" ^6 @; d. d: Y 6 B8 K3 j( ]+ E( U) T
- W" v D. }2 Y; x+ n! q
; h* e z, @- ]
7 ?) v" w. h6 K7 d3 w) q
2 I4 G2 ^! `1 {6 J" q
( p$ c% A2 |7 R1 k9 Y 5 @5 J5 ~" o% L' q- c
+ a' {0 R) z6 `
修复方案:
: z/ l( v" Y q- d j9 Y
( a' L% q; }! O" S# n1 ?. w ' T, O! S5 k+ v
) w# z* K: {& N
正确校验uid与token的关系
; K) J* g. P8 P" ]& D
+ ? _1 w; v# D' v 3 d- |# U+ D; c3 A* y O9 V, M8 A
- |. C( q/ f- S' u! g
* P2 o: H3 Y7 _