豆瓣逆向登录【补环境协议逆向某讯验证码】(一)登录流程

逆向网址

aHR0cHM6Ly9hcHAuZGlhbmRpYW4uY29tL3JhbmsvYW5kcm9pZA==

登录流程分析

首先我们进入指定的网址中,打开开发者工具并刷新网页,得到如下页面

接下来,我们需要把浏览器的所有应用程序信息给清除掉(主要是cookie)

随后我们点击登录(注意切换到账号密码登录)

第一步:请求basic接口,返回腾讯验证码的接口参数appId

携带的参数为redir:网址,name:账户,password:密码

响应体如下图所示,其中tc_app_id是我们请求下一个prehandle接口的参数

第二步:请求prehandle接口,返回验证码的详细信息

具体参数的含义:

sess:验证码错误第二次验证码的信息

tdc_path:注册window.TDC对象的立即执行函数的url地址

prefix:最终请求powAnswer参数的nonce和target

md5:最终请求powAnswer参数的nonce和target

登录流程中该接口返回的最需要注意的参数如上

第三步:请求tdc.js接口,返回注册window.TDC对象的立即执行函数

该函数笔者采用补环境的方法执行于node中

第四步:通过注册的window.TDC函数获取破解腾讯验证码的参数collect,esk,tlg

具体调用方法如下

window.TDC.setData({
    "ft": "q__7Pf__H"
});
function getCollectAndTlg() {
    collect = decodeURIComponent(window.TDC.getData(!0))
    return {
        collect: collect,
        tlg: collect.length
    }
};
function getEsk() {
    return window.TDC.getInfo().info
}
function getAns(coordinates) {
    return JSON.stringify([
        {
            "elem_id": 1,
            "type": "DynAnswerType_POS",
            "data": coordinates
        }
    ])
}


window.TDC.setData({
    "ft": "q__7Pf__H"
});
function getCollectAndTlg() {
    collect = decodeURIComponent(window.TDC.getData(!0))
    return {
        collect: collect,
        tlg: collect.length
    }
};
function getEsk() {
    return window.TDC.getInfo().info
}
function getAns(coordinates) {
    return JSON.stringify([
        {
            "elem_id": 1,
            "type": "DynAnswerType_POS",
            "data": coordinates
        }
    ])
}

第五步:前端powAnswer和calTime参数的加密

第六步:缺口验证码识别

本次采用captcha_recognizer.recognizer的Recognizer函数对缺口验证码识别,缩放比例大致为

data = str(round(box[0] * 374 / 397.5)) + "," + str(round(box[1] * 107 / 129))

第七步:ans参数的生成,其中coordinates是验证码的缺口位置

function getAns(coordinates) {
    return JSON.stringify([
        {
            "elem_id": 1,
            "type": "DynAnswerType_POS",
            "data": coordinates
        }
    ])
}

第八步:携带collect以及如下参数请求https://turing.captcha.qcloud.com/cap_union_new_verify,得到返回的ticket参数以及randstr参数

第九步:携带ticket参数以及randstr参数重新请求basic接口,即可完成登录

上述即是豆瓣逆向登录的具体流程,接下来的几天时间我将一步一步带着大家如何补环境,如何逆向powAnswer参数以及calTime参数,实现上述流程

所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用,并严格遵守相关法律法规,如《中华人民共和国网络安全法》。作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。

文章中涉及的程序或方法仅供安全研究与教学之用,严禁用于非法目的,如未经授权的入侵、破解等。若读者将信息用于其他非法用途,由读者承担全部法律及连带责任,相关方不承担任何责任。

未经授权使用文章中的技术资料对任何计算机系统进行非法操作,由此产生的直接或间接后果和损失,均由使用者本人负责。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小爬菜…

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值