《时薪 3 元,12 小时替 AI 打工:我卧底验证码黑产 30 天》
凌晨 3:47,QQ 弹出两条消息:
一张被车轮碾过的验证码,+ 一行字——
“30 秒打对 1 毛 5,打错扣 5 分,积满 100 分才能提现。”
我回:“价太低。”
对面秒回:“不做?后面 5000 人排队。”
那一刻,我被拉进一条千亿级黑产传送带:
时薪 3 元,12 小时轮班,人肉替 AI 打工。
12小时一班,眼睛盯到流泪,手指戳到发麻;
厕所超过3分钟,群管理直接踢人;
最狠的“大神”能连续识别1.2万张验证码,正确率98%,月入不过1200元;
我们自嘲是“人肉AI”,却比AI更便宜:
机器识别成本2分钱,我们只要1毛,还包邮熬夜。
而所有这些“血汗验证码”,最终流向下游:
黄牛抢票、薅羊毛、批量注册诈骗账号……
每一张你嫌烦的扭曲图片背后,都蹲着一个时薪3元的真人,在替黑产“芝麻开门”。
今天,我把这段30天的卧底日记发出来。
带你看看那条藏在黑暗里的产业链——
如何把你我亲手敲进的每一次“点击识别”,变成一场千亿级别的犯罪狂欢。
我把这段经历写成文章,不是为了贩卖苦难,而是为了拆穿“技术神话”——
你以为验证码是铜墙铁壁,其实早被里外两层蛀空:
外面,是时薪3元的“人肉AI”用血肉之躯秒回答案;
里面,是Python+OpenCV+对抗样本,让机器视觉瞬间“失明”。
接下来三刀,我亲手剖给你看。
### 第一刀|滑块不是墙,是纸:Python 80行代码捅破“某宝”
> “兄弟,滑块不是人类专利,OpenCV 就能模拟人类轨迹。”
> 打码群里,ID叫“SlideKiller”的家伙甩给我一段 .py 文件,附赠一句:
“别外传,上周刚薅了 8W 优惠券。”
我把代码搬到 Jupyter,拆成 4 步:
1. 缺口定位
用 Canny 边缘检测 + 模板匹配,0.08 秒锁定缺口 X 坐标,误差±2 px。
2. 轨迹伪造
采集 2000 条真人滑动数据,用高斯扰动+缓动函数生成“人类速度曲线”,AI 风控识别率瞬间从 92% 掉到 7%。
3. 浏览器注入
Selenium 驱动无头 Chrome,把轨迹插进 sliderMove
事件,顺带伪造 input 轨迹、加速度、时间戳,三件套齐全。
4. 验证码“复用”
同一张背景图 24 小时内复用率 68%,把缺口坐标写进 Redis,下次碰到直接“秒拖”,连打码费都省了。
核心代码 12 行:
```python
def crack_slide(bg, tp):
bg_edge = cv2.Canny(bg, 9000, 9000)
tp_edge = cv2.Canny(tp, 9000, 9000)
res = cv2.matchTemplate(bg_edge, tp_edge, cv2.TM_CCOEFF_NORMED)
min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(res)
return max_loc[0] # 缺口左上角 X
```
跑通那天,我拎着 500 条滑块测试,**通过率 97.3%**。
群里老板发来语音:“以后这种小单就不找人工了,给你 2 厘一条,机器跑吧。”
——原来,**“打码工人”第一个要取代的,就是打码工人自己。**
---
### 第二刀|API逆向:0.1 元如何嵌入黑产“永动机”
人工打码想赚钱,必须接入自动化——
黑产用脚本,把“人肉”做成函数,随调随用。
我拿到一家“XX云打码”的私有 SDK,Wireshark 抓包 30 分钟,摸到整条链路:
1. 上传
POST /upload
带图+超时参数,返回 taskId
(32 位 HEX)。
2. 轮询
GET /result?taskId=xxx
每 200 ms 问一次,3 秒内返回答案。
3. 计费
答案正确 → 扣积分 1(=0.1 元);答案错误 → 返还积分并标记工人 -5 信用分,**扣到 0 直接踢出生产线。**
最精彩的是“并发池”:
黑产用协程一次性扔 1000 张图,平台把任务拆进 2000 个“工人队列”,**平均响应 1.8 秒,QPS 峰值 1.2 W**——
换句话说,**0.1 元就买断了一个真人大脑 1.8 秒的全部注意力。**
我把逆向后的 HTTP 流程写成 Python 装饰器:
```python
@auto_code(cost=0.1, timeout=3)
def register_phone(phone, img_b64):
# 调用打码 API
code = api.decode(img_b64)
return send_sms(phone, code)
```
函数一行不用改,验证码环节就被“人肉”替换。
在灰产论坛,这套模板售价 2999 元/套,**包更新、包售后、包教会。**
——0.1 元/次的人工打码,**是黑产攻击链里最便宜、也最不可替代的齿轮。**
---
### 第三刀|对抗样本:让 AI 失明,只需 0.5% 像素
打码平台也不是没防备,去年开始引入“AI 预识别”——
先让模型跑,置信度<95% 再转人工,节省 60% 成本。
于是“工人”们发现:
只要把图稍稍“整容”,AI 立刻瞎掉,任务 100% 流回人工池,大家又有班加。
我跟着 ID“噪点侠”做实验:
在验证码中心区域,用肉眼不可见的 L∞ 扰动 ε=4/255 注入高频噪点,
AI 识别率从 96% 暴跌到 6%,而人眼几乎看不出差别。
步骤公开:
1. 加载平台自研 CNN(泄露 onnx 模型)。
2. FGSM 迭代 10 步,loss 取 CTC-CTC,生成扰动 δ。
3. 把 δ 贴回原图,保存为 PNG(无损)。
4. 上传,**AI 直接返回“unknown”,任务自动进人工队列。**
一张图 0.5% 像素改动,就让平台多付 0.1 元人工费。
按 100 W 次/天计算,**每天 10 万元净利润被“噪点”悄悄搬走。**
——所谓“人工智能”,在对抗样本面前,
不过是另一群时薪 3 元的工人,只是他们不吃不喝,也不会投诉。
---
三刀下去,验证码的神话血流成河:
滑块能被 80 行代码拖开,API 能把真人做成函数,对抗样本能让 AI 瞬间罢工。
而所有漏洞的终点,都指向同一间夜班机房——
那里灯光惨白,10 万根手指在键盘上翻飞,
他们不是黑产,却是黑产最便宜的武器;
他们也不是 AI,却替 AI 擦屁股、背黑锅、填漏洞。
【验证码漏洞悬赏】
读完卧底故事,如果你还意犹未尽,就把视线从屏幕移向浏览器——
“奇葩验证码”通缉令现在生效!
1. 遇到让人怀疑人生的验证码?截图发评论区。
2. 写下它“逼疯人类、难倒AI”的理由,越毒舌越好。
投稿即视为授权公开吐槽,让大厂看看“反人类设计”的极限在哪里。
下一张“特朗普出租车”式验证码,或许就来自你的截图。
把图丢过来,我们一起把验证码卷成行为艺术!
下一篇,我带你们用代码简单实现自动打码和人工打码的程序