声明:本文章所有内容仅供学习使用,无其它任何目的,严禁用于商业用途和非法用途,否则产生一切后果均与作者无关
**
非常感谢遇到瑞数加密的时候逗比(⊙o⊙)!熊和西楚傲天给我提供的思路和文章
目标网站:aHR0cDovL3NlYXJjaC5jdXN0b21zLmdvdi5jbi9zZWFyY2gvcGNSZW5kZXI/cGFnZUlkPWY1MjYxNDE4ZGRjNzRmMDNiMjdlMzU5MGM1MzExMDJi
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
瑞数基本结构:
动态cookie防护,每次加密的js都是动态的,每次请求都会变化,但里面数字下标和结构是不会变化的。
先对网页进行一次请求,返回412的页面和服务器返回的cookie:FSSBBIl1UgzbN7NO,得到对应的content和ts链接,然后携带者服务器返回的cookie请求ts链接得到与此次content关联的js
然后根据网页的js和content和ts链接返回的js进行加密生成cookie,
可以通过hook、cookie的方法跟栈找到调用cookie生成的位置
将ts赋值给其他变量并将window中的ts清空
补环境如何知道检测了那些环境?可以用插桩的方法或者代理的方法,这里我推荐使用proxy进行代理
Proxy代理的目标可以是任务类型的对象,包括原生数组,函数甚至另一个代理,Proxy的get和set方法对补环境很有帮助。
proxy的简单示例:
拿get获取值来说,将代理挂上后,c对象的取值操作一目了然,set属性加上后,给window挂上代理基本上所有的js赋值取值操作一目了然,再把缺失的环境如navigator,document再次挂上代理,补齐环境即可以生成加密得值
常见的监测点:
环境分为浏览器环境,第三方环境,如:nodejs、jsdom、selenium,
global里面的一堆东西都是检测点 ,轻而易举的能看出来你是不是浏览器
都是浏览器没有的东西,proxy代理能轻松获取到,补得时候以无痕浏览器下的为准。
伪造基本功:常见的检测点,如document.createElement,创建一个标签,然后取标签里面的一个属性,看没有有。或者时基于v8引擎自带方法的检测。如补document补的时候,一般都是document = {};但是v8引擎带的tostring能轻易看出不同,检测出来。一个补的方法,tostring后也能轻易发现。
一个对象,只要有——proto——就是一个实例,实例——proto——返回它的原型,原型的prototype就返回他的实例。一个对象可以是实例,也可以是原型;一个方法一定有prototype,实例一定没有protoype,如果用他的原型下的方法取值,也是取不到的。
补完后直接带着WvY7XhIMu0fGS跟WvY7XhIMu0fGT访问就可以了。如果没有再出现js就是环境伪造成功了
7XhIMu0fGS跟WvY7XhIMu0fGT访问就可以了。如果没有再出现js就是环境伪造成功了