返回介绍

11.6 投票/积分/抽奖

发布于 2024-10-11 22:07:48 字数 1598 浏览 0 评论 0 收藏 0

投票和抽奖以及积分在很多促销活动或者推广手段上都经常用到,背后的奖品成本可能上数十万,如果这些奖品被恶意用户(黄牛)刷走了,不仅推广的效果没有,而且浪费了成本投入,如图 11-12 所示。

图 11-12

不管是投票、积分还是抽奖,都存在一个共同点:即单个用户次数存在限制,比如一场活动中一个用户只能抽奖一次。这样的限制也会存在很多种绕过方式,下面我们来看一个真实案例,笔者在乌云找了这么一个漏洞:

缺陷编号:WooYun-2014-65631

漏洞标题:设计缺陷导致抽奖功能存在刷次数情况

相关厂商:M1905.COM

漏洞作者:路人甲

我们来看看漏洞情况。首先,注册账号进入 http://t4.m1905.com/ 来到抽奖部分,然后做完两个任务,可以抽两次奖,抽完后页面如图 11-13 所示。

抽完奖之后删除 cookieshared_t42014 和 logind_t42014,刷新页面后即可再次做任务并抽奖,如图 11-14 所示。

图 11-13

图 11-14

从这个案例中可以看到程序是基于 cookie 验证,所以删除相应 cookie 即可绕过限制。

通常抽奖和投票有如下几种利用方法:

1)cookie 或 POST 请求正文绕过。有的应用将验证是否抽奖或者领取积分的判断值放置在 cookie 或者 POST 的请求正文里,服务器端获取到这个结果后判断是否还有机会抽奖,而这个数据我们是可以直接在数据包中修改的,所以就会产生绕过,比如 cookie 中 isok=1 代表已经抽奖,isok=0 代表还没有抽奖,而我们只要再点击抽奖,然后把 isok 的值改为 0 即可一直抽奖。

2)基于 IP 验证。做得比较弱的统计是直接基于 IP 验证,像访问量、推广获取积分等,这类要看程序获取 IP 的方式,如果是 client-ip 或者 x_forword_for 获取 IP,则可以直接伪造 IP 绕过。

3)基于用户认证。也有一部分应用需要登录以后才能抽奖或者投票,这类可以结合看看能不能批量注册,如果可以,则可以用程序实现批量登录刷票,或者投票的时候 POST 包或者 cookie 里面的当前 uid、用户名等是否可以随意修改绕过用户单次限制。

从上面利用手段可以看到主要的三个点是 IP、登录用户 cookie,分析出可用性较高的防御手段如下:

·机器识别码验证,每台机器都可以根据硬件信息生成唯一的识别码。

·操作需要登录,当前用户信息从 session 中读取。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文