中国网络渗透测试联盟

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

作者: admin    时间: 2021-12-30 13:52
标题: 原创逻辑漏洞测试之用两种方法在微信登陆openid验证情况下下成功刷票
[md]**最近一直在学习逻辑漏洞,偶然看到我家小孩学校组织的投票活动,得知老师组织这次投票活动,我专门向老师申请做一次逻辑漏洞测试,老师说非常欢迎,老师说对我这个玩电脑的家长早有耳闻,于是便有了以下的过程。此测试过程必须1、微信登陆下投票 2、token验证jwt加密,解密发现openid等参数**
% W3 q6 }0 a4 K
: j) B6 s% v2 F  L* g- L; K7 T* U/ X* ~
$ x0 T! Q& J# i# o" R8 s**1** **、第一种方法突破微信登陆投票**. {6 H; K: F% ]! a9 q

5 \5 ]% @, F2 p% y7 q一个微信账号一天投3票之扣别人的票增加自己的余票实现刷票
/ K) }% K2 H$ j( {$ W* v2 u5 k5 m7 ]$ W9 z! F
首先用微信识别老师发来的投票二维码如图:
# v* b2 u* V+ }' j7 X  T% Y5 o7 J" L$ f( b9 R
![image.png](data/attachment/forum/202112/30/134534pzg7kjhhvmcuhpim.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")4 D7 P6 U6 C, J( k0 p. h4 ~

- S4 I6 ^% d# R' K0 M" M2 v使用微信号登陆,不停的放包,直到这里
3 n/ y5 y. p. Q: z( G
  A8 y$ `2 N2 v' b" u![image.png](data/attachment/forum/202112/30/134608bhq1ihzxuigv2g1g.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")
0 `  }, J8 W7 g4 N0 j; e, ~: Q  ]6 @* d- \& S
修改playerIdwei为别人的,因为用自己的playerid,自己的票数为变为-负数,修改num数为负数,如-9999,因为num参数可控,这时候你的票数会多出9999票,别人会少9999票,打个比方如图:
9 B* p" ~" x" @; @" K9 U7 G8 r2 q6 c; b8 Q! c; D1 Q
![image.png](data/attachment/forum/202112/30/134642y5r9rz0q00rob5yb.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")& j0 K. h9 N0 k4 J! y" n; a+ j3 [

  u" k8 n" N& b) y& v
- d$ b7 c/ Z/ Y8 S  O
+ j" S9 S: w: }6 D9 J& s' p9 E: E* Z这时候你就在你的账号不停歇的点投票就行,直到超过第一名,如图:  v1 N$ r: L( B1 F
- d; u0 F- U; a7 A/ x' c
![image.png](data/attachment/forum/202112/30/134740v0yd8lly3ndlojf8.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")
" D. @" f# q$ X4 I- V7 E1 I9 a
* C# q' _' F7 z' @/ D- s. G7 ]3 O5 h/ @( O

# L) k. U2 Z$ g票数瞬间变为1002票,本来一个微信号一天只能投一个选手3票,这时候已经成功突破,秒变1002票。。。
7 d2 _$ m! I+ ?% A# ~: b6 f4 J. @* x
. \1 T3 E' }5 n" L& C  Q以上是第一种方法刷票,扣别人的票,加自己的余票,然后再刷给自己。。。**2 p/ ~+ c: y) |$ U6 m! c9 G
0 R2 \3 }2 W+ }; c9 c
**2** **、**** ** **第二种方法利用** **long** **长整型溢出刷票**
, m0 _0 Q1 O2 h. _2 U6 u# v  g! n: I8 x1 D$ B
同样到这个包,如下:8 \& D, l7 f6 M! K/ D! h
. }9 X! [7 l$ K! a2 p# V
```
8 n4 m' F. m" XPOST /vote/api/wx/voteFree/add HTTP/1.12 {1 L5 h# `6 y
Host: 111.cn9 y6 G- X+ b) T9 ]7 t! z& H# e
Content-Length: 73
+ G; `3 V9 G+ I0 u8 ?( FAccept: application/json, text/javascript, */*; q=0.01
, ]* W1 C8 @% n1 A' L/ K7 S3 }X-Requested-With: XMLHttpRequest8 e% k( @  J5 _" e9 m3 o
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! p4 q' m% Z' L. R# f
token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJqd3QtaWQiOiJvWmZMLXZuandCeWY1MU01Zm1CRlpZV0Z0ZFI4Iiwid3hPcGVuSWQiOiJvWmZMLXZuandCeWY1MU01Zm1CRlpZV0Z0ZFI4Iiwibmlja25hbWUiOiJkaWdleHBsb2l0IiwiZXhwIjoxNjM1MzAwNTY2fQ.0VBEVOvfDLfduF9MPto2D8Ok1Y9C90roMBMQzTn9oL0, i8 {* u% ?6 q% X3 g1 M/ d6 i
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
: B( x3 `; H& K% Y* v0 N; IOrigin: http://111.cn
/ S1 I, p8 f" `2 A& N3 e8 |: dReferer: http://111.cn/welcome/detail.html?activityId=37bd3ad6-38c0-437c-870a-801dc6fed2a7&playerId=139969&skin=default* m) N- K( [6 h: f9 W9 _
Accept-Language: zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.70 S4 u! M# A  T# r1 _) {1 L
Cookie: SESSION=MWE3NDU3NWItM2MzMS00YWJmLTkxZTItNmU2MWQ0NzNhZDk5; token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJqd3QtaWQiOiJvWmZMLXZuandCeWY1MU01Zm1CRlpZV0Z0ZFI4Iiwid3hPcGVuSWQiOiJvWmZMLXZuandCeWY1MU01Zm1CRlpZV0Z0ZFI4Iiwibmlja25hbWUiOiJkaWdleHBsb2l0IiwiZXhwIjoxNjM1MzAwNTY2fQ.0VBEVOvfDLfduF9MPto2D8Ok1Y9C90roMBMQzTn9oL0; appid=wx6656xxoocd3e6xxoo3 t8 {* {$ v: D9 }( i7 Y7 P0 [! T$ _. h/ D
Connection: close
* b9 y" ^0 S' XvoteActivityId=37bd3ad6-38c0-437c-870a-801dc6fed2a7&playerId=139969&num=37 A0 Z  f' B; M  L$ w6 c# r

) q  i1 T4 R2 y8 j8 l: @```8 H. {# \6 b; C3 E" J

* I$ y- K$ D4 B0 p修改num=3333333{},如图:! H7 c. |; P% D( d0 a: H" V

$ P0 i5 z7 N! Z3 H8 z![image.png](data/attachment/forum/202112/30/134946uqvclqqb4vdy8oqt.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")- P+ s) k# r2 y+ a% `6 f+ p

# x+ ^0 P2 d' i: m0 A1 ~* B4 _) b: p

: p4 x) b% i2 ~  _1 W; u( B判断为long长整型,既然num=-333333可控,那我们就把num=-333333改为2的63次方,也就是num=-9223372036854775808,执行完以后,提示500错误,提示超出范围。。。然后微信打开投票二维码就卡半天了,恢复之前如图:- q/ ^$ |, i6 `

, {: M' {( _% j5 L8 g; X![image.png](data/attachment/forum/202112/30/135025yj3ozszo4ggaojgj.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")+ J, [" {5 n% y4 g( D. w* F  m

8 m# Q+ z  _3 ?2 _0 t8 \' R& G  u; h7 k5 S3 k

& F) O9 N4 I* l这是之前测试的时候不小心搞成,所以才有了第二种方法。。。。。: l6 E8 v2 Y0 m) L
, D) D; U9 t& T, L2 q' g6 Y
也就是刷票数为负 -270多万,如上图。。。! p8 W  c0 J* B, U1 c

9 b# Y% \% e3 S' t2 @4 K等溢出恢复以后票数变成15W多,排名第一,如图:
7 H8 }& U+ M8 q/ ]' _  @2 ]* L) }6 V8 v+ ~

1 v* ]) k7 V* L" b( r![image.png](data/attachment/forum/202112/30/135104bemec992s9udxfzd.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")" r  I: }7 c4 m# T6 d, l9 |# ?

# S7 u4 v- _- P% V) V( G/ Z( E- @**注:由于测试过程没有保存录像或图片,导致溢出以后的返回包没能贴图,不过没关系,正负数都试一遍,一般参数可负数的话,直接负的最大溢出量就够了。。。**
* x- {+ B( ~+ Y0 P; C+ x: m0 \[/md]




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