0x00 背景
何为扫号(黑产术语),通俗讲就是拿别人网站的数据库,尝试当前想要破解用户账户的网站。
自从csdn的明文600万,到猫扑,天涯,多玩,7k7k等陆续爆出密码,扫号大军慢慢从地下逐步显现出来。已然成为当前账户安全的第一大杀手。没错,是第一。
诚然支付宝数据库再严密,也无法抵挡账户被扫的命运。
WooYun: 支付宝某接口存在安全隐患可被利用撞库(有证明)!
诚然京东没有显示被脱裤,也无奈放出扫号账号密码对其的一番炒作。
那么对于用户和开发者,对扫号有好的办法吗?
0x01 防御
对于用户而言,最好每个网站密码不同,当然这个需要极高的安全意识,和良好的用户习惯。
比如京东账号在原有密码前可以加jd,或者在后面加。支付宝可以加zfb等方式。
对于开发者而言,又有什么好办法呢? 首先要开发者要意识到,道高一尺,魔高一丈。扫号问题是2方的不断比拼,下面从基本的几个地方对于开发者进行一个普及。
1 完全无验证码,且ip访问无限制。
2 密码输入错误几次出现验证码,但是对于不断更换账号登陆即不会出现验证码
3 页面不刷新验证码无限次使用
4 判断用户cookies某值是否访问过,只要请求不带cookies就能绕过
5 主站有验证码,但是wap,移动客户端都没有,直接通过拦截请求可绕过
6 https对防扫号基本无用,只是传输加密
以上几点只是抛砖引玉,逻辑漏洞开发人员尽量避免。扫号无非就是通过如下几点来达到验证账户的目的。
1 无验证码和访问限制直接扫号
2 通过逻辑漏洞绕过已有验证码策略扫号
3 控制时间频度扫号
4 不断更换ip进行扫号
5 识别验证码进行扫号
开发者在防御上也可以基于上面几点。
下面介绍某大型电商网站的一个例子
希望能对用户和开发者警示。(电商账户被盗事件相信都已进入大伙视线)
某大型电商网站某接口没有做限制,无验证码(当然单个账号错误几次后有)
某工具参数化后发现不少账号密码已经成功
登陆尝试可以登陆
希望不管还是用户,开发都能够看完此篇后,对于账户安全有一定重视,没有2方的共同努力,安全都是空谈,就好比用户密码都用排名前10的如123456,520520。安全的建设也需要用户的共同进步。