极验4代逆向分析
本文最后更新于 362 天前,其中的信息可能已经有所发展或是发生改变。

本篇文章为作者在学习逆向过程中所做案例的经验分享,本文章中所有内容仅供学习交流,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除!

由于本篇文章是从我自己公众号迁移过来的,所以会带有水印

目标接口 aHR0cHM6Ly9ndDQuZ2VldGVzdC5jb20v

抓包分析第一个接口

callback    geetest_ + 时间戳

captcha_id    验证码id  是固定值写死

challenge    动态  js生成

client_type    写死

risk_type    写死

lang    写死
响应结果

bg    滑块背景缺口图片lot_number    生成w的关键参数payload    请求需要携带的参数datetime    pow_msg需要的参数process_token 请求verify要携带的参数第二个接口

callback    geetest_ + 时间戳captcha_id    验证码id  是固定值写死client_type    写死lot_number    由第一个接口生成risk_type    写死payload    由第一个接口生成process_token    由第一个接口生成w 需要逆向滑块坐标正确请求成功会返回seccode

请求失败则没有seccode

逆向分析第一个接口参数challenge这种没有接口返回就携带的参数是一开始的js文件生成的,建议先搜索看看有没有值跟进去

直接贴到本地就能用

callback  往上找就能找到,或者直接搜索  一开始就讲过就是 geetest + 时间戳,然后携带这两个参数去python请求就可以得到第二个接口需要携带的参数了

第二个接口

可以慢慢跟栈到这个位置,嫌麻烦可以直接搜这些参数直接定位

w是这个东西生成的,进去看看,在返回的位置下个断点

可以看到是一个函数调用传入u 再加上_

先分析u参数,在u处下个断点,一个函数传入一段参数,和一串不知道是啥,发现这串东西是上面的函数调用生成的,进去看看

看到这里应该都知道了,这跟三代一个样,4个随机数组成的,扣下来本地用就行,这里有个点要注意,下面要用到这串随机值,但是要保持一致,所以建议写死

再回头分析第一串参数,格式化一下

setLeft    滑动距离

passtime    滑动需要的时间

userresponse    滑动距离计算的

lot_number    load接口返回

pow_msg    几个数值组成的

pow_sign    pow_msg加密得来

滑动距离的话用库识别处坐标或者打码都能实现, 滑动花费的时间就是当前时间减去滑块开始滑动的时间,这个值可以写死,userresponse就是滑动距离除以一个定值加2

pow_msg就是一大堆字符串相加 还有一开始的datetime  lot_number 还有随机数

pow_sign md5加密,可以自己去对照一下,我就直接说明白这个是标准的md5了,可以调库或者扣,传入的l就是pow_msg

传入的参数值都搞完了,接下来分析 u _ 怎么来的了_值,其实看到65537和 encrypt setPublic可以判断是rsa了,65537同时能判断是标准的rsa,调用了里面的encrypt传入了e()+e()+e()+e() 这个生成的随机数,写死写死保持一致

在原型处点进去setPublic进去看看,标准的rsa,到这你可以调库也可以扣代码,扣代码不是很建议,这个混淆有点恶心人,其实如果做过3代或者老版本4代这里是可以取巧的,可以函数暴露导出方法的,函数导出就不用管公钥这些了,_分析完了接下来就是u

进去看看,结论就是一个AES加密,传进去生成数组

数组传给生成w值的函数,进去看看,结论就是直接扣下来就行,里面的混淆的都是些JavaScript语法,直接复制过去用就行

然后逆向分析就结束了,跟python交互好然后识别好把坐标传过去就行,坐标那里还得做做手脚才能过去的,好了结束结果验证

笔者水平有限,如有疑问,欢迎留言指正,一起交流,有任何问题可以添加我微信;
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇