写点什么

python 爬虫 JS 逆向:X 咕视频密码与指纹加密分析,程序员工作 2 年月薪 12K

作者:程序媛可鸥
  • 2022 年 3 月 17 日
  • 本文字数:2220 字

    阅读完需:约 7 分钟

var d = c.encrypt(b.val());


b.siblings(".J_RsaPsd").val(d)


我们通过控制台看看这些参数分别是什么【图 1-9】。



通过前文抓包和 JS 页面的代码,我们判断密码的加密是 RSA 加密,所以我们就需要找齐 RSA 加密的需要的几个要素,比如他的公钥 ,因为 RSA 是非对称加密本地使用公钥加密,服务器上使用私钥解密。再看看【图 1-8】上的几个参数不知道你们有没想起开头【图 1-4】我提及的那条抓包。我们切换到 控制台-Network 看看【图 1-10】。



{"status":2000,"message":"","header":{},"result":{"publicExponent":"010001","modulus":"00833c4af965ff7a8409f8b5d5a83d87f2f19d7c1eb40dc59a98d2346cbb145046b2c6facc25b5cc363443f0f7ebd9524b7c1e1917bf7d849212339f6c1d3711b115ecb20f0c89fc2182a985ea28cbb4adf6a321ff7e715ba9b8d7261d1c140485df3b705247a70c28c9068caabbedbf9510dada6d13d99e57642b853a73406817"}}


是不是和我们在【图 1-9】中打印出来的数值完全相同


tip : 这里的 b.val()是我输入的错误密码。


这里我们找齐了加密需要的参数,其实我觉得没必要扣 JS,但是我知道。。


不要我觉得,你要你觉得



所以偷懒用之前扣的代码测试一下:


-----------此处省略 500 行-----------


function bodyRSA()


{


//setMaxDigits(130);


var key = RSAUtils.getKeyPair("010001","","00833c4af965ff7a8409f8b5d5a83d87f2f19d7c1eb40dc59a98d2346cbb145046b2c6facc25b5cc363443f0f7ebd9524b7c1e1917bf7d849212339f6c1d3711b115ecb20f0c89fc2182a985ea28cbb4adf6a321ff7e715ba9b8d7261d1c140485df3b705247a70c28c9068caabbedbf9510dada6d13d99e57642b853a73406817");


return key


}


function get_encrypt(password) {


key = bodyRSA();


var a = RSAUtils.encryptedString(key,password)


//var b = RSAUtils.encryptedString(key,username)


console.log(a)


console.log('----------------------------------')


//console.log(b)


return a


}


get_encrypt('11111111111')


二、分析 FingerPrintDetail 与 fingerPrint




根据第一部分的【图 1-5】和图【1-6】可以很快定位加密的位置,这里就不说了【图 2-1】。



追进去分析一下 rsaFingerprint 的逻辑,可以看到其实和密码加密用的是一样的 RSA 加密【图 2-2】只是部分参数不同。



这里比较疑惑的是 . f i n g e r p r i n t . r e s u l t 和 .fingerprint.result 和 .fingerprint.result 和.fingerprint.details 是怎么来的。


通过检索 $.fingerprint 根据查找的结果找到他的位置【图 2-3】



继续向上查找,最终找到这里,发现是根据浏览器的请求头等信息生成的一串哈希值【图 2-4】。



这个值如果不修改请求头信息,那么这个值就是固定不变的,如果修改请求头信息,那么就需要重新生成这段 hash,这就是这个的浏览器指纹信息。


因为我们这里只是抱着学习的态度学习,所以就不瞎搞,不过这个整段的代码也比较简单没事可以扣一扣。


tip: 如果想要分析这个指纹的算法,记得要刷新一下页面才可以进入断点。


三、总结




结合之前的建议,文章的配图都标注了序号,希望能够起到一定梳理思路的作用。这个网站的加密总体还是只用 RSA 的加密算法就可以搞定了,整体加密算法比较简单有经验的老哥直接通过加密库就可以实现,如果想练练手的也可以抠出来试试。



做了那么多年开发,自学了很多门编程语言,我很明白学习资源对于学一门新语言的重要性,这些年也收藏了不少的 Python 干货,对我来说这些东西确实已经用不到了,但对于准备自学 Python 的人来说,或许它就是一个宝藏,可以给你省去很多的时间和精力。


别在网上瞎学了,我最近也做了一些资源的更新,只要你是我的粉丝,这期福利你都可拿走。


我先来介绍一下这些东西怎么用,文末抱走。




(1)Python 所有方向的学习路线(新版)


这是我花了几天的时间去把 Python 所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。


最近我才对这些路线做了一下新的更新,知识体系更全面了。



(2)Python 学习视频


包含了 Python 入门、爬虫、数据分析和 web 开发的学习视频,总共 100 多个,虽然没有那么全面,但是对于入门来说是没问题的,学完这些之后,你可以按照我上面的学习路线去网上找其他的知识资源进行进阶。



(3)100 多个练手项目


我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了,只是里面的项目比较多,水平也是参差不齐,大家可以挑自己能做的项目去练练。



(4)200 多本电子书


这些年我也收藏了很多电子书,大概 200 多本,有时候带实体书不方便的话,我就会去打开电子书看看,书籍可不一定比视频教程差,尤其是权威的技术书籍。


基本上主流的和经典的都有,这里我就不放图了,版权问题,个人看看是没有问题的。


(5)Python 知识点汇总


知识点汇总有点像学习路线,但与学习路线不同的点就在于,知识点汇总更为细致,里面包含了对具体知识点的简单说明,而我们的学习路线则更为抽象和简单,只是为了方便大家只是某个领域你应该学习哪些技术栈。



(6)其他资料


还有其他的一些东西,比如说我自己出的 Python 入门图文类教程,没有电脑的时候用手机也可以学习知识,学会了理论之后再去敲代码实践验证,还有 Python 中文版的库资料、MySQL 和 HTML 标签大全等等,这些都是可以送给粉丝们的东西。



这些都不是什么非常值钱的东西,但对于没有资源或者资源不是很好的学习者来说确实很不错,你要是用得到的话都可以直接抱走,关注过我的人都知道,这些都是可以拿到的。

用户头像

Python编程资料加Q群免费领取:419829237 2022.03.14 加入

还未添加个人简介

评论

发布
暂无评论
python爬虫JS逆向:X咕视频密码与指纹加密分析,程序员工作2年月薪12K_Python_程序媛可鸥_InfoQ写作平台