卓伊凡上一篇写了 关于uid转手机号这个事情,我们非常详细地深入剖析整个黑色产业链的第一步:数据的源头——非法获取。
这一步是整个链条的基石,没有这一步获取的原始数据,后续所有的“解密”和查询都无从谈起。它主要包含两种核心技术手段:拖库 和 撞库。
一、 拖库
“拖库”顾名思义,就是像从仓库里把货物整个拖走一样,攻击者利用技术手段,将网站或APP服务器整个数据库(或大部分)窃取出来。
1. 目标与内容
- 目标:任何存储了用户信息的网络服务平台,包括但不限于中小型网站、论坛、早期的大型平台、安全防护薄弱的企业系统。
- 窃取内容:用户注册表。理想情况下,这条数据包含:
- 用户名/UID:该用户在该平台的唯一身份标识。
- 手机号:最核心的资产,可能是明文,也可能是加密存储。
- 邮箱:同样重要的身份标识。
- 密码:极少是明文,通常是以“哈希值”的形式存储。
- 其他:注册IP、时间、用户昵称等。
2. 技术手段详解(黑客如何做到)
攻击者会像侦探一样,寻找系统最薄弱的环节。
- a. Web应用漏洞攻击(最主流)
- SQL注入:这是“拖库”的经典之王。
- 原理:网站在处理用户输入(如搜索框、登录名)时,没有进行严格过滤,导致攻击者可以将一段恶意的“SQL代码”作为输入提交给服务器。这段代码会被数据库误认为是正常的查询指令并执行。
- 举例:一个正常的登录查询是
SELECT * FROM users WHERE username = '用户输入的名字' AND password = '用户输入的密码'。攻击者可以在用户名的输入框里输入:' OR 1=1 --。那么最终查询语句就变成了:SELECT * FROM users WHERE username = '' OR 1=1 -- ' AND password = 'xxx'。 - 解释:
OR 1=1是一个永远为真的条件,--在SQL中表示注释,后面的内容都被忽略。这条语句的意思就变成了“从用户表中选取所有数据”,数据库的所有用户记录就被一次性窃取出来了。高级的SQL注入甚至可以直接让数据库将数据导出到文件。
- 文件包含漏洞:利用程序动态调用文件时的缺陷,让服务器执行或泄露敏感文件(如数据库配置文件
config.php,里面通常直接写着数据库的地址、用户名和密码)。 - 远程代码执行:更严重的漏洞,攻击者可以直接在服务器上执行任意系统命令,相当于拿到了服务器的最高控制权,可以直接复制整个数据库文件。
- b. 服务器系统漏洞攻击
- 攻击者不直接攻击网站程序,而是攻击运行网站的底层操作系统(如Windows Server, Linux)。如果系统补丁未及时更新,存在已知漏洞,攻击者可以利用这些漏洞提升权限,从而访问服务器上的所有文件,包括数据库。
- c. 社会工程学与内部威胁
- 钓鱼攻击:伪造管理员邮箱,向公司IT人员发送钓鱼邮件,诱骗其登录假的“管理后台”,从而窃取账号密码。
- 内部人员泄密:公司内部拥有数据库访问权限的员工(如DBA、开发人员)被收买或出于报复,直接将数据库复制带走。这是最难防范的。
3. 拖库后的数据处理
拖库得到的密码,99%不是明文。平台会用哈希算法(如MD5, SHA-1, bcrypt)进行处理。
- 哈希的特性:单向不可逆(无法从哈希值反推密码)、唯一性(输入不同,输出必不同)。
- 黑产的对策:
- 彩虹表攻击:预先计算海量常用密码的哈希值,形成一个庞大的“密码-哈希值”对应表,然后直接去库里匹配。
- 撞库:这正是我们下一步要讲的。即使不知道哈希密码的原文,也不妨碍他们用“手机号-密码”的组合去其他网站尝试。
二、 撞库
“撞库”是利用已经泄露的用户名和密码组合,批量、自动化地尝试登录其他网站的行为。它的成功率取决于人们在多个平台使用相同账号密码的习惯。
1. 核心逻辑
前提:从A网站拖库得到了 手机号A:密码P 的组合。
假设:用户在小红书(B网站)也使用 手机号A 和 密码P 注册。
行动:用 手机号A 和 密码P 去尝试登录小红书。如果登录成功,则成功建立了 小红书UID 与 手机号A 的关联。
2. 技术流程详解
这是一个高度工业化和自动化的过程。
- a. 准备“饲料”:
- 将从各个渠道拖库得来的数据(即“社工库”的原始数据)进行清洗整理,形成格式统一的“账号-密码”对列表,通常是
手机号/邮箱 : 密码明文/密码哈希的文本文件。
- b. 配置撞库工具:
- 黑产使用专门的自动化工具,如“撞库机”、“HTTP请求发包器”。
- 编写脚本:他们会分析目标网站(如小红书)的登录接口(API)。弄清楚登录时需要提交哪些参数(如
phone_number,password,token等)、请求的URL地址是什么、返回结果如何判断成功(如返回特定JSON字段{“code”: 0})或失败。
- c. 隐匿与突破防线:
- 代理IP池:为了防止因单一IP频繁登录而被封禁,他们会使用庞大的代理IP池。每次登录请求都通过一个不同的、来自世界各地的代理IP发出,使得攻击流量看起来像正常的分布式用户访问。
- 伪造User-Agent:模拟不同浏览器、手机设备的标识。
- 识别与绕过验证码:
- 低级验证码:简单的数字字母验证码,可以使用OCR(光学字符识别)技术自动识别。
- 复杂验证码(滑动拼图、点选文字等):这会引出另一个黑色产业——“打码平台”。撞库程序在遇到验证码时,会将其截图发送到打码平台,平台背后有真人码工或高级AI模型进行识别并返回答案,整个过程在几秒内完成,无缝衔接回撞库流程。
- d. 自动化攻击与结果筛选:
- 工具开始以极高的并发量,不断从“饲料”列表中读取账号密码,通过代理IP,向目标网站的登录接口发起登录请求。
- 工具根据预设的规则(如HTTP状态码、返回的JSON数据)自动判断登录成功与否。
- 成功的结果:会被单独标记和保存下来,形成一份新的、价值更高的数据——《小红书UID与手机号对应关系表》。这份数据会被整合进社工库。
总结第一步
拖库是开矿,是从源头获取原始矿石(混杂的用户数据)。
撞库是炼金,是利用这些矿石去其他矿山(其他平台)进行试探和冶炼,最终提炼出高纯度的黄金(特定平台的UID与手机号的准确关联)。
正是通过这种“矿源”+“冶炼”的循环和积累,黑产才能建立起那个足以通过UID查询手机号的、看似神奇的“社工库”。这一切的基础,都建立在对计算机信息系统的非法侵入和对公民个人信息的非法获取之上,是彻头彻尾的犯罪行为。