中国网络渗透测试联盟

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

作者: admin    时间: 2021-12-30 13:52
标题: 原创逻辑漏洞测试之用两种方法在微信登陆openid验证情况下下成功刷票
[md]**最近一直在学习逻辑漏洞,偶然看到我家小孩学校组织的投票活动,得知老师组织这次投票活动,我专门向老师申请做一次逻辑漏洞测试,老师说非常欢迎,老师说对我这个玩电脑的家长早有耳闻,于是便有了以下的过程。此测试过程必须1、微信登陆下投票 2、token验证jwt加密,解密发现openid等参数**
: P/ m) M0 M$ z, o' o2 k# g  `. k9 [9 @! j4 v0 l5 }# i9 t
+ C+ P& j2 g1 p) r
**1** **、第一种方法突破微信登陆投票**; Q2 Z: ~6 g8 ~! B$ u' X, ~) y
: c9 ?( k. p: t
一个微信账号一天投3票之扣别人的票增加自己的余票实现刷票
7 b2 y# ^3 B5 A7 A5 B9 ~9 h
# ^3 X! f4 ~2 D首先用微信识别老师发来的投票二维码如图:
& U1 c5 }9 h; q- ^8 ]4 d% n% F+ h
# \5 `- m6 h& n. w/ t9 t![image.png](data/attachment/forum/202112/30/134534pzg7kjhhvmcuhpim.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")
2 t* b, f2 C* M8 U" c0 ^! Z9 @0 `3 A' F
使用微信号登陆,不停的放包,直到这里
, }1 I; l* v' u9 _* _# }& X& u& P/ H8 ]
![image.png](data/attachment/forum/202112/30/134608bhq1ihzxuigv2g1g.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")
) s5 W4 m  d8 ~& I* b
  Y* b' s8 G4 @; h3 O修改playerIdwei为别人的,因为用自己的playerid,自己的票数为变为-负数,修改num数为负数,如-9999,因为num参数可控,这时候你的票数会多出9999票,别人会少9999票,打个比方如图:
, _; h( G" U  F2 L) l# p" b
4 ~, F0 g3 r) G+ f' q  k* l![image.png](data/attachment/forum/202112/30/134642y5r9rz0q00rob5yb.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")
$ S# t4 O- ]9 s+ V" p% _
( F8 t1 t" v5 B  c6 O: f
' Y2 ?2 d6 Q- ]7 g0 O' z$ `' m8 g9 Z4 w
这时候你就在你的账号不停歇的点投票就行,直到超过第一名,如图:% @4 W  a4 h* f. @0 y! ~

0 y3 V6 _, j5 \  U% }. N. k4 W% C( S- h![image.png](data/attachment/forum/202112/30/134740v0yd8lly3ndlojf8.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")
* S8 W; j! w' v) Y( ?* l) L
1 u) y( z7 ^4 J2 N& |) H3 E- P. B  G% _: p

; y/ K: q7 T, U, q票数瞬间变为1002票,本来一个微信号一天只能投一个选手3票,这时候已经成功突破,秒变1002票。。。
( G9 `" z; H; G' }* P4 K% I' `4 \# J: |% Y' a7 i
以上是第一种方法刷票,扣别人的票,加自己的余票,然后再刷给自己。。。**6 y# i8 d# j+ c7 Z. O
# ^; C9 a! f$ p& G; d2 m, V
**2** **、**** ** **第二种方法利用** **long** **长整型溢出刷票**7 A9 B& \# z, V! O. j) ^
$ i0 ~: F3 A+ D- t
同样到这个包,如下:0 ~6 n7 E& `( I- L9 z

! R$ U. E' ~' R: H3 u" B  k5 k  C9 P```
4 r% ~1 Z; G1 W1 Y, F, dPOST /vote/api/wx/voteFree/add HTTP/1.1. _3 I7 b7 l' S* L9 T
Host: 111.cn: d, s2 K0 w/ F) D" H9 l
Content-Length: 73
7 G: i/ a: K2 a. {. }- c, NAccept: application/json, text/javascript, */*; q=0.01
6 J& Z1 W1 E  F7 l( _, xX-Requested-With: XMLHttpRequest
9 V' I; i: @& w2 W# |( OUser-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
, D6 f7 y. N+ ztoken: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJqd3QtaWQiOiJvWmZMLXZuandCeWY1MU01Zm1CRlpZV0Z0ZFI4Iiwid3hPcGVuSWQiOiJvWmZMLXZuandCeWY1MU01Zm1CRlpZV0Z0ZFI4Iiwibmlja25hbWUiOiJkaWdleHBsb2l0IiwiZXhwIjoxNjM1MzAwNTY2fQ.0VBEVOvfDLfduF9MPto2D8Ok1Y9C90roMBMQzTn9oL0
$ f& q: i0 ^7 |1 r8 cContent-Type: application/x-www-form-urlencoded; charset=UTF-8* `6 I& A: W# y! U1 L
Origin: http://111.cn8 q1 H1 O8 v& d$ O! p
Referer: http://111.cn/welcome/detail.html?activityId=37bd3ad6-38c0-437c-870a-801dc6fed2a7&playerId=139969&skin=default. J6 H" I+ ?( d
Accept-Language: zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7( T% T0 R8 f1 S- D. e
Cookie: SESSION=MWE3NDU3NWItM2MzMS00YWJmLTkxZTItNmU2MWQ0NzNhZDk5; token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJqd3QtaWQiOiJvWmZMLXZuandCeWY1MU01Zm1CRlpZV0Z0ZFI4Iiwid3hPcGVuSWQiOiJvWmZMLXZuandCeWY1MU01Zm1CRlpZV0Z0ZFI4Iiwibmlja25hbWUiOiJkaWdleHBsb2l0IiwiZXhwIjoxNjM1MzAwNTY2fQ.0VBEVOvfDLfduF9MPto2D8Ok1Y9C90roMBMQzTn9oL0; appid=wx6656xxoocd3e6xxoo, N2 o' u! l% T
Connection: close" z  a* c" J2 Q0 e7 x# l4 u
voteActivityId=37bd3ad6-38c0-437c-870a-801dc6fed2a7&playerId=139969&num=3& W, \0 ^8 x1 g% N
# j: c  E* b3 i
```
. M; E9 \; S# t7 N: N
! f- X% q; t$ z) E. o7 Y& ^1 O$ B6 @修改num=3333333{},如图:
5 |8 |  f) c2 p, @
) Q, g+ v! S! f/ A![image.png](data/attachment/forum/202112/30/134946uqvclqqb4vdy8oqt.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")
5 ~' P. g8 m2 \& Y- X9 k4 W/ P& d8 {$ P: Y; e$ ^; s( ]/ }
, I& b0 P# d; c

0 ~5 \, s  a! w( D& Y判断为long长整型,既然num=-333333可控,那我们就把num=-333333改为2的63次方,也就是num=-9223372036854775808,执行完以后,提示500错误,提示超出范围。。。然后微信打开投票二维码就卡半天了,恢复之前如图:  H( X3 c* [5 A
* J, N1 t! Q$ M) ^& Z( H. j
![image.png](data/attachment/forum/202112/30/135025yj3ozszo4ggaojgj.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")5 }+ j# A) K1 a! P3 N) I3 v
  @" i; _: {* t$ g5 T

- w+ s& m! o$ l5 D/ U3 T) q# j! }  u0 w. [, [
这是之前测试的时候不小心搞成,所以才有了第二种方法。。。。。$ m$ G; m- }8 f: y+ t+ C0 y+ n! Z

5 g  r  n3 |9 w+ s* T* J8 y也就是刷票数为负 -270多万,如上图。。。4 c" e, c8 E' t3 b$ \

8 p+ R+ {5 v% u' m% W等溢出恢复以后票数变成15W多,排名第一,如图:4 m9 {, m6 \# T: ]. C

% l' i" ?$ K  e5 M0 f
1 K6 F  s* _$ P' D![image.png](data/attachment/forum/202112/30/135104bemec992s9udxfzd.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png"); i0 t$ i1 {2 k$ o3 ?/ u

. F( A. t- n1 O# e& ]( Y* ?**注:由于测试过程没有保存录像或图片,导致溢出以后的返回包没能贴图,不过没关系,正负数都试一遍,一般参数可负数的话,直接负的最大溢出量就够了。。。**
# m9 |! x- l0 X8 I  H" T[/md]




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