逆向网址
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参数,实现上述流程
所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用,并严格遵守相关法律法规,如《中华人民共和国网络安全法》。作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
文章中涉及的程序或方法仅供安全研究与教学之用,严禁用于非法目的,如未经授权的入侵、破解等。若读者将信息用于其他非法用途,由读者承担全部法律及连带责任,相关方不承担任何责任。
未经授权使用文章中的技术资料对任何计算机系统进行非法操作,由此产生的直接或间接后果和损失,均由使用者本人负责。