图片文字识别、图片验证码打码(captcha human bypass)平台

catalogue

1. 打码平台、网赚平台简介
2. 打码平台接入方式
3. 验证码打码平台 API

 

1. 打码平台、网赚平台简介

在互联网业务中,广泛使用图形验证码用于区分人类和机器,使用短信验证码过滤低价值用户及提供二次校验功能,现在很多简单的字符验证码已经不能够有效阻挡机器行为,使用简单的OCR识别工具即可进行识别,稍微复杂的可以结合机器学习等进行高准确率的识别。普通的字符验证码很容易被识别,因而又产生了一些较复杂的验证码,比如如下一些较难通过机器进行识别的

14627248984629.jpg

若想进行恶意注册或批量的机器行为则需要绕过此类的高难度验证码。针对这种需求,人工打码平台就产生了,其通过组织真实的人来进行识别,并提交验证结果

0x1: 运行流程

如果羊毛党要去某网站刷活动优惠券,但该网站有较复杂的图像验证码。通常羊毛党会在打码平台注册账号并充值,并通过打码平台提供的api接口,提交验证码识别。打码平台将验证码分发到各个佣工的客户端里,获取佣工的识别结果,并最终反馈给羊毛党

0x2: 上游网赚平台

很多打码平台需要跟网赚平台进行合作,因为网赚平台的用户量比较大。其发布各种任务供用户参与,并通过金币的形式给用户发放,金币累积一定数量后可进行提现。网赚平台会设有专门的打码模块,里面列举了合作的打码平台

注册帐号后领取工号

0x3: 上码率

上码率是指有效输入占总输入的比例,上码率的高低表现出打码任务发布方克扣剥削打码工作者的程度,上码率的计算方法是

正确率 * 重复率 * (1 - 扣量%) = 上码率
1. 正确率是打码人输入验证码的正确程度,一般在90%左右
2. 重复率是指解码需求量与解码端口在线量的比例,打码人数量如果多于所需求的解码量,自动软件就会将重复信息发送到客户端。这样的话,只有最先输入的端口得到计量(无论对错)
3. 扣量指任务方在所有正确输入计量中扣除的部分,多存在于不正规的打码平台。这是一种隐性的剥削行为,但由于打码兼职缺少监管,因此打码扣量极为严重
//发布方为了掩饰扣量,把扣量等同于上码率,甚至不声张。例如一个打码人的正确率是90%,他所在的打码客户端重复率是80%,而商家的扣量是30%,根据上述公式可得出,该打码人的上码率只有50.4%。这也是为什么打码人正确输入却得不到计量的原因

0x4: 利益链

佣工通过自身劳动,通过网赚平台变现,获得利益;网赚平台与打码平台进行合作,并有利益分成。打码平台将服务进行封装,提供给羊毛党。打码平台的开发者通过开发软件供羊毛党使用。同时羊毛党通过批量的注册、活动优惠等方式从网站进行获利

Relevant Link:

http://www.lezhuan.com/dama/188/
http://baike.baidu.com/view/1739878.htm
http://www.freebuf.com/articles/others-articles/104536.html

 

2. 打码平台接入方式

打码平台的接入分为开发者接入和下游使用者接入

0x1: 开发者接入

这里的开发者可能就是上游网赚平台的运营者,它们需要对接打码平台,提供用于给佣工识别验证码的软件UI界面,软件接收打码平台发来的验证码,显示在UI界面上,佣工通过肉眼方式识别后填写回UI界面,软件再通过API接口返回给打码平台,完成一次打码,现在很多网赚平台都会对接很多的打码平台,针对不同的打码平台提供对应的佣工软件

1. 登录 http://www.ruokuai.com/developer/register.aspx注册开发者账户(选择开发者注册)
2. 登录开发者中心,进入软件管理,添加软件,获取软件ID和KEY
3. 下载API示例程序,进行接入
4. 注册普通用户账号http://www.ruokuai.com/developer/register.aspx(选择用户注册),测试软件
5. 测试完毕,上线

图片

0x2: 使用者接入

使用者就是俗称的"薅羊毛人",通过通过付费使用打码平台提供的服务自动化识别目标网站的各种验证码,进行恶意注册和薅羊毛

1. 登录 http://www.ruokuai.com/home/register 注册用户账户
2. 登录用户中心,自助充值
3. 登录软件使用

用户打码基本流程

Relevant Link:

http://wiki.ruokuai.com/%E5%BC%80%E5%8F%91%E8%80%85%E6%8E%A5%E5%85%A5(%E5%9B%BE).ashx
http://wiki.ruokuai.com/%E7%94%A8%E6%88%B7%E8%BD%AF%E4%BB%B6%E4%BD%BF%E7%94%A8%E6%B5%81%E7%A8%8B(%E5%9B%BE).ashx
http://wiki.ruokuai.com/%E7%94%A8%E6%88%B7%E6%89%93%E7%A0%81%E6%B5%81%E7%A8%8B(%E5%9B%BE).ashx

 

3. 验证码打码平台 API

打码平台提供了SDK和HTTP API两种接入方式,SDK的方式更加容易和后续的薅羊毛业务整合,常用DLL/COM组件形式提供,SDK本质上还是在发起HTTP请求

0x1: 打码兔

Relevant Link:

http://wiki.dama2.com/index.php?n=ApiDoc.AllFunc
http://wiki.dama2.com/
http://www.dama2.com/Index/guide

0x2: 若快打码

1. 发送验证码图片

http://api.ruokuai.com/create.json 
POST:
'username' => '填写你的用户名',
'password' => '填写你的密码',
'typeid' => 3040,    //4位的字母数字混合码   类型表http://www.ruokuai.com/pricelist.aspx
'timeout' => 60,    //中文以及选择题类型需要设置更高的超时时间建议90以上
'softid' => 1,    //改成你自己的
'softkey' => 'b40ffbee5c1cf4e38028c197eb2fc751',    //改成你自己的
'image' => '@'.$filename 

2. 查询打码结果(轮询方式)

http://api.ruokuai.com/info.json 
POST
'username' => '用户名',    //改成你自己的
'password' => md5('密码')

Relevant Link:

http://api.ruokuai.com/
http://wiki.ruokuai.com/%E6%9F%A5%E8%AF%A2.ashx?Code=1

0x3: 优优云

0x4: 联众极速答题

1. 验证码上传(请求方式: post): response直接带结果

http://bbb4.hyslt.com/api.php?mod=php&act=upload
POST:
user_name    联众帐号
user_pw     联众密码
yzm_minlen    验证码最小长度
yzm_maxlen    验证码最大长度
yzmtype_mark    验证码类型
zztool_token    软件Key(或者作者帐号)
upload    验证码图片

返回结果(json格式) 
result    true/false(识别成功或失败)
data(id,val)    id为验证码id,val为结果(或返回失败原因)

成功返回示例: {"result":true,"data":{"id":22973362,"val":6209}}
失败返回示例: {"result":false,"data":"name or pw error"}

2. 识别结果报错(请求方式: post)

http://bbb4.hyslt.com/api.php?mod=php&act=error
POST:
user_name    联众帐号
user_pw     联众密码
yzm_id    验证码id(可从上传结果返回的数据取得)

返回结果示例(json格式)
result    true/false(报错成功或失败)

成功返回示例:{"result":true}
失败返回示例:{"result":false}

3. 查看账户剩余点数(请求方式: post)

http://bbb4.hyslt.com/api.php?mod=php&act=point
POST:
user_name    联众帐号
user_pw     联众密码

返回结果示例(json格式)
result    true/false(查询成功或失败)
data    199999(查询点数为199999或返回错误原因)

成功返回示例:{"result":true,"data":199999}
失败返回示例:{"result":false,"data":"name or pw error"}

Relevant Link:

http://www.uuwise.com/aboutus.html
https://www.jsdati.com/api/6

0x5: 云打码

1. 上传图片接口(只上传,返回验证码cid)

http://api.yundama.com/api.php?method=upload
POST: 
username: 帐号 
password: 密码 
codetype: 类型 
appid: 软件ID 
appkey: 软件KEY 
timeout: 超时 
file: 文件 

返回数据:{"ret":0,"cid":1000000},ret=0则上传成功

2. 获取结果接口(轮询此接口直到有识别结果)

http://api.yundama.com/api.php?method=result
POST:
cid: 验证码(例如1000000)

返回数据:{"ret":0,"text":"abcd"},循环调用此接口直到有识别结果

Relevant Link:

http://www.yundama.com/apidoc/
http://www.yundama.com/download/YDMHttp.html

0x6: 超级鹰

1. 查询题分

http://code.chaojiying.net/Upload/GetScore.php
POST:
user=用户账号
pass=用户密码 //或 pass2=md5('用户密码')
 
返回说明:
err_no,返回代码
err_str,中文描述的返回信息
tifen,题分
tifen_lock,锁定题分

返回样例:{"err_no":0,"err_str":"OK","tifen":821690,"tifen_lock":0}

2. 识别图片

http://upload.chaojiying.net/Upload/Processing.php
POST:
user=用户账号
pass=用户密码 //或 pass2=md5('用户密码')
softid=软件ID
codetype=验证码类型
len_min=最小位数 //默认0为不启用,图片类型为可变位长时可启用这个参数
time_add=附加时间 //默认0为不启用,根据识别难度来增减时间,单位秒
str_debug=开发者自定义信息 //开发者调试用,服务器原样返回
userfile=图片文件二进制流(或是称之为内存流,文件流,字节流的概念) 注:当用这个参数时,POST的上传类型应为 上传文件(multipart/form-data)
file_base64=图片文件base64字符串 注:当用这个参数时,就不要使用 userfile  

返回说明:
err_no,返回代码
err_str,中文描述的返回信息 
pic_id,图片标识ID,推荐按字符串类型保存图片ID
pic_str,识别出的结果
md5,md5校验值,用来校验此条数据返回是否真实有效,算法: md5(软件ID,软件KEY,图片ID,图片结果), 如果算出来的值与返回的值不一致,那么此条数据极有可能被篡改
str_debug,开发者自定义信息

返回样例:{"err_no":0,"err_str":"OK","pic_id":"1662228516102","pic_str":"8vka","md5":"35d5c7f6f53223fbdc5b72783db0c2c0","str_debug":""}

Relevant Link:

http://www.chaojiying.com/api-5.html
http://www.chaojiying.com/api.html

Copyright (c) 2016 Little5ann All rights reserved

posted @ 2017-04-23 10:27  郑瀚Andrew  阅读(1111)  评论(1编辑  收藏  举报