Skip to content

pikaqiu-ru/captcha

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

66 Commits
 
 
 
 
 
 
 
 

Repository files navigation

简单的记一次geetest验证码js分析(以bilibili为例)

分析传递参数

image 主要提交challenge、gt、w三个参数,前两个由请求得到,参数w是加密后的结果

获取challenhe、gt

image 浏览器刷新清空抓包数据,在调试面板搜索栏搜索captcha(或前几个字母)

调试技巧

image image

搜索常见加密关键字,例如BASE64,调试js

image 如图所示,字典c包含了最后所有传递的参数,通过一步一步往上寻找加密参数来源,找到字典i,如下图 image

理清顺序(记住gt,challange两个参数)

1:鼠标轨迹

如下图,_变量 image 可通过一步一步调试将鼠标轨迹函数抠出来,主要是要活用f9,f10,f11,断点跳跃几个按钮如下图 image 轨迹处理函数为main函数,js代码见trace_process文件夹,trace为滑动轨迹,b为固定数值数组 ,c是通过获取的gt,challange参数发起请求请求得到后的返回值(如下图) image ,轨迹算法可选用多次正确滑动的的轨迹(不要只用同样的轨迹,会被后台AI识别导致失败),也可以自己编写轨迹算法

处理字典i

image n为滑块滑完的时间,值trace[-1][-1] userresponse参数有两个,为t和e,e为challane,t为trace[-1][0]如下图 image userresponse的代码见userresponse_info.js i还有个隐蔽的参数rp,为md5算法生成参数为gt+challange+passtime合成的字符串,可以取其参数放入fiddler的textWizard自带小插件测试结果

rsa非对称加密

主要关键参数,有模数和指数,两个都为固定值,加密文本为 var m ="00C1E3934D1614465B33053E7F48EE4EC87B14B95EF88947713D25EECBFF7E74C7977D02DC1D9451F79DD5D1C10C29ACB6A9B4D6FB7D0A0279B6719E1772565F09AF627715919221AEF91899CAE08C0D686D748B20A3603BE2318CA6BC2B59706592A9219D0BF05C9F65023A21D2330807252AE0066D59CEEFA5F2748EA80BAB81"; var e = "1001"; text为四个随机字符串相加image

aes对称加密

参数两个,分别为i和(rsa加密的)text,

base64

参数一个,值为aes加密结果,js代码见base_info.js

自此完毕

注意

本项目仅用于学习和交流

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors