中国网络渗透测试联盟

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

作者: admin    时间: 2021-12-30 13:52
标题: 原创逻辑漏洞测试之用两种方法在微信登陆openid验证情况下下成功刷票
[md]**最近一直在学习逻辑漏洞,偶然看到我家小孩学校组织的投票活动,得知老师组织这次投票活动,我专门向老师申请做一次逻辑漏洞测试,老师说非常欢迎,老师说对我这个玩电脑的家长早有耳闻,于是便有了以下的过程。此测试过程必须1、微信登陆下投票 2、token验证jwt加密,解密发现openid等参数**- u$ G% n4 a* A
- a$ x4 z  I& \
# b; _2 N7 _9 z. ]  u7 O( k
**1** **、第一种方法突破微信登陆投票**- M* [2 c5 C' x
' l0 B$ ?2 v' T/ Y6 n2 F& z* F: k  F
一个微信账号一天投3票之扣别人的票增加自己的余票实现刷票& e5 T" i7 J5 q# R0 b+ A
* q3 v3 U4 T* l
首先用微信识别老师发来的投票二维码如图:, B* g2 N/ s/ @8 `0 h
# i; A, t/ p/ @. f! N
![image.png](data/attachment/forum/202112/30/134534pzg7kjhhvmcuhpim.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")
, X1 {& Y, R3 o; z& N( D
" t8 R/ b, Q( Y3 C/ y/ u  f* B0 z使用微信号登陆,不停的放包,直到这里# J/ C0 Q2 C2 M" b# T3 u* V$ w
4 p' b7 G2 A8 @
![image.png](data/attachment/forum/202112/30/134608bhq1ihzxuigv2g1g.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")5 `6 d1 ^/ j  m: x  U  [3 v3 r

2 U* {  X  |; q9 q2 |修改playerIdwei为别人的,因为用自己的playerid,自己的票数为变为-负数,修改num数为负数,如-9999,因为num参数可控,这时候你的票数会多出9999票,别人会少9999票,打个比方如图:
7 x  c! {- y- g
+ O- ?+ L  p  F+ K3 F! J4 l: q![image.png](data/attachment/forum/202112/30/134642y5r9rz0q00rob5yb.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")
& q3 L" K; }7 E& u5 ~
0 p: ~$ k# ^, n4 X7 L" e
/ ~; ^& D+ o5 g- B6 d0 S" F+ d6 I3 ]4 q4 u6 O
这时候你就在你的账号不停歇的点投票就行,直到超过第一名,如图:
1 `: d0 G: a+ _) S) S4 X
. H3 Z& t8 `# m- @![image.png](data/attachment/forum/202112/30/134740v0yd8lly3ndlojf8.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")% U$ n% }8 s6 M: K

. Q7 Y, p9 o+ C  k" M2 o0 t, Q  d$ Y9 b( z) e
. i+ n% H' `6 c+ d% D2 k2 D
票数瞬间变为1002票,本来一个微信号一天只能投一个选手3票,这时候已经成功突破,秒变1002票。。。
5 P' B, p0 P$ N( `6 A2 [; u" E! n0 i* ]" Q
以上是第一种方法刷票,扣别人的票,加自己的余票,然后再刷给自己。。。**6 }, E, g2 w4 C; _

0 _3 H) o' f6 g: X. y**2** **、**** ** **第二种方法利用** **long** **长整型溢出刷票**3 t+ g* @1 |+ B: V) Y

  O% a) o; F3 o/ B8 @) C同样到这个包,如下:# v/ H7 y" E! ^) |$ g* ^2 d0 l5 i) t

! {) A+ @! ^1 U. a8 O7 a```7 H4 w( |) [3 J! U# \$ }
POST /vote/api/wx/voteFree/add HTTP/1.1
. W: d: b/ l1 V% t) s% |3 ^2 PHost: 111.cn
& w, W; Q5 |. tContent-Length: 73
5 u- u, L/ ^% J' @' GAccept: application/json, text/javascript, */*; q=0.01
+ }8 ]" r' |% G& I( xX-Requested-With: XMLHttpRequest  S- k5 S. j4 Z4 Q3 L+ P
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
( _% t% m- G( Ptoken: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJqd3QtaWQiOiJvWmZMLXZuandCeWY1MU01Zm1CRlpZV0Z0ZFI4Iiwid3hPcGVuSWQiOiJvWmZMLXZuandCeWY1MU01Zm1CRlpZV0Z0ZFI4Iiwibmlja25hbWUiOiJkaWdleHBsb2l0IiwiZXhwIjoxNjM1MzAwNTY2fQ.0VBEVOvfDLfduF9MPto2D8Ok1Y9C90roMBMQzTn9oL0
2 k$ B7 V7 @# g% i% h7 \* ]Content-Type: application/x-www-form-urlencoded; charset=UTF-8
' p2 p; `* ]9 cOrigin: http://111.cn" ?9 O* h$ a/ w
Referer: http://111.cn/welcome/detail.html?activityId=37bd3ad6-38c0-437c-870a-801dc6fed2a7&playerId=139969&skin=default
; a  f. H" O3 f7 T7 A' uAccept-Language: zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7
. q7 @( s2 f+ @/ p: o' o, A2 q" nCookie: SESSION=MWE3NDU3NWItM2MzMS00YWJmLTkxZTItNmU2MWQ0NzNhZDk5; token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJqd3QtaWQiOiJvWmZMLXZuandCeWY1MU01Zm1CRlpZV0Z0ZFI4Iiwid3hPcGVuSWQiOiJvWmZMLXZuandCeWY1MU01Zm1CRlpZV0Z0ZFI4Iiwibmlja25hbWUiOiJkaWdleHBsb2l0IiwiZXhwIjoxNjM1MzAwNTY2fQ.0VBEVOvfDLfduF9MPto2D8Ok1Y9C90roMBMQzTn9oL0; appid=wx6656xxoocd3e6xxoo) Q2 L6 v; \. S- D" h
Connection: close) J6 p' x% F/ A% H  D) b
voteActivityId=37bd3ad6-38c0-437c-870a-801dc6fed2a7&playerId=139969&num=3
8 m6 k4 {% W7 V# g, {2 D# m; a& X1 @
```
% k' u0 f6 L4 h) C# B/ k0 d
7 r4 |1 A6 Q. b' Y) {修改num=3333333{},如图:1 x1 M: N/ o* b, ^# `
$ i0 \: x2 n5 e  ]
![image.png](data/attachment/forum/202112/30/134946uqvclqqb4vdy8oqt.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")/ _9 H2 e8 d, l

8 H0 w' L: s5 {5 Y9 g3 T
) r! M" i8 p, V9 P# m+ q; C! q# B! v$ x4 J3 P& L- f
判断为long长整型,既然num=-333333可控,那我们就把num=-333333改为2的63次方,也就是num=-9223372036854775808,执行完以后,提示500错误,提示超出范围。。。然后微信打开投票二维码就卡半天了,恢复之前如图:
. b% P& X+ ?( j6 c5 E+ Z
% w: H& d! }  q5 Q' T![image.png](data/attachment/forum/202112/30/135025yj3ozszo4ggaojgj.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")2 ]5 b' l# K9 [# {4 w" g7 w
! s6 o. I' B* T! w# [. x

/ b) E- }- z+ |7 ]# c. O+ m: q
2 ?; c% ~) @0 ^7 J9 J这是之前测试的时候不小心搞成,所以才有了第二种方法。。。。。/ ~) m) c2 p3 {* p6 j5 w$ ?

" \, _3 ~- G& ^3 h+ |也就是刷票数为负 -270多万,如上图。。。2 @: D, y+ ?* I! }

: Q6 r7 o7 h, _6 V等溢出恢复以后票数变成15W多,排名第一,如图:6 \* Y9 r( P8 s4 I# W2 I6 x

) P& w) n- ~2 i5 O7 {6 {8 k  y1 _2 q" e6 M! e' j& [9 T5 @
![image.png](data/attachment/forum/202112/30/135104bemec992s9udxfzd.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")
; A4 z, t6 {( ]: B* x& N+ d9 A9 r3 |1 e7 i
**注:由于测试过程没有保存录像或图片,导致溢出以后的返回包没能贴图,不过没关系,正负数都试一遍,一般参数可负数的话,直接负的最大溢出量就够了。。。**1 Y1 B" s" Q; }8 U+ x
[/md]




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