中国网络渗透测试联盟

标题: 原创逻辑漏洞测试之用两种方法在微信登陆openid验证情况下下成功刷票 [打印本页]

作者: admin    时间: 2021-12-30 13:52
标题: 原创逻辑漏洞测试之用两种方法在微信登陆openid验证情况下下成功刷票
[md]**最近一直在学习逻辑漏洞,偶然看到我家小孩学校组织的投票活动,得知老师组织这次投票活动,我专门向老师申请做一次逻辑漏洞测试,老师说非常欢迎,老师说对我这个玩电脑的家长早有耳闻,于是便有了以下的过程。此测试过程必须1、微信登陆下投票 2、token验证jwt加密,解密发现openid等参数**% [: u8 U) m- Z9 F9 O
. v4 r; w' |' \/ k+ V

& x* |" x7 L/ A**1** **、第一种方法突破微信登陆投票**
0 X: \+ w0 A. {6 z
) ?* `# y# e: \. A- e) }/ N5 ~一个微信账号一天投3票之扣别人的票增加自己的余票实现刷票8 j; ^/ E( {+ X8 X% b2 p1 a6 g# A
+ k% }" |' g  T& `4 i* z
首先用微信识别老师发来的投票二维码如图:3 b( h- q. a. y# X. w; o8 P
' F, z5 f3 [8 I
![image.png](data/attachment/forum/202112/30/134534pzg7kjhhvmcuhpim.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")9 `+ l6 j7 j1 a2 ~3 }  ^/ w
" |! ?# N& j* p2 Q
使用微信号登陆,不停的放包,直到这里( G; ?% |  F6 t$ Y: l3 k
' F0 f; J$ S  x2 o
![image.png](data/attachment/forum/202112/30/134608bhq1ihzxuigv2g1g.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png"), W0 l+ c, [0 ?2 E
$ s9 c/ X" F' v3 d9 O( C2 d
修改playerIdwei为别人的,因为用自己的playerid,自己的票数为变为-负数,修改num数为负数,如-9999,因为num参数可控,这时候你的票数会多出9999票,别人会少9999票,打个比方如图:
$ U  F' s* e5 G" M  d' r+ e, j3 h0 {, x6 C% D7 V* q
![image.png](data/attachment/forum/202112/30/134642y5r9rz0q00rob5yb.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")  b' d! |# w0 B
# C4 |7 ]: X8 b5 j7 C

" i5 ~" n& D, R; d$ r) S2 w1 {+ b* p* W3 r7 y2 W- K
这时候你就在你的账号不停歇的点投票就行,直到超过第一名,如图:( w5 ~$ }  T: l4 ^9 W
4 A4 o5 p  P1 |" x
![image.png](data/attachment/forum/202112/30/134740v0yd8lly3ndlojf8.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")
% Q% X6 ?, [7 g" `( H. B: @) x+ C
% g# R, k) y2 A2 z2 ~. {4 v' r) t' m
: a# a2 N4 Y* I5 R/ I0 T
票数瞬间变为1002票,本来一个微信号一天只能投一个选手3票,这时候已经成功突破,秒变1002票。。。
3 }. O) p2 A# S( H4 z- G* L7 a5 N, d. X
以上是第一种方法刷票,扣别人的票,加自己的余票,然后再刷给自己。。。**/ p( `0 x* u- ?% Z( L

3 ?1 H# [3 F/ ~+ s% s6 V) e, s8 F**2** **、**** ** **第二种方法利用** **long** **长整型溢出刷票**+ V. o% Y- v/ O( ^
: u+ I/ \; G% V( h) a2 O
同样到这个包,如下:/ x& {3 H& M4 W7 A

; r& \* B- {2 U& E```. h1 O6 X" m  a/ h
POST /vote/api/wx/voteFree/add HTTP/1.17 p0 w2 u) o5 P6 k' z
Host: 111.cn: w$ M+ v! J! l- l
Content-Length: 73
$ [0 f* g: H& u# e: u  fAccept: application/json, text/javascript, */*; q=0.015 l8 A2 t3 H) ^; J
X-Requested-With: XMLHttpRequest# Y0 \/ v4 w( j" g& }1 q
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 b& K7 o, B) |5 O; i
token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJqd3QtaWQiOiJvWmZMLXZuandCeWY1MU01Zm1CRlpZV0Z0ZFI4Iiwid3hPcGVuSWQiOiJvWmZMLXZuandCeWY1MU01Zm1CRlpZV0Z0ZFI4Iiwibmlja25hbWUiOiJkaWdleHBsb2l0IiwiZXhwIjoxNjM1MzAwNTY2fQ.0VBEVOvfDLfduF9MPto2D8Ok1Y9C90roMBMQzTn9oL0) P/ M- C9 d' C! D2 R- u$ l
Content-Type: application/x-www-form-urlencoded; charset=UTF-8( j) R% |) u  \8 X
Origin: http://111.cn
% v: `  M8 l6 |, t/ C7 l& SReferer: http://111.cn/welcome/detail.html?activityId=37bd3ad6-38c0-437c-870a-801dc6fed2a7&playerId=139969&skin=default
9 U' ~6 _5 X" J* G/ o4 fAccept-Language: zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.73 R$ N" l7 n( A
Cookie: SESSION=MWE3NDU3NWItM2MzMS00YWJmLTkxZTItNmU2MWQ0NzNhZDk5; token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJqd3QtaWQiOiJvWmZMLXZuandCeWY1MU01Zm1CRlpZV0Z0ZFI4Iiwid3hPcGVuSWQiOiJvWmZMLXZuandCeWY1MU01Zm1CRlpZV0Z0ZFI4Iiwibmlja25hbWUiOiJkaWdleHBsb2l0IiwiZXhwIjoxNjM1MzAwNTY2fQ.0VBEVOvfDLfduF9MPto2D8Ok1Y9C90roMBMQzTn9oL0; appid=wx6656xxoocd3e6xxoo
; s* L; P8 @) F( p5 @, d) N, o! V( UConnection: close, k/ ]- k) [( S8 V& a9 L4 d+ V, \
voteActivityId=37bd3ad6-38c0-437c-870a-801dc6fed2a7&playerId=139969&num=3
5 A' r! `3 n8 M6 ~$ {: q: Z- y1 w7 {- ?# n
```
3 g7 x. z6 k: [4 |4 w4 W6 }1 I! O1 M* a5 \: f4 g
修改num=3333333{},如图:' {5 }! [! ]0 q* D- t1 H

0 W7 Q3 U* U) N![image.png](data/attachment/forum/202112/30/134946uqvclqqb4vdy8oqt.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")
0 K; i, f" `! a7 q  q, [1 ~! M6 b: n: ]
) n( s. _" M! |  [" K% ~# L

3 e9 K9 N' |6 Z  P" \, u  K* ^判断为long长整型,既然num=-333333可控,那我们就把num=-333333改为2的63次方,也就是num=-9223372036854775808,执行完以后,提示500错误,提示超出范围。。。然后微信打开投票二维码就卡半天了,恢复之前如图:" }+ `, d* Q+ m' w" N

2 i$ w! `( f* s3 ?5 a![image.png](data/attachment/forum/202112/30/135025yj3ozszo4ggaojgj.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png"): i9 ~9 g3 I* ]8 J" ]0 K' ?
9 u4 Q$ r( \; N+ A) m; f8 \, h
0 @, o& \! @8 A4 g3 [$ M3 t4 i, W
/ _5 L  z  g) ?
这是之前测试的时候不小心搞成,所以才有了第二种方法。。。。。! R$ |% M- p# M1 m! w- a; `
" a9 M/ m/ v; G' Z' u& l( u
也就是刷票数为负 -270多万,如上图。。。
+ Y) e* a/ g" j. x& M, v; k. T' @. h- `" _2 s% r; g
等溢出恢复以后票数变成15W多,排名第一,如图:
- U8 h5 s8 S, t- C2 j2 T% T" f4 `& S' o6 @* V
: _% o; m, c+ _6 X/ l
![image.png](data/attachment/forum/202112/30/135104bemec992s9udxfzd.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")
, V# z# ]) v8 l7 V) u7 R
6 C. ~1 H4 Q2 J$ s7 \" E**注:由于测试过程没有保存录像或图片,导致溢出以后的返回包没能贴图,不过没关系,正负数都试一遍,一般参数可负数的话,直接负的最大溢出量就够了。。。**
; @/ G' ^  W  Z* I2 S+ f[/md]




欢迎光临 中国网络渗透测试联盟 (https://cobjon.com/) Powered by Discuz! X3.2