中国网络渗透测试联盟

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

作者: admin    时间: 2021-12-30 13:52
标题: 原创逻辑漏洞测试之用两种方法在微信登陆openid验证情况下下成功刷票
[md]**最近一直在学习逻辑漏洞,偶然看到我家小孩学校组织的投票活动,得知老师组织这次投票活动,我专门向老师申请做一次逻辑漏洞测试,老师说非常欢迎,老师说对我这个玩电脑的家长早有耳闻,于是便有了以下的过程。此测试过程必须1、微信登陆下投票 2、token验证jwt加密,解密发现openid等参数**
/ @! D8 r' f5 b) ]* \0 {
/ Z  ~8 }3 v0 W+ \+ N: h
. g  b, y/ M2 c' V**1** **、第一种方法突破微信登陆投票**
1 [' F' u3 M- K( D1 t. [8 J) M& A
/ J. h. B( k! {9 n* t一个微信账号一天投3票之扣别人的票增加自己的余票实现刷票6 o% {9 b; U! a5 S! b

3 P6 ^! _7 n7 d0 n2 z4 T首先用微信识别老师发来的投票二维码如图:
* j; G" f/ d8 z6 h
# ~$ b3 ~6 ^! ?2 _![image.png](data/attachment/forum/202112/30/134534pzg7kjhhvmcuhpim.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")
7 H: z/ O( F: R/ F# l- d. y; g6 G
+ e! m4 b2 K1 E: o& P, X使用微信号登陆,不停的放包,直到这里
: k7 I( l8 g. U2 a, F3 C
; c% }+ T5 R0 @, l, ]' G![image.png](data/attachment/forum/202112/30/134608bhq1ihzxuigv2g1g.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")
: v, z6 Z0 m7 P$ y
1 p4 v* A6 t; U) X$ x: H* q9 A4 P修改playerIdwei为别人的,因为用自己的playerid,自己的票数为变为-负数,修改num数为负数,如-9999,因为num参数可控,这时候你的票数会多出9999票,别人会少9999票,打个比方如图:& p3 T/ p; s2 k4 H' u
+ Y8 F3 _( N! ^5 d1 n, _( o( G
![image.png](data/attachment/forum/202112/30/134642y5r9rz0q00rob5yb.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")
8 S7 c9 K( w5 j* g
. T; l/ Q, i2 i& Y$ L2 b' c) a8 g
# Q. ^5 X0 b0 l7 B- b, r9 j
这时候你就在你的账号不停歇的点投票就行,直到超过第一名,如图:
, l% P, I- o5 e/ Q7 n2 E
8 ?! i$ q& K# z9 x8 S![image.png](data/attachment/forum/202112/30/134740v0yd8lly3ndlojf8.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")  L5 q5 C  F5 W$ p$ R) p
" a  K: c& Q3 G, {& d
+ z  G, I5 l/ y2 G) W
% ~3 k3 o. q& ~2 T
票数瞬间变为1002票,本来一个微信号一天只能投一个选手3票,这时候已经成功突破,秒变1002票。。。% W! k8 s5 p* Q- j3 f: F) R8 }
2 p7 C0 B! U" @
以上是第一种方法刷票,扣别人的票,加自己的余票,然后再刷给自己。。。**
( t. ?& _8 F( }* R) I6 x) E/ ?  x  c% }5 q$ |1 P0 V0 C
**2** **、**** ** **第二种方法利用** **long** **长整型溢出刷票**
3 `% Z1 }! E: S& G& i
/ {. b5 n/ T- F1 I同样到这个包,如下:
6 P- k5 I: P% |2 j, _1 j6 \' C; E' C' t6 x4 r, l4 ?
```1 |( d% C/ T% V; M6 K/ S
POST /vote/api/wx/voteFree/add HTTP/1.1$ x" l1 C% t4 t' A4 Y* c: P
Host: 111.cn
8 E) d8 X( g+ r. Z5 yContent-Length: 73$ o) e5 t1 b: r8 [# d+ c) @8 J' D* z
Accept: application/json, text/javascript, */*; q=0.01
0 f5 }7 l" h9 u7 nX-Requested-With: XMLHttpRequest" M+ @( w$ R* R' P- [7 h5 `1 _
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
: _; X. H  I% X" x0 ntoken: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJqd3QtaWQiOiJvWmZMLXZuandCeWY1MU01Zm1CRlpZV0Z0ZFI4Iiwid3hPcGVuSWQiOiJvWmZMLXZuandCeWY1MU01Zm1CRlpZV0Z0ZFI4Iiwibmlja25hbWUiOiJkaWdleHBsb2l0IiwiZXhwIjoxNjM1MzAwNTY2fQ.0VBEVOvfDLfduF9MPto2D8Ok1Y9C90roMBMQzTn9oL02 d" w# c' \# k& }/ Q
Content-Type: application/x-www-form-urlencoded; charset=UTF-83 Y; Y0 o: l, D0 m9 y
Origin: http://111.cn3 I5 f+ c% r- p- y/ \
Referer: http://111.cn/welcome/detail.html?activityId=37bd3ad6-38c0-437c-870a-801dc6fed2a7&playerId=139969&skin=default1 S$ \: c8 B2 [
Accept-Language: zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7( H; M/ I% |4 j/ t% a9 E
Cookie: SESSION=MWE3NDU3NWItM2MzMS00YWJmLTkxZTItNmU2MWQ0NzNhZDk5; token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJqd3QtaWQiOiJvWmZMLXZuandCeWY1MU01Zm1CRlpZV0Z0ZFI4Iiwid3hPcGVuSWQiOiJvWmZMLXZuandCeWY1MU01Zm1CRlpZV0Z0ZFI4Iiwibmlja25hbWUiOiJkaWdleHBsb2l0IiwiZXhwIjoxNjM1MzAwNTY2fQ.0VBEVOvfDLfduF9MPto2D8Ok1Y9C90roMBMQzTn9oL0; appid=wx6656xxoocd3e6xxoo
4 o* `! L  x5 v. R8 vConnection: close% M; W  R7 @" G: x* }3 q7 N9 B+ U
voteActivityId=37bd3ad6-38c0-437c-870a-801dc6fed2a7&playerId=139969&num=3
7 _9 z. ^# w3 ]
1 P+ `# H" D0 T```3 D3 i& p2 e4 s/ E  S

( K$ p% `, p2 T# ^. t6 U修改num=3333333{},如图:6 X$ I1 f# F8 |$ o, c- e4 ?

. f7 q% t  T* g3 I" e6 i& c![image.png](data/attachment/forum/202112/30/134946uqvclqqb4vdy8oqt.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png"), U# c5 d0 g3 [" v

; l/ Y3 R6 ~% X2 f& v$ k
" y  n1 Y7 r+ q- |5 G6 `
& J4 R. \8 U" E4 Q1 {; p判断为long长整型,既然num=-333333可控,那我们就把num=-333333改为2的63次方,也就是num=-9223372036854775808,执行完以后,提示500错误,提示超出范围。。。然后微信打开投票二维码就卡半天了,恢复之前如图:
) J% a+ |+ U  L, c: I/ d/ p' q
/ t2 A0 p/ Q' b1 f( X8 |![image.png](data/attachment/forum/202112/30/135025yj3ozszo4ggaojgj.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")
! ]( _. R7 P) x: h7 w) M/ \$ C# A
0 u) d8 i8 Q* y9 T, A! H" l) @
* g8 D8 A% D7 Q
; C3 C0 L7 ?; ]- F这是之前测试的时候不小心搞成,所以才有了第二种方法。。。。。1 R1 P7 t( ~$ H# }) ?

9 C) s1 U# c1 z8 x& u: Q也就是刷票数为负 -270多万,如上图。。。  }1 B/ \5 n1 M" E
, o0 F: [, H9 f! [" O8 l. v
等溢出恢复以后票数变成15W多,排名第一,如图:
1 [! e* L  u" @7 X
# }' @5 j9 i; J5 N) B6 U' I5 ^
1 m8 E6 j$ ^% M; i+ D5 K& h7 P![image.png](data/attachment/forum/202112/30/135104bemec992s9udxfzd.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")
% g$ S$ Q0 D( H" A$ N6 z. Q* ]. l! F4 @
**注:由于测试过程没有保存录像或图片,导致溢出以后的返回包没能贴图,不过没关系,正负数都试一遍,一般参数可负数的话,直接负的最大溢出量就够了。。。**
6 p( G7 q2 E4 j3 L* u6 U9 e8 g[/md]




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