微信投票人工投票刷票

   添加微信号:  

   80165877 

   复制红色数字添加微信

背景:
现在微信公众号的那些投票活动大多是基于openid来进行计算。能刷票的操作无非是有大量的有效openid,或者大量的微信号,或者是其中存在逻辑缺陷等都会产生刷票的业务漏洞。

思路与防御:
信息泄露
目的:从公众号中获取大量的有效openid替换。

说明:公众号中既然有投票活动,那么也有可能存在其他活动,或者存在一些互动评论区等。不管是活动,还是社群都需要粉丝的交流或者发帖,这里面就有可能存在信息泄露漏洞,泄露粉丝的openid。

案例:例如,以往发现的例子:

刷票:将信息泄露得到的openid替换进去,即可继续进行投票,泄露多少openid即可刷多少票。

防御: 全面排查系统是否存在信息泄露漏洞会泄露openid。

逻辑缺陷
说明:openid可以理解为是微信号与公众号通过Oauth认证,由微信号id与公众号id经过加密算法得到一串不规则的加密串,该openid只在这个公众号有效,openid是唯一的,尽管取消后再关注亦是一样,openid不变。所以会普遍用于各类的微信活动,例如投票,签到等。

例子:还是上面那张图

安全缺陷:没有对openid进行有效的判断(逻辑缺陷),导致可伪造openid进行大量刷票。

例如:将openid改成xxxxx也是可以正常投票的,openid=xxxx

这里写出脚本进行投票:

运行:

防御(正确流程):

在该微信通过oauth认证后得到openid,记录进数据库(openid授权库)里。然后以后的各类活动携带过来的openid都需先进openid授权库里查询是否存在再授权参与活动。

大量微信号
说明:这个没什么好说的,这个很明显是黑灰产玩的套路,大量微信号,大量低端手机登录,或者高端机多开微信app,又或者什么微信分身等等登录多个真实的微信后,用按键精灵写逻辑步骤来进行真实的投票。这个就直接模拟人为投票来进行刷票,防不胜防。

防御:

验证码规则。一投票就弹验证码,这个略影响用户体验感,但也未必不可。更好的就是根据策略来弹验证码,比如以投票频率,用户的ip,ua,referer访问频率等等来形成验证码的触发规则,一旦达到设定的规则,就弹验证码要求校验(验证码不能为图片数字验证码,最好是滑动类,计算类,或者拼字类的验证码)。

点赞(0) 打赏
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部