中国网络渗透测试联盟
标题:
原创逻辑漏洞测试之用两种方法在微信登陆openid验证情况下下成功刷票
[打印本页]
作者:
admin
时间:
2021-12-30 13:52
标题:
原创逻辑漏洞测试之用两种方法在微信登陆openid验证情况下下成功刷票
[md]**最近一直在学习逻辑漏洞,偶然看到我家小孩学校组织的投票活动,得知老师组织这次投票活动,我专门向老师申请做一次逻辑漏洞测试,老师说非常欢迎,老师说对我这个玩电脑的家长早有耳闻,于是便有了以下的过程。此测试过程必须1、微信登陆下投票 2、token验证jwt加密,解密发现openid等参数**
0 Z( s: Y9 M% j1 L. J
: c$ a# k& A/ k5 |7 P/ J
2 a: u3 c% W I- Y3 _: ?% F
**1** **、第一种方法突破微信登陆投票**
, J6 L" {$ h" I% I7 l0 U |
: _6 b2 K4 h7 @! S
一个微信账号一天投3票之扣别人的票增加自己的余票实现刷票
, h' C p* n& K- P3 C
. O% X Q p& |, @: j" q6 Q
首先用微信识别老师发来的投票二维码如图:
: W0 R# j) ]/ _ D/ y% o& z8 W% _( Q3 W
$ U- x. s6 X3 T! D4 t- t4 N

0 e- b' x- x* u0 g; L
& c9 }3 ]/ h) v# T" q# d& O/ @
使用微信号登陆,不停的放包,直到这里
' v5 l* b/ I/ U @3 `1 A% [
6 F0 B# f0 G0 }' s4 B) k

& g. I" x9 Z$ d' V
6 \; Y# B% {: y: u" ^% r
修改playerIdwei为别人的,因为用自己的playerid,自己的票数为变为-负数,修改num数为负数,如-9999,因为num参数可控,这时候你的票数会多出9999票,别人会少9999票,打个比方如图:
0 _3 |1 H* J+ q: \3 D5 ?$ v# h
5 l6 k( |! q; A4 s2 ?

0 @: J; p' _1 W, D4 g" V: y& T
2 Q: p; a$ X' V( V6 ]( f( q
. a) \/ H0 D5 z
# B; V" ^: e+ A
这时候你就在你的账号不停歇的点投票就行,直到超过第一名,如图:
- r0 n7 m9 V5 x
( B! P7 _6 X" u

$ s; N7 ^1 r% D. q; M! b1 ?0 ^, l
* D5 {. {% d: H9 o# _3 z" Z1 T& e
) c0 @5 j- ?# H: P
! D) B5 q' q+ a/ N- C9 I
票数瞬间变为1002票,本来一个微信号一天只能投一个选手3票,这时候已经成功突破,秒变1002票。。。
6 c7 `" l* P, t3 L6 u
9 T) ? G# T6 A% W! @
以上是第一种方法刷票,扣别人的票,加自己的余票,然后再刷给自己。。。**
- m& w6 ^3 k" C- `1 Q
$ y# O) E1 j3 g$ s
**2** **、**** ** **第二种方法利用** **long** **长整型溢出刷票**
: x a: a" y2 r) S7 L
8 r' w7 O* b/ Y5 ^
同样到这个包,如下:
& B m* i" d$ H; O G
9 E+ T+ i+ u1 \* \& q! J
```
( e5 H* ^, s6 _* R) E0 U
POST /vote/api/wx/voteFree/add HTTP/1.1
# |3 N& X) q4 A% g+ w$ s, T. b
Host: 111.cn
p" A/ Y7 Z6 `$ _% `2 N. }
Content-Length: 73
* m. L+ Q7 o) K' ~0 G
Accept: application/json, text/javascript, */*; q=0.01
7 e4 c8 y! `3 J7 W2 T2 p' s
X-Requested-With: XMLHttpRequest
5 e. m! R! H% [( T* K6 B
User-Agent: Mozilla/5.0 (Linux; Android 10; TEL-AN00a Build/HONORTEL-AN00a; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/89.0.4389.72 MQQBrowser/6.2 TBS/045811 Mobile Safari/537.36 MMWEBID/3773 MicroMessenger/8.0.15.2020(0x28000F3D) Process/tools WeChat/arm64 Weixin NetType/WIFI Language/zh_CN ABI/arm64
. k1 W$ T7 O2 q, a+ Z" f
token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJqd3QtaWQiOiJvWmZMLXZuandCeWY1MU01Zm1CRlpZV0Z0ZFI4Iiwid3hPcGVuSWQiOiJvWmZMLXZuandCeWY1MU01Zm1CRlpZV0Z0ZFI4Iiwibmlja25hbWUiOiJkaWdleHBsb2l0IiwiZXhwIjoxNjM1MzAwNTY2fQ.0VBEVOvfDLfduF9MPto2D8Ok1Y9C90roMBMQzTn9oL0
! x, ]1 p, {6 e& v, B1 I
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
; k# q6 ?+ R. ?) j1 M+ P
Origin:
http://111.cn
4 N" ]( U8 f6 c
Referer:
http://111.cn/welcome/detail.html?activityId=37bd3ad6-38c0-437c-870a-801dc6fed2a7&playerId=139969&skin=default
; k/ w* ]; j! K: d1 t3 b
Accept-Language: zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7
3 p+ C! Y- u m0 z$ K0 k3 D
Cookie: SESSION=MWE3NDU3NWItM2MzMS00YWJmLTkxZTItNmU2MWQ0NzNhZDk5; token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJqd3QtaWQiOiJvWmZMLXZuandCeWY1MU01Zm1CRlpZV0Z0ZFI4Iiwid3hPcGVuSWQiOiJvWmZMLXZuandCeWY1MU01Zm1CRlpZV0Z0ZFI4Iiwibmlja25hbWUiOiJkaWdleHBsb2l0IiwiZXhwIjoxNjM1MzAwNTY2fQ.0VBEVOvfDLfduF9MPto2D8Ok1Y9C90roMBMQzTn9oL0; appid=wx6656xxoocd3e6xxoo
1 Y5 s; O* @' t9 i
Connection: close
( T* M; b+ c$ F1 _( X5 S
voteActivityId=37bd3ad6-38c0-437c-870a-801dc6fed2a7&playerId=139969&num=3
/ |, \. a) g+ E$ @) i9 u0 v0 w
. O7 k" ]# o* G6 g( ~% u
```
! X3 t+ t, g: ?# w
9 a9 i! }/ r! `5 v' ]* S- e* { E$ B
修改num=3333333{},如图:
$ a8 Z8 y1 h% r- ]% V
* c7 K1 l, K5 k3 l0 Z* A

+ z5 r4 O8 P4 M% l7 b5 M' g( b% R s0 R
% a5 @4 D/ R9 o& o
3 P& x% }6 O. g% f) n
$ ^" Y4 A1 Q, I* c% z1 d; [/ @7 j
判断为long长整型,既然num=-333333可控,那我们就把num=-333333改为2的63次方,也就是num=-9223372036854775808,执行完以后,提示500错误,提示超出范围。。。然后微信打开投票二维码就卡半天了,恢复之前如图:
, b& q- H% M9 I. Y7 a
8 A2 E! W9 u2 _, d

) X+ \$ `. E1 G3 Q+ Z V2 ?
, E' C7 D* |9 M( Q* i$ E3 R
+ Q3 r8 f7 B% k7 N0 }; b& @3 O; l1 d
: m2 q7 P+ D7 s, y) [- M9 Y
这是之前测试的时候不小心搞成,所以才有了第二种方法。。。。。
: q4 @; c: n/ X& j
& C W2 l+ @6 {+ c0 R
也就是刷票数为负 -270多万,如上图。。。
2 p: f# Z9 k, s5 b& g w
5 p' ], I8 ]+ Z1 ]+ n! |
等溢出恢复以后票数变成15W多,排名第一,如图:
5 {4 L7 g. D/ V4 d$ z
- p2 Q( T/ t/ N) K& Z& M
# [/ S7 o: X8 A+ O- o3 ?( R( m

F8 U/ A4 q" v" W' X
1 T7 ? e/ w3 o9 A' r3 q# h
**注:由于测试过程没有保存录像或图片,导致溢出以后的返回包没能贴图,不过没关系,正负数都试一遍,一般参数可负数的话,直接负的最大溢出量就够了。。。**
! W' b: o& e1 f5 B
[/md]
欢迎光临 中国网络渗透测试联盟 (https://cobjon.com/)
Powered by Discuz! X3.2