大家好,我是阿爬!这里是讲述阿爬和阿三爬虫故事的爬友圈
登陆逆向系列文章目录预览:
第二期:某房产平台登陆逆向分析之加密参数函数入口定位
第三期:某房产平台登陆逆向分析之w加密参数跟踪
上一期我们分析了整体请求流程,这一期我们主要对三个阶段的加密参数的函数入口做一个定位分析
— Part 1 —
初始化阶段
1.gatherSdkConfig、gatherData 接口d、k参数
方法:找到对应接口,复制接口到xhr断点中,重新发起请求,断住后搜索关键字即可
断住后可打印一下结果,然后跟接口的值做一个对比,看是否正确
2.gatherSdkConfig请求头contentn-md5
此加密入口也可直接搜索关键字定位
— Part 2 —
滑块验证阶段
1.resouce接口token
此参数也可在对应js文件中直接搜索,首先找到的是一个赋值位置,向上找其生成的位置会定位到上图所示位置
2.get.php接口w参数
此参数生成逻辑由于是混淆过的,因此有快速版本和笨办法;
-快速方法:将代码进行在线转码,然后搜索‘w’:找到位置,复制后面的代码,再到源码中去搜索定位,把有的地方都打上断点,然后执行流程看断点断在哪里即可。
-笨办法:在Initiator里面找堆栈,然后一步一步跟踪
3.ajax.php接口w参数
第一次请求中的w无法直接通过搜索关键字定位到其值生成入口,此时必须跟堆栈,看最终的赋值在哪里,这个过程需要点耐心。
第二次请求中的w在另一个js中,点击Initiator就能看到,搜索方式相同;
— Part 3 —
最终验证阶段
1.pre-validate接口token生成方式和resource接口中的token相同, 因此只需在第一次生成的时候保留,然后此接口使用时带入即可
2.addWithOutIam接口signature
对接口打上xhr断点,堆栈向上找,直接搜就可以找到函数入口。
也可以直接在Initiator中找到对应js文件,然后直接搜关键字即可。
— Part 4 —
最终的话
在函数入口定位中,滑块验证阶段相比是比较繁琐一点的。
如果没有进行代码的转码操作, 可能定位时间会拉长,因为需要在Initiator堆栈中的很多地方打上断点,然后再跟踪,看哪里是符合结果。
各参数函数入口找到后,剩下的工作就是调试扣代码,下一期我们就对关键的参数做代码的跟踪和还原。
特别声明:本文章只作为学术研究,作为其他不法用途;如有侵权请联系作者删除。