案例地址:geetest.com/Register
案例内容:分析极验登录时深知检测V2提交的Request Payload信息。
文章内容仅作学习参考,如有侵权请联系作者进行删除
文章图片
文章目录
-
- 接口分析
- 参数定位
- h[AUJ_(1173)]
- DWYi\[ymDv(1137)](l)
-
- 先看 l
- 调用tc_t
- 总结
接口分析 POST请求
文章图片
加密Payload:
文章图片
参数定位 长话短说,通过XHR断点。
文章图片
往回走5步就可以看到参数生成的位置。
文章图片
根据调试信息和接口中的值对比,发现
e = DWYi[ymDv(1137)](l)
是payload的其中一部分。继续调试,发现代码:
e + h[AUJ_(1173)]
结合调试信息得出结论:
payload = DWYi[ymDv(1137)](l) + h[AUJ_(1173)]
h[AUJ_(1173)] 经测试,h是动态的,其中的aeskey和rsa的值不固定。
文章图片
再次分析源码,可知
h = o[AUJ_(1156)]()
文章图片
继续调试,AUJ_(1156) = ‘LpFU’
文章图片
双击点进去,找到对应的方法。
文章图片
把这个文件内容在 Lxtools 中解混淆一下,变量名还原。
复制到本地格式化后的整体代码结构如下:
文章图片
发现都是自执行的方法,手动处理后可以改成如下所示:
文章图片
然后根据报错把环境补上,比如出现的这些
文章图片
补完之后再次运行,会返回MlHc。 然后修改下代码,让其返回
LkEB['prototype'].LpFU()
。文章图片
运行测试,成功打印了
o[AUJ_(1156)]()
,从中提出rsa参数即可。文章图片
DWYi[ymDv(1137)](l) 先查看各项含义,其中 l 是
EbF_[ymDv(409)](e, h[ymDv(1194)])
,调用方法为DWYi['tc_t']
文章图片
先看 l
可知此处的 aeskey 是从我们第一段分析分析的
o[AUJ_(1156)]()
对象中提取的。文章图片
此处的e 中包括了操作id、行为轨迹,以及未知参数。
文章图片
EbF_[ymDv(409)]
是对应的encrypt加密方法。在本地中可看到由JOOO返回,JOOO在EbF_中。文章图片
那可以直接使用
EbF_.encrypt()
来调用加密方法。文章图片
即:
EbF_.encrypt(e, h[ymDv(1194)])
文章图片
本地调用,成功生成 l 。
文章图片
调用tc_t
有了l 之后,我们在补的JS中直接调用DWYi.tc_t(l) 即可。
总体流程:
// 注册 _asekey_rsa
_asekey_rsa = LkEB['prototype'].LpFU()
rsa = _asekey_rsa.rsa
aeskey = _asekey_rsa.aeskey
// 生成 l
var l = EbF_.encrypt(e,aeskey)
// 加密后拼接
return DWYi.tc_t(l)+rsa
打印结果:
文章图片
总结 主要内容是流程分析和对混淆代码的处理和调用。
文章内容相对深知检测来说只是皮毛,只分析了Payload参数,深层的检测分析任重而道远。
本文辅助代码在公众号《Pythonlx》回复 shenzhi 领取。
【风控or验证|极验深知v2分析】
文章图片
推荐阅读
- Github每日精选|Github每日精选(第21期)(开源文件同步syncthing)
- java|阿里MaxCompute生态团队负责人—李睿博 : 参与开源,让自己的履历与众不同|《大神详解开源 BUFF 增益攻略》讲座回顾...
- 漏洞复现|CVE-2022-33891 Apache Spark 命令注入复现
- 安全|漏洞通告 | Apache Spark UI命令漏洞;Grails远程代码漏洞;Confluence Questions漏洞
- 网络基本概念|网络安全(加密技术、数字签名、证书)
- 信息安全|网络安全常用术语
- 网络|ARP防御篇-如何揪出“内鬼”并“优雅的还手”
- 安全|Apache Commons Configuration远程代码执行漏洞(CVE-2022-33980)分析&复现
- web安全|网络安全之文件包含漏洞总结