中国网络渗透测试联盟

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

作者: admin    时间: 2021-12-30 13:52
标题: 原创逻辑漏洞测试之用两种方法在微信登陆openid验证情况下下成功刷票
[md]**最近一直在学习逻辑漏洞,偶然看到我家小孩学校组织的投票活动,得知老师组织这次投票活动,我专门向老师申请做一次逻辑漏洞测试,老师说非常欢迎,老师说对我这个玩电脑的家长早有耳闻,于是便有了以下的过程。此测试过程必须1、微信登陆下投票 2、token验证jwt加密,解密发现openid等参数**4 e$ J' M) s5 _6 m
+ K- J: {2 D- V7 i# A
; M$ {& v  H; V( s! L4 z- M
**1** **、第一种方法突破微信登陆投票*** j$ x5 s9 \* C
8 m. ?4 C& t/ W" U$ d+ D
一个微信账号一天投3票之扣别人的票增加自己的余票实现刷票; k" H* h* Z- H% M2 r$ C& t4 @
' o( V% i' o4 R6 L- H, J
首先用微信识别老师发来的投票二维码如图:
9 T" U% U$ D0 j- u" R; R( w0 ~
" P4 i" p0 R8 z4 B# L( m3 R![image.png](data/attachment/forum/202112/30/134534pzg7kjhhvmcuhpim.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")
# C/ S, {$ b' V3 U5 b0 W7 |
, R  t* w& C* F7 l' {! n使用微信号登陆,不停的放包,直到这里
; N3 a2 l( E8 T$ ^: r& G- `7 y, [
% O, L1 I7 _! I![image.png](data/attachment/forum/202112/30/134608bhq1ihzxuigv2g1g.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")
; ?9 r1 q% E: U8 v' H* [/ n  D, C+ ?9 C" s2 L$ Z
修改playerIdwei为别人的,因为用自己的playerid,自己的票数为变为-负数,修改num数为负数,如-9999,因为num参数可控,这时候你的票数会多出9999票,别人会少9999票,打个比方如图:& \5 U7 z+ e  u$ G

8 b) u5 M/ j* e; R/ d![image.png](data/attachment/forum/202112/30/134642y5r9rz0q00rob5yb.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")* i& I3 N' Z, I  g, \+ j* U- _

7 J. J3 r8 V2 W
0 p% X8 J6 O# R) J- E4 t; k
: T2 T1 |2 C1 Q$ c" ?这时候你就在你的账号不停歇的点投票就行,直到超过第一名,如图:. L0 ]# T; h/ I) n; P4 }

4 t% S2 m# y; m![image.png](data/attachment/forum/202112/30/134740v0yd8lly3ndlojf8.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")
2 D  ]& D# n/ T. R
4 M6 p. C) O* L( F% y0 U6 p+ z% C$ B, ]- Y' e0 F: C# S

. s5 g/ ^- X, W* Y& I4 e9 U& ^票数瞬间变为1002票,本来一个微信号一天只能投一个选手3票,这时候已经成功突破,秒变1002票。。。
3 C/ W7 u) k- G3 N7 c8 k1 ]0 w7 M# Q: G8 m- W& e
以上是第一种方法刷票,扣别人的票,加自己的余票,然后再刷给自己。。。**
& c' s9 R, c6 g7 y, V/ U
0 R9 u! W% \( Q9 G& o**2** **、**** ** **第二种方法利用** **long** **长整型溢出刷票**! R3 K4 a9 Z, \4 m  k

' s, M3 w7 v9 i+ q# ^2 u0 w' G/ n同样到这个包,如下:
2 ]  I) ?2 J! g- {- M$ O) I4 m6 O+ `) c* Q8 C$ X2 ^
```
& A: @* j  b! b- |1 VPOST /vote/api/wx/voteFree/add HTTP/1.1, j/ K: o: j1 ?1 Q6 c3 o6 h
Host: 111.cn5 F7 a$ o4 ~( s
Content-Length: 733 I# D; u% u9 Q3 n0 d$ Y
Accept: application/json, text/javascript, */*; q=0.01
( Q  O- p/ J$ K& s2 LX-Requested-With: XMLHttpRequest. c9 b9 J- R, n1 j" k6 O& B, R* R
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! j' Z6 ^% H  J" M) ?9 \
token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJqd3QtaWQiOiJvWmZMLXZuandCeWY1MU01Zm1CRlpZV0Z0ZFI4Iiwid3hPcGVuSWQiOiJvWmZMLXZuandCeWY1MU01Zm1CRlpZV0Z0ZFI4Iiwibmlja25hbWUiOiJkaWdleHBsb2l0IiwiZXhwIjoxNjM1MzAwNTY2fQ.0VBEVOvfDLfduF9MPto2D8Ok1Y9C90roMBMQzTn9oL0
$ {5 k2 Q" }- N4 e$ A' X$ w& IContent-Type: application/x-www-form-urlencoded; charset=UTF-8
9 _" ?, A  C/ U; U9 W" b; HOrigin: http://111.cn
* w6 \6 l, f- m/ _Referer: http://111.cn/welcome/detail.html?activityId=37bd3ad6-38c0-437c-870a-801dc6fed2a7&playerId=139969&skin=default
5 D; t# i) |+ v: {7 N. K+ o$ ]Accept-Language: zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7
* S2 }& M4 J( X+ WCookie: SESSION=MWE3NDU3NWItM2MzMS00YWJmLTkxZTItNmU2MWQ0NzNhZDk5; token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJqd3QtaWQiOiJvWmZMLXZuandCeWY1MU01Zm1CRlpZV0Z0ZFI4Iiwid3hPcGVuSWQiOiJvWmZMLXZuandCeWY1MU01Zm1CRlpZV0Z0ZFI4Iiwibmlja25hbWUiOiJkaWdleHBsb2l0IiwiZXhwIjoxNjM1MzAwNTY2fQ.0VBEVOvfDLfduF9MPto2D8Ok1Y9C90roMBMQzTn9oL0; appid=wx6656xxoocd3e6xxoo
5 \/ D& L& t8 \+ r) J4 y% @Connection: close" c9 f. s& v! u- G5 Q
voteActivityId=37bd3ad6-38c0-437c-870a-801dc6fed2a7&playerId=139969&num=36 w  g" b+ n0 i% n

3 R3 _! H  u  B% Y' V  T```
  a& C$ [) ^, H! ]5 O. C9 Y
& C) i$ O7 p" [修改num=3333333{},如图:" d$ [1 _5 G1 \8 E5 E

$ w* C" n' J1 t* h; x0 c![image.png](data/attachment/forum/202112/30/134946uqvclqqb4vdy8oqt.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")
( B$ o" l' s% J. t/ K
2 D% B3 i) ]1 R
8 C9 {. k( L9 O7 O/ n
7 S0 c5 R0 G" Q/ o- N( c, V判断为long长整型,既然num=-333333可控,那我们就把num=-333333改为2的63次方,也就是num=-9223372036854775808,执行完以后,提示500错误,提示超出范围。。。然后微信打开投票二维码就卡半天了,恢复之前如图:4 g, ~7 F1 X7 u3 P8 z- }2 c5 m) q( Y

( W# j; v4 T& c, j: S![image.png](data/attachment/forum/202112/30/135025yj3ozszo4ggaojgj.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")
. r' N; ~: W; R% [
) q6 D1 y4 T' F# D8 E& @: R( A2 i" O+ w, D8 v. m

( Y' K6 D" w5 C  r, l7 m4 R. A7 f  i这是之前测试的时候不小心搞成,所以才有了第二种方法。。。。。* Z# q. J$ V" R0 ^# O( A

4 q/ \# F' ?. f  v7 q! w: @也就是刷票数为负 -270多万,如上图。。。
) a3 f5 R) R+ n0 x# H" J
8 \# B5 Z) F; j) T等溢出恢复以后票数变成15W多,排名第一,如图:
1 c- y: m: e; e
4 W7 L6 L$ ]1 s: X. S7 G2 E& P7 k$ B! q: U3 Y# Q
![image.png](data/attachment/forum/202112/30/135104bemec992s9udxfzd.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")
# W/ P7 _1 x/ R+ J5 [
9 c( l% {6 |1 O+ s. ]: A**注:由于测试过程没有保存录像或图片,导致溢出以后的返回包没能贴图,不过没关系,正负数都试一遍,一般参数可负数的话,直接负的最大溢出量就够了。。。**3 M& [7 F- |0 G( \; q8 S( I# O
[/md]




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