先来看看今天的受害者:

aHR0cDovL3d3dy5taWd1dmlkZW8uY29tL21ncy93ZWJzaXRlL3ByZC9pbmRleC5odG1s

一、分析密码加密

这次分析的是他登陆的三个参数,先分析登陆逻辑,抓个包看看。

可以看到这里用的是弹出的窗口登陆【图1-1】,为了避免主页其他元素的干扰抓包,我们可以通过右键 查看框架源代码 的方式打开登陆框分析抓包【图1-2】。

把打开的源代码页面地址栏中的 view-source:删除即可打开以下页面【图1-3】:

接下来用错误的账号密码登陆一波,可以看到如下的包【图1-4】,不过通过上面的 publickey 隐隐猜到这里的加密参数可能和 RSA 有关,先来找找密码加密的位置:

照常搜索一下 enpassword ,预料之中是没有搜索到有用的结果【图1-5】,不过定位元素可以通过 name 定位 也可以通过 class 定位,所以同样试试 J_RsaPsd,果然找到像样的文件了【图1-6】。

在打开的文件里检索J_RsaPsd,可以看到有3个相关的结果(熟悉加密的已经可以看出这里是 RSA 加密),我们通过把所有相关的结果都打上断点【图1-6】,并通过重新发起一次登录请求,来判断哪个J_RsaPsd是密码的加密逻辑。

通过重新发起请求,断点断在 333 行【图1-8】。

我们先复制整段代码:

c.setPublic(a.result.modulus, a.result.publicExponent);
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】只是部分参数不同。

这里比较疑惑的是$.fingerprint.result$.fingerprint.details是怎么来的。

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

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

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

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

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

三、总结

结合之前的建议,文章的配图都标注了序号,希望能够起到一定梳理思路的作用。

这个网站的加密总体还是只用RSA的加密算法就可以搞定了,整体加密算法比较简单有经验的老哥直接通过加密库就可以实现,如果想练练手的也可以抠出来试试,只要头发多,肝就完事了。

was控制台的用户和密码怎样加密使用_Python爬虫进阶 | X咕视频密码与指纹加密分析...相关推荐

  1. python爬虫加密空间_Python爬虫进阶必备 | XX同城加密分析

    目标网站: aHR0cHM6Ly9wYXNzcG9ydC41OC5jb20vbG9naW4vP3BhdGg9aHR0cHMlM0EvL2Z6LjU4LmNvbS8mUEdUSUQ9MGQxMDAwMD ...

  2. python 法律检索_Python爬虫进阶必备 | 某裁判文书检索网站加密分析与自动登录实现...

    抓包分析 先抓包分析一下登录的请求[图1-1] 图1-1 按照加密的参数,我们一个个分析. 首先是 _csrf ,这个参数比较简单,一般是用来防止跨域***的,感兴趣的朋友可以借助搜索引擎了解一下,不 ...

  3. 什么标准规定了aes加密_Python 爬虫进阶必备 | 关于某租房网站数据加密的分析(送两本 Python 书)...

    关于某租房网站数据加密的分析 aHR0cHM6Ly93d3cubWFvbWFvenUuY29tLw== 抓包分析 先看看这个网站的首页数据 可以看到首页的 html 是压缩的,但是格式化之后没有看到需 ...

  4. python爬虫企业工商信息_Python 爬虫进阶必备 | 企业信用公示系统公告加密解析...

    本周练手加一 上次分享了两个练手喂饭教程,朋友好奇喂饭是啥意思?就是把知识当成饭,喂到嘴里. 同时咸鱼整理了一下过往所有关于JS逆向文章的代码,希望附上代码能让你学( 记 )的( 得 )更( star ...

  5. python爬虫JS逆向:X咕视频密码与指纹加密分析

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:煌金的咸鱼 PS:如有需要Python学习资料的小伙伴可以加点击下方 ...

  6. gta python解指纹_python爬虫JS逆向:X咕视频密码与指纹加密分析

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:煌金的咸鱼 正文 先来看看今天的受害者: aHR0cDovL3d3d ...

  7. Python 爬虫进阶必备 | 某音乐网站查询参数加密逻辑分析(分离式 webpack 的加密代码扣取详解)...

    点击上方"咸鱼学Python",选择"加为星标" 第一时间关注Python技术干货! 今日网站 aHR0cDovL3d3dy5rdXdvLmNuL3NlYXJj ...

  8. Python 爬虫进阶必备——某体育网站登录令牌加密分析,赶紧收藏哦!

    某体育网站登录令牌加密分析 aHR0cHMlM0EvL3d3dy55YWJvMjU5LmNvbS9sb2dpbg== 这个网站需要分析的是登录时候的 sign令牌 抓包与加密定位 老规矩先用开发者工具 ...

  9. Python爬虫进阶必备 | X中网密码加密算法分析

    0x01. 分析请求 通过输入账号密码抓包查看加密字段 可以见到基本的参数是显而易见的, <font color="red"> username </font&g ...

最新文章

  1. 解决Android studio 非法字符的问题
  2. Leetcode 剑指 Offer 04. 二维数组中的查找 (每日一题 20210727)
  3. 磁盘格式化,磁盘挂载,手动增加swap空间
  4. FLASH脚本语言详解
  5. html 文字只设计一段颜色,html – sphinx,reassuredtext:为单个字设置颜色
  6. linux颜色吸取工具,8 个优秀的 Linux 图形图像及色彩工具
  7. MacBook如何设置自动纠正拼写和自动大写字词的首字母
  8. 高级软件测试技术17秋第1次课堂作业小结
  9. mysql远程定时任务_Linux下定时任务实现mysql自动备份并上传远程ftp
  10. 学完python基础后应该学什么专业_小白刚入门Python,学完基础后,接下来的学习步骤!...
  11. 【已解决】关于SQL2008 “不允许保存更改。您所做的更改要求删除并重新创建以下表。您对无法重新创建的标进行了更改或者启用了‘阻止保存要求重新创建表的更改’” 解决方案...
  12. ug打开服务器文件保存不了,UG编程时突然提示保存不了,你该怎么办,看这里...
  13. MEGA-X 3D打印机教程:01_我的第一台3D打印机参数
  14. APP推广要做哪些?渠道?方案?竞争分析?
  15. 计算机无法启动无法修复工具,windows资源保护无法启动修复服务的解决方法
  16. 大话赛宁云 | 演系列-超仿真网络空间“演武场”
  17. 计算机毕业设计 SSM+Vue宠物管理系统 宠物商城 宠物用品购物平台 宠物领养救助系统 Java Vue MySQL数据库 远程调试 代码讲解
  18. Redis5搭建集群
  19. 阿里云获取token(亲测可用)
  20. Windows Live Writer插件

热门文章

  1. 文件从头开始读函数_如何从头开始编写自己的Promisify函数
  2. 带有返回值的装饰器_如何使用带有工厂功能的装饰器
  3. 人工智能ai以算法为基础_智能扬声器和AI将为您的医师带来超强能力
  4. docker下使用mongodb
  5. Lugre摩擦模型的Stribeck曲线仿真
  6. 数学-矩阵计算(4)两种布局
  7. 如何通过图片识别用的什么字体?
  8. [深度学习-总结]LeNet网络的权重的大小的计算
  9. Python中如何创建元素为ndarray的list
  10. endnote如何添加网页类参考文献