豆瓣逆向登录【补环境协议逆向某讯验证码】(二)collect参数定位分析

483 阅读3分钟

 第一步:打开网址,刷新浏览器,删除浏览器的cookie

​编辑

注意:图上的账号和密码是随便乱填的

第二步:点击登录,出现验证码,并拖动滑块验证码

​编辑

​编辑

此接口即为滑块验证码的验证接口,我们通过启动器跟栈分析

​编辑

第三步:点击send的调用堆栈,在如下位置下一个断点

​编辑

第四步:跟栈

(1)重新请求验证码,并让其在我们之前所下的断点断住

​编辑

(2)在调用堆栈一步一步向上调试,查看我们所需要的collect参数的出现在哪个位置,最终在t.verify找到我们所需要的参数

​编辑

(3)可以看到a即时我们所需要的collect参数的生成位置,我们步入到生成他的函数o.getTdcData()当中

​编辑

豆瓣的腾讯验证码并未对轨迹进行验证,i"default为固定值'q__7Pf__H',a函数步入为​编辑

(4)分析调用逻辑:

1、使用window.TDC.setData({ft:"q__7Pf__H"})注册轨迹

2、使用window.TDC.getData(!0)获取collect参数

接下来我们只需要分析window.TDC对象是如何生成的

第五步:window.TDC对象的生成

(1)删除验证码,勾选事件侦听器的脚本(script)断点,重新点击登录按钮,可以看到每次登录的具体流程

1、首先注册了一个对象,这个验证码信息的对象是服务器返回的,在登录流程篇文章有讲解具体参数的作用和具体的验证码的信息

​编辑

2、然后通过这个脚本注册了window.TDC对象,同样也是服务器返回的,在执行之前window.TDC为undefined,执行之后window.TDC便被赋值

​编辑

​编辑

(2)因此我们只需要向服务器请求这个立即执行函数,并通过补环境的方法令其成功执行即可在本地注册window.TDC对象并调用生成相应的collect参数

具体的请求接口为:

​编辑

经过测试,即时不需要带相应的参数也能请求请求成功

​编辑

上述即是豆瓣滑块验证码的collect参数生成的具体流程,通过跟栈分析实现

具体的调用代码如下:

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
        }
    ])
}
console.log(getCollectAndTlg())

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

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

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