中国网络渗透测试联盟

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

作者: admin    时间: 2021-12-30 13:52
标题: 原创逻辑漏洞测试之用两种方法在微信登陆openid验证情况下下成功刷票
[md]**最近一直在学习逻辑漏洞,偶然看到我家小孩学校组织的投票活动,得知老师组织这次投票活动,我专门向老师申请做一次逻辑漏洞测试,老师说非常欢迎,老师说对我这个玩电脑的家长早有耳闻,于是便有了以下的过程。此测试过程必须1、微信登陆下投票 2、token验证jwt加密,解密发现openid等参数**: w0 w, K, F0 D: a/ H; z9 e$ G
  u1 b8 n2 Q, l! [
+ H" I! q$ p3 K* d% j  Y
**1** **、第一种方法突破微信登陆投票**( M- s! ^9 c( L- V7 Z( e2 k5 E
3 B  U0 R& q% `' U1 h3 J
一个微信账号一天投3票之扣别人的票增加自己的余票实现刷票
/ v# I: }% f+ V8 Q0 K" I3 E# S( R! S, p6 H
首先用微信识别老师发来的投票二维码如图:
, ~  {0 n5 g" y# c7 g1 U, K9 u  c$ z. C% t. m) T
![image.png](data/attachment/forum/202112/30/134534pzg7kjhhvmcuhpim.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")( T! s, F$ D7 p1 G. C
+ ^! W+ ~3 N- q: Z
使用微信号登陆,不停的放包,直到这里3 b& K2 D$ e, I' {* v8 P& j* E# z
" z6 R3 ]" X; a) ^
![image.png](data/attachment/forum/202112/30/134608bhq1ihzxuigv2g1g.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")
' L2 ]- L! f1 }, h
3 D" {/ r; M9 X( e. Z' a修改playerIdwei为别人的,因为用自己的playerid,自己的票数为变为-负数,修改num数为负数,如-9999,因为num参数可控,这时候你的票数会多出9999票,别人会少9999票,打个比方如图:$ V# |3 w' Y1 c' B  k
- w% n7 y9 m  k8 p( ]* a* X
![image.png](data/attachment/forum/202112/30/134642y5r9rz0q00rob5yb.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")9 m% T: N+ S/ y' i
. p+ A- k# h1 h
8 X# [/ h' ~8 ~3 @1 \& ^/ H) }3 a) {" V& s

" f' D; s. l- ?+ p7 T+ |这时候你就在你的账号不停歇的点投票就行,直到超过第一名,如图:0 `4 q9 Z6 J8 U- C

& n/ o1 |! i3 \9 W% c- ?![image.png](data/attachment/forum/202112/30/134740v0yd8lly3ndlojf8.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")
* ^  Y  p5 F. S% g! R- P2 y2 |" K% O
7 {7 b8 G" _8 v6 F1 U9 o; t6 i  y* d9 e8 P9 [* `. v* H# |
7 f! [* m7 @! d- d8 q, M2 s
票数瞬间变为1002票,本来一个微信号一天只能投一个选手3票,这时候已经成功突破,秒变1002票。。。
9 t% i0 ^) ?' O/ n; c3 f5 }: E7 N2 `4 I
, N% J2 Y% m* m* P以上是第一种方法刷票,扣别人的票,加自己的余票,然后再刷给自己。。。**
6 L8 Q: D9 r5 U
1 }' I. r: ]  e3 U; t6 s**2** **、**** ** **第二种方法利用** **long** **长整型溢出刷票**
, g% V+ P# d5 [6 t2 L
/ t; t  D6 V( n6 Y/ s同样到这个包,如下:
$ N8 J9 m" b- J, q+ f7 `0 K4 K
: |' U2 B1 ]0 i/ y& b) W! [* n& ?```
, S+ O: D% S4 r+ _8 O% |* A5 \POST /vote/api/wx/voteFree/add HTTP/1.1! g+ d" y8 Y# r
Host: 111.cn( x. |( f8 M; ~
Content-Length: 73
% J0 E- _* E0 M& f4 |9 AAccept: application/json, text/javascript, */*; q=0.01
5 G2 O5 O- S' L1 J* SX-Requested-With: XMLHttpRequest
9 b& W- z- K) E6 _8 eUser-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/arm647 d4 E! {& Y+ D. w. {4 y6 G
token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJqd3QtaWQiOiJvWmZMLXZuandCeWY1MU01Zm1CRlpZV0Z0ZFI4Iiwid3hPcGVuSWQiOiJvWmZMLXZuandCeWY1MU01Zm1CRlpZV0Z0ZFI4Iiwibmlja25hbWUiOiJkaWdleHBsb2l0IiwiZXhwIjoxNjM1MzAwNTY2fQ.0VBEVOvfDLfduF9MPto2D8Ok1Y9C90roMBMQzTn9oL0
" j, g, F0 A6 g; G; d; ?: P7 r: g$ kContent-Type: application/x-www-form-urlencoded; charset=UTF-8
! Y0 n& f9 r. `Origin: http://111.cn
$ a' V: i" O( }5 r0 ?Referer: http://111.cn/welcome/detail.html?activityId=37bd3ad6-38c0-437c-870a-801dc6fed2a7&playerId=139969&skin=default
6 K. @3 b% Q2 T- X, cAccept-Language: zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7: ~' a! a" e" i% a# w
Cookie: SESSION=MWE3NDU3NWItM2MzMS00YWJmLTkxZTItNmU2MWQ0NzNhZDk5; token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJqd3QtaWQiOiJvWmZMLXZuandCeWY1MU01Zm1CRlpZV0Z0ZFI4Iiwid3hPcGVuSWQiOiJvWmZMLXZuandCeWY1MU01Zm1CRlpZV0Z0ZFI4Iiwibmlja25hbWUiOiJkaWdleHBsb2l0IiwiZXhwIjoxNjM1MzAwNTY2fQ.0VBEVOvfDLfduF9MPto2D8Ok1Y9C90roMBMQzTn9oL0; appid=wx6656xxoocd3e6xxoo  `0 o2 u: n7 O& }2 G
Connection: close
: Y) s% t" F5 p5 b) ^& C0 e" `voteActivityId=37bd3ad6-38c0-437c-870a-801dc6fed2a7&playerId=139969&num=38 o1 y6 Y) Q+ |  `
8 L5 Q. N' l( V+ u1 F$ }
```
% w6 W2 p) H* u! U) U. \$ [7 R6 M1 C" b# H
修改num=3333333{},如图:9 Q/ k) K/ B" ?6 s

5 A. r, R8 s7 O1 m% f![image.png](data/attachment/forum/202112/30/134946uqvclqqb4vdy8oqt.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")5 ^4 \+ B9 z3 `- Z/ H
9 g0 ]! X( p3 c, }
6 f! N. }  \! m8 I& _* v; X
& E- |& `: f2 M3 \. i& j
判断为long长整型,既然num=-333333可控,那我们就把num=-333333改为2的63次方,也就是num=-9223372036854775808,执行完以后,提示500错误,提示超出范围。。。然后微信打开投票二维码就卡半天了,恢复之前如图:% l. p- [+ M/ C$ |! s6 a

% d+ T. e( w) X) O![image.png](data/attachment/forum/202112/30/135025yj3ozszo4ggaojgj.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")
5 S, V# d( O. p* j
* Y  F  Z( }/ U9 u: T
' ~& L; L( F1 I2 {8 g8 a- `& Y) U) B1 V
这是之前测试的时候不小心搞成,所以才有了第二种方法。。。。。7 T3 J$ H' f% J0 n- V
7 G3 {1 O  l- Z2 C$ k+ S5 _
也就是刷票数为负 -270多万,如上图。。。
& P# w- X9 Q3 w7 t+ X5 ]3 h( Z+ f- K9 d( `
等溢出恢复以后票数变成15W多,排名第一,如图:4 N* V0 C: F) T2 ^5 F1 m7 R) }

2 d! r9 g! w  H/ D7 T) d1 G) u1 r9 G1 B1 G, o6 w3 S: y
![image.png](data/attachment/forum/202112/30/135104bemec992s9udxfzd.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")6 L  d+ Y6 {4 q: Z) L6 c% Z8 S9 _
0 Z4 W) ?$ C* [
**注:由于测试过程没有保存录像或图片,导致溢出以后的返回包没能贴图,不过没关系,正负数都试一遍,一般参数可负数的话,直接负的最大溢出量就够了。。。**: P# W2 d' C+ Y; W( a1 ?3 O  j
[/md]




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