中国网络渗透测试联盟

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

作者: admin    时间: 2021-12-30 13:52
标题: 原创逻辑漏洞测试之用两种方法在微信登陆openid验证情况下下成功刷票
[md]**最近一直在学习逻辑漏洞,偶然看到我家小孩学校组织的投票活动,得知老师组织这次投票活动,我专门向老师申请做一次逻辑漏洞测试,老师说非常欢迎,老师说对我这个玩电脑的家长早有耳闻,于是便有了以下的过程。此测试过程必须1、微信登陆下投票 2、token验证jwt加密,解密发现openid等参数**
' D( P  E4 _; [0 }& ]% x' n. R: N6 v& b$ o8 n, A

9 p0 j& g6 o' f, L/ ]**1** **、第一种方法突破微信登陆投票**% _/ h" X8 c! @! A5 I

, W( E; M9 P9 S- e一个微信账号一天投3票之扣别人的票增加自己的余票实现刷票, g& j3 o: m5 j/ S
0 ]1 X! K& S& \% S% ?) L8 c
首先用微信识别老师发来的投票二维码如图:
$ M! f2 n) E% U2 ]0 E
4 Z) J! e2 d4 a8 U) @1 k![image.png](data/attachment/forum/202112/30/134534pzg7kjhhvmcuhpim.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")0 o; l; V; [- q: K! K" G/ C( }
  f1 I4 b) [+ h* k. J1 {$ o
使用微信号登陆,不停的放包,直到这里
' i; p6 U9 f* b, a7 m
: d3 l1 e8 A# `! @![image.png](data/attachment/forum/202112/30/134608bhq1ihzxuigv2g1g.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")( Q9 f0 e& {6 B' J. q8 M
. z" a9 B3 ^, V3 }  {
修改playerIdwei为别人的,因为用自己的playerid,自己的票数为变为-负数,修改num数为负数,如-9999,因为num参数可控,这时候你的票数会多出9999票,别人会少9999票,打个比方如图:" C# W! h/ o0 T1 D
) _, d6 e2 \( G0 }. M6 [9 O
![image.png](data/attachment/forum/202112/30/134642y5r9rz0q00rob5yb.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")
3 v5 H$ A) N% `, w. R2 o% ]# y/ l
% v7 _* I. b7 n$ ~" E
3 E. y" w& u& T' n9 s7 T( N
- V; w; j$ |6 y: Y' ~这时候你就在你的账号不停歇的点投票就行,直到超过第一名,如图:
% U6 @6 Z, P, A9 e6 r
$ f& s1 C; j4 T! b+ O6 o6 C  ~![image.png](data/attachment/forum/202112/30/134740v0yd8lly3ndlojf8.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")# x- v  J& M, y2 F, S

9 ~8 _4 t  s. |. }0 I5 x( K% Q3 C5 W
$ ]9 t1 G" P$ G9 c( N
票数瞬间变为1002票,本来一个微信号一天只能投一个选手3票,这时候已经成功突破,秒变1002票。。。
6 J1 p" q8 ~* Z7 }; D
9 f/ P# k# o) v) p- o) z% O5 b以上是第一种方法刷票,扣别人的票,加自己的余票,然后再刷给自己。。。**
2 w6 {& e2 |- \  H) N. D
& D4 ~2 T6 D1 F1 M; b+ K$ k/ R**2** **、**** ** **第二种方法利用** **long** **长整型溢出刷票**
4 w+ {& t1 g, ?! C/ r# p
% L1 L: C( O+ q3 O同样到这个包,如下:
  }( X3 B! i! V; N
) x8 E. Z9 \. j# r& g6 j% Z```6 Y8 Q) \" m1 {5 Y7 f) l* Y# L
POST /vote/api/wx/voteFree/add HTTP/1.1
! U; D  e5 t4 `- f, R' gHost: 111.cn8 O- K, E. v! b8 W' F9 G6 d
Content-Length: 73
/ @5 I) N" y, f) m& [& D% n/ mAccept: application/json, text/javascript, */*; q=0.015 e$ [; s3 i+ _, |8 T/ J# I8 q$ C7 B
X-Requested-With: XMLHttpRequest. s. {  i1 J$ O# ^: I5 v
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
$ e( B7 v: t' U* Ptoken: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJqd3QtaWQiOiJvWmZMLXZuandCeWY1MU01Zm1CRlpZV0Z0ZFI4Iiwid3hPcGVuSWQiOiJvWmZMLXZuandCeWY1MU01Zm1CRlpZV0Z0ZFI4Iiwibmlja25hbWUiOiJkaWdleHBsb2l0IiwiZXhwIjoxNjM1MzAwNTY2fQ.0VBEVOvfDLfduF9MPto2D8Ok1Y9C90roMBMQzTn9oL0
) H4 m2 I% J& P- m/ jContent-Type: application/x-www-form-urlencoded; charset=UTF-80 D5 G9 e: Q" P+ C5 E# l6 ?0 M
Origin: http://111.cn( m0 f9 ?! f  m: [8 m
Referer: http://111.cn/welcome/detail.html?activityId=37bd3ad6-38c0-437c-870a-801dc6fed2a7&playerId=139969&skin=default
" F7 y- L* B& y% ~4 xAccept-Language: zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7" u$ L- J# B( t
Cookie: SESSION=MWE3NDU3NWItM2MzMS00YWJmLTkxZTItNmU2MWQ0NzNhZDk5; token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJqd3QtaWQiOiJvWmZMLXZuandCeWY1MU01Zm1CRlpZV0Z0ZFI4Iiwid3hPcGVuSWQiOiJvWmZMLXZuandCeWY1MU01Zm1CRlpZV0Z0ZFI4Iiwibmlja25hbWUiOiJkaWdleHBsb2l0IiwiZXhwIjoxNjM1MzAwNTY2fQ.0VBEVOvfDLfduF9MPto2D8Ok1Y9C90roMBMQzTn9oL0; appid=wx6656xxoocd3e6xxoo
. K6 e% u% x1 vConnection: close
2 \! Q7 U. j2 D% I/ x; JvoteActivityId=37bd3ad6-38c0-437c-870a-801dc6fed2a7&playerId=139969&num=3
1 z0 i* }) G5 D  t
  x' e: g5 i, m& g8 Y* b```8 a9 x& ^: u  F- A, p
/ Z9 {6 y" H/ l! w# K: G$ {
修改num=3333333{},如图:: m( H6 n3 P! m2 V
5 j) N2 L# `% O, h- n7 |2 n, D
![image.png](data/attachment/forum/202112/30/134946uqvclqqb4vdy8oqt.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")( I4 z+ d3 ?, C4 [, {4 _4 P
) @" L. Y" B8 b$ l( Y4 h  y
3 D- m" l$ a; g5 \& j
1 x0 X/ Y; n0 J- X. _
判断为long长整型,既然num=-333333可控,那我们就把num=-333333改为2的63次方,也就是num=-9223372036854775808,执行完以后,提示500错误,提示超出范围。。。然后微信打开投票二维码就卡半天了,恢复之前如图:
# k5 A3 h+ Y- n. R7 z6 Y/ J0 t3 t8 j
![image.png](data/attachment/forum/202112/30/135025yj3ozszo4ggaojgj.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")
: s2 `* X; Y  ~' {) y! l$ H- e" Z6 w
' t7 \" |0 B6 O' K8 n1 \
- r$ y9 n) ]3 |/ b8 ?) R" p0 h
这是之前测试的时候不小心搞成,所以才有了第二种方法。。。。。
7 C2 M; |3 E1 s& u9 U8 }5 O8 w- w/ o
也就是刷票数为负 -270多万,如上图。。。
# r2 b4 O  V, Y* v9 O1 P% y7 {* C0 s# z2 `2 u
等溢出恢复以后票数变成15W多,排名第一,如图:
2 J  |0 m8 w4 r1 Z, f# ]
( l: i" d8 ^3 D: ?! q+ i7 H! M/ M' b8 v- @& `- V3 u9 s7 B
![image.png](data/attachment/forum/202112/30/135104bemec992s9udxfzd.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png"). S" U# M; e+ Y0 Z  o) k
+ L, W7 A4 u1 B) H4 _- A2 G$ y2 S
**注:由于测试过程没有保存录像或图片,导致溢出以后的返回包没能贴图,不过没关系,正负数都试一遍,一般参数可负数的话,直接负的最大溢出量就够了。。。**
0 D3 r4 x5 }5 N) V$ P7 C- h[/md]




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