中国网络渗透测试联盟

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

作者: admin    时间: 2021-12-30 13:52
标题: 原创逻辑漏洞测试之用两种方法在微信登陆openid验证情况下下成功刷票
[md]**最近一直在学习逻辑漏洞,偶然看到我家小孩学校组织的投票活动,得知老师组织这次投票活动,我专门向老师申请做一次逻辑漏洞测试,老师说非常欢迎,老师说对我这个玩电脑的家长早有耳闻,于是便有了以下的过程。此测试过程必须1、微信登陆下投票 2、token验证jwt加密,解密发现openid等参数**
3 E# ~# r, ~8 a" p
4 }& ~# O4 a8 L4 C# V) s  A' t% W# s5 c; J5 N* a  n  l  d
**1** **、第一种方法突破微信登陆投票**
. A8 a0 m5 U8 @
4 N( r2 G, G6 B- J' _4 g2 a一个微信账号一天投3票之扣别人的票增加自己的余票实现刷票5 N: I, ?8 \5 S* o% B, h) `; A* y! _8 i

$ }  v- e# G. ?3 N% ?0 `2 ^2 B首先用微信识别老师发来的投票二维码如图:$ s" V! [* }0 m" a6 ~
5 u: o/ C! K& t, p9 J" ^
![image.png](data/attachment/forum/202112/30/134534pzg7kjhhvmcuhpim.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")% N8 x& w  P0 A/ T# N
6 }; e: K8 ?+ ~/ ?' v" ^
使用微信号登陆,不停的放包,直到这里
/ K% A; K; L4 a( k; Y; B: X3 o; e' E; Z. [5 I  u' B/ K2 i
![image.png](data/attachment/forum/202112/30/134608bhq1ihzxuigv2g1g.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")4 g3 c' L! f9 m6 d! s+ ^9 F* a

9 h5 U; j. e" b% ]修改playerIdwei为别人的,因为用自己的playerid,自己的票数为变为-负数,修改num数为负数,如-9999,因为num参数可控,这时候你的票数会多出9999票,别人会少9999票,打个比方如图:; O+ L6 [3 B, i7 y+ C2 ]
1 m  u" k" s( Z; h
![image.png](data/attachment/forum/202112/30/134642y5r9rz0q00rob5yb.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png"); k! Z+ C8 R  A3 e# v2 F

) }2 }5 _( K4 D2 Q
( s8 E) x8 ~) j: w& Y
& l& @. w  z! ~9 V  |这时候你就在你的账号不停歇的点投票就行,直到超过第一名,如图:( a' F& U3 A( N3 ]( N$ }
0 b1 @( h7 _+ d% \* n2 y
![image.png](data/attachment/forum/202112/30/134740v0yd8lly3ndlojf8.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")1 m( E6 X, t6 }
7 S" ^- ?2 F/ T; U1 O: ]

) y; \0 {6 t* t: i" K4 I' _6 D  K% E
票数瞬间变为1002票,本来一个微信号一天只能投一个选手3票,这时候已经成功突破,秒变1002票。。。( d+ }; t: c/ q5 e2 A8 v- S9 Z
2 [+ X% L# h4 v0 i  o' M. y+ V
以上是第一种方法刷票,扣别人的票,加自己的余票,然后再刷给自己。。。**
6 Y# n7 ~( L) b$ N/ ~. H7 T" P  S4 z0 O, }/ U
**2** **、**** ** **第二种方法利用** **long** **长整型溢出刷票**
5 ]! Y' [- a! Q$ p( r+ n6 m) n2 L: Q( |  p9 v; P! C# f
同样到这个包,如下:+ |( `! S3 b& I) X- j: p
  [- u3 c$ A# T) X; H$ e/ D/ A
```5 M: U* @+ g' V! g  }; e, s3 ^8 _
POST /vote/api/wx/voteFree/add HTTP/1.1
% _4 L) Q0 D# v7 d$ A! L4 M' ~Host: 111.cn
# _0 @8 O, y! a; D3 z. `# |Content-Length: 73! {& l6 m% d: v' X' r6 V
Accept: application/json, text/javascript, */*; q=0.01
- d0 Z1 I4 G& B3 _5 H- l; w+ n4 j6 M% |X-Requested-With: XMLHttpRequest
! d3 C" Y/ E/ F) u3 H! QUser-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: a7 g! J7 Z# k1 h
token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJqd3QtaWQiOiJvWmZMLXZuandCeWY1MU01Zm1CRlpZV0Z0ZFI4Iiwid3hPcGVuSWQiOiJvWmZMLXZuandCeWY1MU01Zm1CRlpZV0Z0ZFI4Iiwibmlja25hbWUiOiJkaWdleHBsb2l0IiwiZXhwIjoxNjM1MzAwNTY2fQ.0VBEVOvfDLfduF9MPto2D8Ok1Y9C90roMBMQzTn9oL0
% J9 c4 r$ n2 F; P: k# DContent-Type: application/x-www-form-urlencoded; charset=UTF-82 C( j9 u* S1 o$ S6 d6 N
Origin: http://111.cn( L  ^4 v* [- N& ^2 \: L9 k+ X
Referer: http://111.cn/welcome/detail.html?activityId=37bd3ad6-38c0-437c-870a-801dc6fed2a7&playerId=139969&skin=default- Y4 S1 c: n/ [0 K$ L
Accept-Language: zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7# N) f) g) Q7 t5 v" v
Cookie: SESSION=MWE3NDU3NWItM2MzMS00YWJmLTkxZTItNmU2MWQ0NzNhZDk5; token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJqd3QtaWQiOiJvWmZMLXZuandCeWY1MU01Zm1CRlpZV0Z0ZFI4Iiwid3hPcGVuSWQiOiJvWmZMLXZuandCeWY1MU01Zm1CRlpZV0Z0ZFI4Iiwibmlja25hbWUiOiJkaWdleHBsb2l0IiwiZXhwIjoxNjM1MzAwNTY2fQ.0VBEVOvfDLfduF9MPto2D8Ok1Y9C90roMBMQzTn9oL0; appid=wx6656xxoocd3e6xxoo" z! V9 W. A0 I6 x* |
Connection: close
. s' [) b! \4 {- B+ |. }! OvoteActivityId=37bd3ad6-38c0-437c-870a-801dc6fed2a7&playerId=139969&num=3
9 E% v7 d" K' F% N6 s- h! I/ q9 n. s
```/ K2 j- c8 G% X5 N2 [1 `

' ~: A. n* O6 ^; g9 ~' T修改num=3333333{},如图:& b( ]; _' |/ U+ s9 Z# m2 q
+ z$ ]% z/ }( P$ E8 t' m: b
![image.png](data/attachment/forum/202112/30/134946uqvclqqb4vdy8oqt.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")
6 r1 p: M/ ?, V7 |4 l( w0 S
) l& \0 c! ^7 O# k0 V8 ^4 q, m$ _' L/ ]1 L

# ]$ R1 I. Y0 z# m( x" b判断为long长整型,既然num=-333333可控,那我们就把num=-333333改为2的63次方,也就是num=-9223372036854775808,执行完以后,提示500错误,提示超出范围。。。然后微信打开投票二维码就卡半天了,恢复之前如图:
, a: P5 z; c- v
2 a. l" Y" b, c! Y![image.png](data/attachment/forum/202112/30/135025yj3ozszo4ggaojgj.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")' B# B& U: ?3 |* c/ H

4 g7 c  |" |# d
& d+ F3 K6 W! d) k. Z2 @& d
- n# B5 X% w5 ~! i这是之前测试的时候不小心搞成,所以才有了第二种方法。。。。。
) m! N* j9 j5 P; S
; M0 K+ ?0 S% G0 _- S+ W# ~也就是刷票数为负 -270多万,如上图。。。
/ t* Q! K4 C- o9 E
. `6 ^! D% E7 s/ F等溢出恢复以后票数变成15W多,排名第一,如图:
# ~0 u. G* W4 j, F5 Q7 m: D* E$ r# i8 v8 f

/ p( A$ S+ t" U1 h1 m( O![image.png](data/attachment/forum/202112/30/135104bemec992s9udxfzd.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")! P0 D1 K  {% O2 d3 w9 t- B
. N2 F$ b# M# ]! w% |. x( X
**注:由于测试过程没有保存录像或图片,导致溢出以后的返回包没能贴图,不过没关系,正负数都试一遍,一般参数可负数的话,直接负的最大溢出量就够了。。。**
& y$ b; n) q! _. v, h- ~[/md]




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