某房产平台登陆逆向分析之w加密参数跟踪

​大家好,我是阿爬!这里是讲述阿爬和阿三爬虫故事的爬友圈

登陆逆向系列文章目录预览:

    第一期:某房产平台登陆逆向分析之接口流程分析

    第二期: 某房产平台登陆逆向分析之接口流程分析

    第三期:某房产平台登陆逆向分析之w加密参数跟踪

上一期我们做了加密参数的函数入口定位,这一期我们主要滑块验证阶段的3次w参数生成做跟踪和还原

Part 1

get.php接口w参数

根据函数入口图可以看到w是由i+r得到的,需要分别去跟踪这两个结果是如何生成的,整个过程采用补环境和扣代码的形式

1.r值跟踪

只调用了一个$_CCHF()函数,跟进内部函数可以看到调用了一个函数(图)

实际上是创建一个X对象,调用了encrypt方法,然后传入了一个16位的字符串,最后返回了一个256位的字符串,跟进encrypt函数在最后的地方可以看到最终结果(图)

中间会对传入的字符串做一些逻辑处理,缺啥补啥就可以搞定,整体r的生成逻辑不复杂。

2.o值跟踪

跟踪o是因为生成i时需要传入它,根据入口函数图得出整体逻辑是创建一个对象,调用其encrypt1方法(下图)传入两个参数

第一个参数是调用ge的stringify方法(下图),此方法传入了一个对象生成,这个对象需要构造;

第二个参数传入的是一个16位的字符串,和生成r时传入的16位的字符串相同;

--stringify方法参数构造

根据图和多次尝试得出此对象有些值是可以固定写死,红色圈出的是重点。

i是指纹,其具体生成的函数在$_BGHe

此函数代码较多,需要单步跟踪,看一下值具体有哪些,其中需要补一些环境,多点耐心就可以搞定

至于stringify、encrypt1方法跟进直接扣代码就是,没有特别需要注意的,最终o值是一个大数组。

3.i值跟踪

i结果生成的核心函数是$_HCh(图)

此函数需要处理this指向的对象,可以采用补环境的思想,看i的哪些函数被调用,补相应函数即可

至此w参数就跟踪完毕,在实际js代码中可还原相应变量名,方便跟踪调试

Part 2

ajax.php接口第一次w参数

通过跟堆栈一步一步定位到图所示位置,此时的w会被赋值到i的$_CEEK属性中

整个过程需要重点关注3点:

1.指纹对象

此处的指纹对象需要和get.php生成w时的指纹保持一致, 此处的n已经是对指纹对象的值进行了拼接的结果,使用""magic data""拼接

2.a数组

简单改变后

这个过程采用补环境和扣代码结合的方式,将需要的函数和对象补齐,在此就不继续跟了

3.格式化检测点

解决方法就是不要对自执行函数o进行格式化

Part 3

ajax.php接口第二次w参数

根据入口函数图可以看出w的生成方式和get.php的生成方式类似,这里需要跟踪h和u值的生成逻辑

1.u值跟踪

跟进u生成的实际函数

其逻辑是创建一个U对象调用其encrypt方法,传入一个16位的字符串,最后生成一个256位的字符串

2.l值跟踪

l值的逻辑其实和get.php生成w中的o值逻辑是一样的,不一样的是需要特殊处理gt的stringify函数的参数o对象

--o对象跟踪,需要关注2个重点

A.轨迹字符串生成

从图知道e即为轨迹生成的字符串,其生成的函数在$_BBEI函数

此函数传入了三个参数第一个是处理过的轨迹字符串是由$_FDL函数对轨迹数组进行处理得到

第二个和第三个是第二次get.php接口返回的c值和s值

B.格式化检测

解决方案:此次检测在window[$_CAIAj(771)]这个函数中调用了StJC函数,StJC函数再对格式化做检测,在扣代码时不要对Rbfk和StJC这个函数格式化即可;

o对象中还有H函数和$_CCCP函数直接跳转到定义处直接复制即可,在调试时看哪些值是可以固定的就改一下即可

o对象只要补完那么l值就基本没啥难度了

3.h值跟踪

h生成逻辑的核心函数在$_FCc

逻辑和get.php生成w中的i值相似,直接扣代码,同样是缺啥补啥即可

至此整个w生成逻辑跟踪完毕

Part 4

最终的话

总结:

1.在指纹对象生成逻辑处,需要多次请求看结果做对比

2.每个生成w接口至少走3遍以上流程,以防有点地方漏值漏扣代码

3.在调试时需要耐心、耐心、耐心

特别声明:本文章只作为学术研究,作为其他不法用途;如有侵权请联系作者删除。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值