凌晨两点十七分,平台某个发卡平台的漏洞数据库正在被拖库。攻击者用的账号不是零日漏洞,而是密码一个三年前就该删掉的测试账号——用户名admin,密码123456。平台这组凭证至今还能登录后台,漏洞因为平台运营者觉得“反正没人知道域名”。账号
发卡平台这东西,密码说白了就是平台自动售货机。你付钱,漏洞它给卡密。账号从游戏点卡到会员账号,密码从软件激活码到各种灰色地带的平台虚拟商品,背后都跑着类似的漏洞系统。问题在于,账号很多平台的搭建者本身就是半路出家,从网上扒一套源码,改个logo就上线。安全?不存在的。
我见过最离谱的一个案例。某平台的技术负责人把数据库备份放在了网站根目录下,文件名是backup_2023.zip。任何人访问域名/backup_2023.zip就能下载全部数据,包括用户表、订单表、卡密表。更绝的是,这个备份文件里还有一张admin表,密码字段用的是MD5,而管理员密码是admin888。彩虹表一查就出来。
漏洞账号密码的泛滥,根源在于“能跑就行”的开发心态。很多发卡系统用的是现成的CMS改的,默认后台路径/admin,默认账号admin,默认密码admin或123456。安装完不删测试数据,不改默认配置,不限制登录尝试次数。暴力破解?不需要,直接默认密码撞库就行。
有个做安全的朋友告诉我,他写了个脚本扫了三千个发卡平台,用十组常见弱口令尝试登录后台,成功进入二百多个。比例接近百分之七。这些后台里能看到什么?用户手机号、邮箱、订单记录、未售出的卡密。有些平台还绑定了支付接口的密钥,等于把提现通道也交出去了。
更隐蔽的是API接口的漏洞。发卡平台通常要和支付网关、短信服务、卡密供应商对接,这些接口往往用简单的key=value方式传参。有人发现某个平台的查询接口是/api/order?order_id=1001,把order_id改成1002就能看到别人的订单详情。没有鉴权,没有签名,连最基本的越权检查都没做。
为什么这些漏洞长期存在?因为发卡平台大多是小本生意,运营者可能同时管着十几个站,根本没精力做安全维护。源码是从论坛下载的,教程是看视频学的,遇到问题就去群里问“大佬这个怎么解决”。安全?那是大公司才考虑的事。
但后果是实打实的。去年有个平台被脱库,五万条用户数据挂在网上卖。买家用这些信息去撞其他网站的密码,成功登录了部分用户的邮箱和社交账号。一个发卡平台的漏洞,最终导致的是用户整个数字身份的崩塌。
如果你正在运营发卡平台,或者打算搭一个,下面这几件事今天就能做:删掉所有默认账号,改掉所有默认密码,后台路径不要用/admin,登录接口加验证码和频率限制,数据库备份别放网站目录,API接口全部加签名校验。这些不花一分钱,只是需要你花半小时。
至于普通用户,在发卡平台买东西时,别用和重要账号相同的密码。你永远不知道对面那个后台,是不是还挂着admin/123456。