中国网络渗透测试联盟

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

作者: admin    时间: 2021-12-30 13:52
标题: 原创逻辑漏洞测试之用两种方法在微信登陆openid验证情况下下成功刷票
[md]**最近一直在学习逻辑漏洞,偶然看到我家小孩学校组织的投票活动,得知老师组织这次投票活动,我专门向老师申请做一次逻辑漏洞测试,老师说非常欢迎,老师说对我这个玩电脑的家长早有耳闻,于是便有了以下的过程。此测试过程必须1、微信登陆下投票 2、token验证jwt加密,解密发现openid等参数**
7 n2 Q* t1 M8 G4 a* ~' y, R4 i8 [3 E0 y5 `7 Z1 p( j$ h0 ]

8 f* a$ |% A/ M' o3 W/ O**1** **、第一种方法突破微信登陆投票**
# @4 A% c  x! P- |) q9 z5 j2 f9 R& f. v4 {
一个微信账号一天投3票之扣别人的票增加自己的余票实现刷票- v: k5 Y, u) _( z( T% e
# y! _6 q. g# F
首先用微信识别老师发来的投票二维码如图:
1 O2 L& z9 e0 v4 Y* ^+ c4 G2 H# N1 Z. ^9 n/ h
![image.png](data/attachment/forum/202112/30/134534pzg7kjhhvmcuhpim.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")
: n0 h) b. L5 o2 i
0 i0 w6 J: P$ h8 F2 H使用微信号登陆,不停的放包,直到这里1 }9 h* k2 n7 z6 \. D( N
+ Q: }0 t$ l# _7 B
![image.png](data/attachment/forum/202112/30/134608bhq1ihzxuigv2g1g.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")
% W/ Y: F" ?9 v* y3 n. c
( E# P! s8 I* u% x: V* h: s! c- y修改playerIdwei为别人的,因为用自己的playerid,自己的票数为变为-负数,修改num数为负数,如-9999,因为num参数可控,这时候你的票数会多出9999票,别人会少9999票,打个比方如图:- c9 J( ~& V8 S  \& J
- W% l0 ~' g7 j" R8 {7 y2 L
![image.png](data/attachment/forum/202112/30/134642y5r9rz0q00rob5yb.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")* \: L$ l! n; z
& Y/ f" [  I( @0 J

( J# H2 t4 q& h4 m" r4 F; _
" W! x9 B* f; H& u4 X$ P) K  _这时候你就在你的账号不停歇的点投票就行,直到超过第一名,如图:6 M4 q2 L3 x9 Q7 i* k0 L
7 _- {/ I2 F+ j+ ?: K
![image.png](data/attachment/forum/202112/30/134740v0yd8lly3ndlojf8.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")3 `2 a6 V# f9 {. M8 ^
! M3 y  v. h1 a4 Y- j

4 I3 z2 o5 R1 m+ W+ A- f; R( W6 @% y
票数瞬间变为1002票,本来一个微信号一天只能投一个选手3票,这时候已经成功突破,秒变1002票。。。
- u2 G1 e& a4 I- U7 o% `' Z7 V& n+ _* o
以上是第一种方法刷票,扣别人的票,加自己的余票,然后再刷给自己。。。**8 z6 ]' k9 Z% L$ g- [4 d% f
8 R: x, Y% ?6 D3 b2 t3 a
**2** **、**** ** **第二种方法利用** **long** **长整型溢出刷票**
: C% }! I! O" h) B. \0 d; N# ]5 _0 m7 P, o$ m
同样到这个包,如下:
2 R) \3 b" V% T: t8 R6 r7 ?/ \: t& L* _
```
, Y: P( y" U6 y; l& S3 g4 m- U% @POST /vote/api/wx/voteFree/add HTTP/1.1
7 j, E+ Q7 C" u7 J/ M1 gHost: 111.cn. L; F7 a. N/ Q) @
Content-Length: 73
6 Q5 G4 X; O# S0 F9 ^Accept: application/json, text/javascript, */*; q=0.01
' [9 }/ S6 M' z$ ?& D  KX-Requested-With: XMLHttpRequest
) R" |5 A3 R# Y+ |! s: AUser-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
- M* X, ^8 [/ J* T  htoken: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJqd3QtaWQiOiJvWmZMLXZuandCeWY1MU01Zm1CRlpZV0Z0ZFI4Iiwid3hPcGVuSWQiOiJvWmZMLXZuandCeWY1MU01Zm1CRlpZV0Z0ZFI4Iiwibmlja25hbWUiOiJkaWdleHBsb2l0IiwiZXhwIjoxNjM1MzAwNTY2fQ.0VBEVOvfDLfduF9MPto2D8Ok1Y9C90roMBMQzTn9oL0( Y1 @; j2 ~' Y7 L; R
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
' t1 A8 ~0 \0 KOrigin: http://111.cn
* j, D, ?5 k% L/ p) z. a: J7 LReferer: http://111.cn/welcome/detail.html?activityId=37bd3ad6-38c0-437c-870a-801dc6fed2a7&playerId=139969&skin=default
& K; c) ^; y8 TAccept-Language: zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7
, V1 `4 E6 D' p. F: y( Y! iCookie: SESSION=MWE3NDU3NWItM2MzMS00YWJmLTkxZTItNmU2MWQ0NzNhZDk5; token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJqd3QtaWQiOiJvWmZMLXZuandCeWY1MU01Zm1CRlpZV0Z0ZFI4Iiwid3hPcGVuSWQiOiJvWmZMLXZuandCeWY1MU01Zm1CRlpZV0Z0ZFI4Iiwibmlja25hbWUiOiJkaWdleHBsb2l0IiwiZXhwIjoxNjM1MzAwNTY2fQ.0VBEVOvfDLfduF9MPto2D8Ok1Y9C90roMBMQzTn9oL0; appid=wx6656xxoocd3e6xxoo
$ u" [* f# E( ]Connection: close
) j8 x) U% \4 z, gvoteActivityId=37bd3ad6-38c0-437c-870a-801dc6fed2a7&playerId=139969&num=3
/ r  g- |4 H* w! F) I! O1 w' L3 K8 `: k
```, c+ S. ~* t  d3 U8 `. g3 w
" u% f6 i( y$ J
修改num=3333333{},如图:
% H0 J6 Q7 w% T0 ]5 b4 b4 l
5 B; F" `' V/ t; B/ S3 N![image.png](data/attachment/forum/202112/30/134946uqvclqqb4vdy8oqt.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")
$ Y0 H& w! `$ @& W/ {& ^2 r2 s! J$ V# Q& z9 N8 ?# N
& ~% ^# ^. ]# v" m  E8 t7 J' j

+ s0 d* S- d, o9 x判断为long长整型,既然num=-333333可控,那我们就把num=-333333改为2的63次方,也就是num=-9223372036854775808,执行完以后,提示500错误,提示超出范围。。。然后微信打开投票二维码就卡半天了,恢复之前如图:
6 s+ ^2 L5 c: i8 h( s1 j
$ w: m' P4 @( g7 y# f/ U![image.png](data/attachment/forum/202112/30/135025yj3ozszo4ggaojgj.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")
4 V" Y, E5 b) g
8 X% I0 B# c1 }  r! `! z- [3 B0 k; t- F

. K9 N0 z. m( {2 Z这是之前测试的时候不小心搞成,所以才有了第二种方法。。。。。
+ B4 v& L: q9 g# O& o0 P+ f5 z& @' D4 R0 w
也就是刷票数为负 -270多万,如上图。。。8 o" w5 ~) u3 R2 Z* o: G) P
. ?3 ?$ Q& A; E% W0 x. h& n  {
等溢出恢复以后票数变成15W多,排名第一,如图:
* i; |# X# ?- A$ }  o5 {3 s
% J* g+ K) L5 o  ~! E4 x$ }3 Z- d* E& l# M4 i
![image.png](data/attachment/forum/202112/30/135104bemec992s9udxfzd.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")5 S8 W5 O/ s/ Q# l" g6 c
' [/ ^' c: L) |1 P7 i
**注:由于测试过程没有保存录像或图片,导致溢出以后的返回包没能贴图,不过没关系,正负数都试一遍,一般参数可负数的话,直接负的最大溢出量就够了。。。**& M3 r. [( \+ h3 H
[/md]




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