中国网络渗透测试联盟

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

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

! {, p  T  `5 `) c**1** **、第一种方法突破微信登陆投票**
* D$ {1 \" K; Z2 e6 g3 k' c' C; }
* ?" W+ Q8 z9 F% W! F一个微信账号一天投3票之扣别人的票增加自己的余票实现刷票. N$ Z$ J) P* l# ?9 D8 H
! m, K. Z& M! }4 @7 l* P8 c6 k: s
首先用微信识别老师发来的投票二维码如图:
5 m( K* a( N; s2 v- Y2 d0 a( b0 {# n, |- [
![image.png](data/attachment/forum/202112/30/134534pzg7kjhhvmcuhpim.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")6 R: T/ F: h3 B& I
+ U0 w% p6 z; R% j
使用微信号登陆,不停的放包,直到这里# t  l* g3 j- ]: a4 `

; ~  q, F, E- s5 L4 p! T; r. [![image.png](data/attachment/forum/202112/30/134608bhq1ihzxuigv2g1g.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")
; r$ c1 _$ f+ E3 _, y3 }1 N' U; U- L# p, c
修改playerIdwei为别人的,因为用自己的playerid,自己的票数为变为-负数,修改num数为负数,如-9999,因为num参数可控,这时候你的票数会多出9999票,别人会少9999票,打个比方如图:
0 O' q* `& u4 D, k" f
6 v2 l' R6 ~; o: V![image.png](data/attachment/forum/202112/30/134642y5r9rz0q00rob5yb.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")
  k3 [% ?, r# Y% t  h8 S1 A3 @# v5 }) n
& X6 ?. y% R/ |0 H' o2 W* H& k3 x# Z: C8 S/ P3 g* o8 V
' S& ]# P1 f4 V. o( R7 g2 c+ z9 |
这时候你就在你的账号不停歇的点投票就行,直到超过第一名,如图:7 U: A4 G4 e3 L+ C: P: V
0 X5 D5 w* ^0 F( c; v
![image.png](data/attachment/forum/202112/30/134740v0yd8lly3ndlojf8.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")
8 Q9 }8 a+ u! ~: ~2 p! W  j! z4 P1 G$ }$ O( H0 f# J. q' \9 L& `

4 g# _0 I+ j* m% H' _8 x- H+ a: ]: V% _! z$ J2 V5 k- ~" N
票数瞬间变为1002票,本来一个微信号一天只能投一个选手3票,这时候已经成功突破,秒变1002票。。。
/ K  E% l+ c4 u5 e, D+ _) m0 F# a. w1 L
以上是第一种方法刷票,扣别人的票,加自己的余票,然后再刷给自己。。。**
: }1 K& w+ e1 q# ]" |% I/ F' [# j5 p, _" N
**2** **、**** ** **第二种方法利用** **long** **长整型溢出刷票**+ H; D1 d% [  e% }4 O5 v  z- |" Y

7 H+ W$ _6 B8 g同样到这个包,如下:4 x8 E3 O0 l7 G1 c" w( i! `

% n! P5 ]2 e- S4 c0 p! r2 H```" d: u# \# V+ E* V: l" G
POST /vote/api/wx/voteFree/add HTTP/1.1$ H  J+ o6 i( N; l" L5 F2 a
Host: 111.cn
1 A: }! n4 ?5 @' p1 uContent-Length: 73
, F$ U; I6 g  j4 ?+ e- bAccept: application/json, text/javascript, */*; q=0.01) a4 S! k: _0 S( |4 X, L; l
X-Requested-With: XMLHttpRequest
1 Y% ~+ U. E: n$ ZUser-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# Q  V% x4 E! a1 V1 j* S' o9 f0 g$ x
token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJqd3QtaWQiOiJvWmZMLXZuandCeWY1MU01Zm1CRlpZV0Z0ZFI4Iiwid3hPcGVuSWQiOiJvWmZMLXZuandCeWY1MU01Zm1CRlpZV0Z0ZFI4Iiwibmlja25hbWUiOiJkaWdleHBsb2l0IiwiZXhwIjoxNjM1MzAwNTY2fQ.0VBEVOvfDLfduF9MPto2D8Ok1Y9C90roMBMQzTn9oL0
) T+ `) ^$ C, J6 q9 [/ f  y/ SContent-Type: application/x-www-form-urlencoded; charset=UTF-8
& e2 `. n0 Q' q% I9 j; L1 h2 c, yOrigin: http://111.cn
) n% v5 d, S9 t; IReferer: http://111.cn/welcome/detail.html?activityId=37bd3ad6-38c0-437c-870a-801dc6fed2a7&playerId=139969&skin=default
- W- u& c# @5 e) u3 q3 lAccept-Language: zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7( p7 ^$ @0 l  T! E6 I. l3 s% X9 `  \
Cookie: SESSION=MWE3NDU3NWItM2MzMS00YWJmLTkxZTItNmU2MWQ0NzNhZDk5; token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJqd3QtaWQiOiJvWmZMLXZuandCeWY1MU01Zm1CRlpZV0Z0ZFI4Iiwid3hPcGVuSWQiOiJvWmZMLXZuandCeWY1MU01Zm1CRlpZV0Z0ZFI4Iiwibmlja25hbWUiOiJkaWdleHBsb2l0IiwiZXhwIjoxNjM1MzAwNTY2fQ.0VBEVOvfDLfduF9MPto2D8Ok1Y9C90roMBMQzTn9oL0; appid=wx6656xxoocd3e6xxoo
' L! @2 M/ K% {  L: H4 d8 D4 JConnection: close
. O2 V3 L+ W$ k' l  |0 s4 q8 SvoteActivityId=37bd3ad6-38c0-437c-870a-801dc6fed2a7&playerId=139969&num=3! H3 z. {0 ^+ U3 t; W6 ]1 P

! \8 ]" e4 D7 q: N```- O# V; h4 H9 h
1 T. K# ]9 P! j& \
修改num=3333333{},如图:
! T$ Y- o2 p6 d0 S$ D9 J$ v  q( ?7 [+ I7 F& S9 g' E6 |
![image.png](data/attachment/forum/202112/30/134946uqvclqqb4vdy8oqt.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")
8 z9 }9 Z* S( }: C. ]" |
) n7 e; ]  P) c% c- _/ o! i5 g% Z/ j$ J
$ V' f6 |9 _0 p/ h' I* i8 O
判断为long长整型,既然num=-333333可控,那我们就把num=-333333改为2的63次方,也就是num=-9223372036854775808,执行完以后,提示500错误,提示超出范围。。。然后微信打开投票二维码就卡半天了,恢复之前如图:3 R0 _4 y+ L" _+ U

! J! N, N4 S' A% z* {1 U4 q![image.png](data/attachment/forum/202112/30/135025yj3ozszo4ggaojgj.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")
; ?4 x% s: Y0 b6 A) I/ q
: X9 Y* Z  a5 f: i
6 W& V4 x2 J# {$ J+ J8 m: W  ~" E2 F+ ?7 a
这是之前测试的时候不小心搞成,所以才有了第二种方法。。。。。* a; T9 \( E- Y  \0 s

  Y& d% v4 [2 e" O- w1 z) {也就是刷票数为负 -270多万,如上图。。。
# w1 I+ k2 X  t4 I, V
! _1 Y% X+ _) u8 Y$ w# H+ c等溢出恢复以后票数变成15W多,排名第一,如图:
/ F/ A) f3 W8 v! j
0 c$ A/ q( Z" ?
/ C# ]) E$ H) d![image.png](data/attachment/forum/202112/30/135104bemec992s9udxfzd.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")
" S/ f4 K1 [1 r' d3 |8 Y! A2 I% w4 k% y- L$ ~
**注:由于测试过程没有保存录像或图片,导致溢出以后的返回包没能贴图,不过没关系,正负数都试一遍,一般参数可负数的话,直接负的最大溢出量就够了。。。**% q% M0 t  b3 ~! I$ L
[/md]




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