中国网络渗透测试联盟

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

作者: admin    时间: 2021-12-30 13:52
标题: 原创逻辑漏洞测试之用两种方法在微信登陆openid验证情况下下成功刷票
[md]**最近一直在学习逻辑漏洞,偶然看到我家小孩学校组织的投票活动,得知老师组织这次投票活动,我专门向老师申请做一次逻辑漏洞测试,老师说非常欢迎,老师说对我这个玩电脑的家长早有耳闻,于是便有了以下的过程。此测试过程必须1、微信登陆下投票 2、token验证jwt加密,解密发现openid等参数**+ _( |7 F3 @" h6 v& E
; h( N. w, S: |/ i9 a9 C% J6 N; v; e9 e% k2 Z
& ]& W' p  k) f8 u6 A4 J
**1** **、第一种方法突破微信登陆投票**; Z0 d) a, m+ G' L$ x, z! Q) u
2 R/ J! t/ z' I& s7 m3 S: R
一个微信账号一天投3票之扣别人的票增加自己的余票实现刷票# k$ [- J& S. \, L6 y
5 z3 y) n; F* _% Q: n5 B
首先用微信识别老师发来的投票二维码如图:  G' k5 t* _% H5 B

' R3 C/ r; J. L! W; Z![image.png](data/attachment/forum/202112/30/134534pzg7kjhhvmcuhpim.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")
' i: V" e: m+ w4 _( u8 R
# L; u, g, a( O' u' i. p# Q使用微信号登陆,不停的放包,直到这里, d. T! i3 p" w5 L. P. [5 }0 P. K  J- F4 j

1 ?8 W- g9 x7 U( }6 M  J7 g![image.png](data/attachment/forum/202112/30/134608bhq1ihzxuigv2g1g.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")# j; j) R+ E: P' G, U6 R4 [

( h% H7 A0 ?: u. [% w2 l修改playerIdwei为别人的,因为用自己的playerid,自己的票数为变为-负数,修改num数为负数,如-9999,因为num参数可控,这时候你的票数会多出9999票,别人会少9999票,打个比方如图:
6 m3 _: M3 K$ _# `2 K  w7 ^% J* o
# y' B* {0 b8 P![image.png](data/attachment/forum/202112/30/134642y5r9rz0q00rob5yb.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")
, w; ~9 \: B- z7 O
8 r$ \+ C$ Q. [" A  T3 l, w! A5 q. Z- T5 |6 r; N. ?

5 v  C$ A4 \5 ~, A$ Q- M这时候你就在你的账号不停歇的点投票就行,直到超过第一名,如图:
7 n* }, z. T( m" s$ Y. s0 V
7 B/ }3 i% O/ `( A) g+ l![image.png](data/attachment/forum/202112/30/134740v0yd8lly3ndlojf8.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")
. s8 B- A8 Q# G$ t: L, u: U+ ?- _! U; b9 |2 _' @  R

6 s6 B2 T: L! i  s6 z5 C/ p- Y' p9 V% F( t
票数瞬间变为1002票,本来一个微信号一天只能投一个选手3票,这时候已经成功突破,秒变1002票。。。; H& \/ T) ]# A9 V: I5 t
! s. A6 t  Q+ H. U! L# b, f
以上是第一种方法刷票,扣别人的票,加自己的余票,然后再刷给自己。。。**. M" r; U  h0 r+ i) C9 u
  Q- Q, ]! {/ n
**2** **、**** ** **第二种方法利用** **long** **长整型溢出刷票**
6 M* a  I# C! J/ i  O1 x
& L/ R  A! n- k* G: m0 H$ z同样到这个包,如下:
' g- i8 ~* k* N9 k) w
% c+ Y. e5 J' b* a/ t# P```
+ F  D1 Z3 R9 C: L* K8 s  ePOST /vote/api/wx/voteFree/add HTTP/1.11 \, _+ L/ ]8 \" L: M
Host: 111.cn
0 Z" }+ Q; `) B9 @) LContent-Length: 73
/ I2 S9 K- E* L, K6 n3 dAccept: application/json, text/javascript, */*; q=0.01! @$ J& c1 H+ g! H* t
X-Requested-With: XMLHttpRequest( u# C  k) Z1 A6 `3 l
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$ u  S4 U( ~4 y! ]; d- _1 `  V
token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJqd3QtaWQiOiJvWmZMLXZuandCeWY1MU01Zm1CRlpZV0Z0ZFI4Iiwid3hPcGVuSWQiOiJvWmZMLXZuandCeWY1MU01Zm1CRlpZV0Z0ZFI4Iiwibmlja25hbWUiOiJkaWdleHBsb2l0IiwiZXhwIjoxNjM1MzAwNTY2fQ.0VBEVOvfDLfduF9MPto2D8Ok1Y9C90roMBMQzTn9oL0
% T+ ?0 _6 O, Z0 i/ P) AContent-Type: application/x-www-form-urlencoded; charset=UTF-8
" Z9 q# S0 N% ]9 e) xOrigin: http://111.cn5 ~+ h% ?1 z% ]! P5 K
Referer: http://111.cn/welcome/detail.html?activityId=37bd3ad6-38c0-437c-870a-801dc6fed2a7&playerId=139969&skin=default5 s  G( U) v$ J! ?4 M2 O
Accept-Language: zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7, i: R5 B; P) v, V6 `% e
Cookie: SESSION=MWE3NDU3NWItM2MzMS00YWJmLTkxZTItNmU2MWQ0NzNhZDk5; token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJqd3QtaWQiOiJvWmZMLXZuandCeWY1MU01Zm1CRlpZV0Z0ZFI4Iiwid3hPcGVuSWQiOiJvWmZMLXZuandCeWY1MU01Zm1CRlpZV0Z0ZFI4Iiwibmlja25hbWUiOiJkaWdleHBsb2l0IiwiZXhwIjoxNjM1MzAwNTY2fQ.0VBEVOvfDLfduF9MPto2D8Ok1Y9C90roMBMQzTn9oL0; appid=wx6656xxoocd3e6xxoo$ c' f0 Q: W1 C  g" H4 ?% i( x' _
Connection: close; ]& `( J! C, v/ O
voteActivityId=37bd3ad6-38c0-437c-870a-801dc6fed2a7&playerId=139969&num=3
7 l6 l" L  R: w1 O6 P
( r5 S# e  z9 {6 C' G2 T6 e* ^3 u1 R```
9 D9 Q! U) y: E" C( f% [8 s0 A
8 Q5 @, D  e& x' C0 k修改num=3333333{},如图:7 ?# k2 ?) x) x0 T1 {# d

% ?, N7 h# B' f- ~, X, D" x![image.png](data/attachment/forum/202112/30/134946uqvclqqb4vdy8oqt.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")
, F! q/ F: d/ [. d* ~( `8 B/ b1 m) e4 H' w- T6 p% t

& V; `; E- ]  F6 ^. c* I, n8 ~1 m1 I
# K' A1 w0 p* Q判断为long长整型,既然num=-333333可控,那我们就把num=-333333改为2的63次方,也就是num=-9223372036854775808,执行完以后,提示500错误,提示超出范围。。。然后微信打开投票二维码就卡半天了,恢复之前如图:& q  z3 Y" s# g6 k

( g3 X5 {5 T$ q4 x$ s7 ~![image.png](data/attachment/forum/202112/30/135025yj3ozszo4ggaojgj.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")8 S1 a$ L/ K0 ^: s

: X9 G  @& M9 J, U
# G: \! _) y7 P1 A! I- j
- ?- L+ P4 {" h" m! f( F$ b4 B这是之前测试的时候不小心搞成,所以才有了第二种方法。。。。。
& ?& r) }4 k4 g) s
( n' b9 P/ r7 @0 q( T# [7 M- r' b也就是刷票数为负 -270多万,如上图。。。
1 h, X  h9 ?; h9 _" Z; Z. N5 h* P1 O) B3 R
等溢出恢复以后票数变成15W多,排名第一,如图:
6 |0 _! A' x3 M8 [2 b5 H
& b# g* B' B4 f% s$ B
6 ^6 x. N. D& \+ |8 q1 g![image.png](data/attachment/forum/202112/30/135104bemec992s9udxfzd.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png"): E7 ~$ R8 D, V

6 q* ^( W) w4 X" P) v* {: N**注:由于测试过程没有保存录像或图片,导致溢出以后的返回包没能贴图,不过没关系,正负数都试一遍,一般参数可负数的话,直接负的最大溢出量就够了。。。**/ _3 I+ @# _* P' d7 R4 A# N
[/md]




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