猿人学第5题

2023-11-12 00:30
文章标签 猿人 学第

本文主要是介绍猿人学第5题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

猿人学第5题

  • 分析请求
  • 加密参数
    • 分析cookie里的两个加密参数
    • 分析密钥
    • 分析url里的两个加密参数
  • 扣代码

本文仅供大家学习

  • 1 分析请求
  • 2 加密参数
  • 3 扣代码

分析请求

在这里插入图片描述
这是题目,要求是热度最高的前五名的和。按F12,看看请求的包
在这里插入图片描述
在这里插入图片描述
我请求了两页,请求参数只有两个,m和f

在这里插入图片描述
在这里插入图片描述
从这里看不出啥东西,题目提示cookie只保存50s,那肯定是cookie里加密了
,多次请求发现cookie里有两个值加密了,一个是m值,还有一个
是RM4hZBv0dDon443M
在这里插入图片描述

在这里插入图片描述
把两次的url和cookie拿出来分析

url:https://match.yuanrenxue.com/api/match/5?m=1647409778035&f=1647409777000
//url
//下面是cookie,只拿了加密部分的参数
cookie:
m=9c69e65879573f20085d7a2771a87a41; 
RM4hZBv0dDon443M=0+F9b7iseRE50ASrEbzE1RVCHX8I9iwkMYl4v8yXmT25uSL7v5sZO8Tx4XsMGnX6WU5sckvCyre6WXlxyC89Ey+IDowTvIxSX6Hc0PuCNue1UZCigkJVi9GUdQ0HyTfV/mCLCcFnkfFJ2eiV1oHHXTo0IrZf8Sf6GsYKXZGZIaZ0jn/gJgfIxiQQAQ3l6/Mo80bW3HzI+MvuoEgkgzUQcMG0A5c1qEm45Ki2XSV2fmk=
url: https://match.yuanrenxue.com/api/match/5?m=1647409932219&f=1647409931000
//url
//下面是cookie,只拿了加密部分的参数
cookie:m=81618ecb71d36db642ec4f95076fb7c1; RM4hZBv0dDon443M=BSypJaqxtyJ7yRDTjWMxnrnuZa8S7apgFyan/e7GgJyQy01Nd2TIQQe9+QWaThPoaedwulWcjYn8sCBkbIRROcWH3zxVTOIXJ9iaekAN1KT3hprQaewfaAsLUDf7AL4tMS80JrVwwswA8MBsCfuD+eGhkQtV2+MoGWUV7WrSwwZch9c7pJQeSP7vSVaPMo7WWzzdRcwdf/BaISCkSDN5MzNvz+d2urG1w/01OSHDx08=

cookie设置一般是加载的时候,我们可以发现,在打开F12的时候有一段嘲讽的话,这里面有猫腻。

加密参数

上面找到了4个参数,url里两个类似时间戳的m和f,还有cookie里的两个加密参数m和RM4hZBv0dDon443M

分析cookie里的两个加密参数

在这里插入图片描述
进入VM里面,会发现是一大段混淆,也和题目说的一样,应该就是这里进行加密,试试搜索RM4hZBv0dDon443M,
在这里插入图片描述
一个都没有,试试m的话太多了,试试m=
在这里插入图片描述
好,找到了RM4hZBv0dDon443M,它是使用字符串拼接来的,下断点,cookie赋值要重新刷新,刷新一下
在这里插入图片描述
这里就是RM4hZBv0dDon443M生成的地方,进去这里断点断住之后不会立即给它赋值,跳过几次就有值了
控制台输出_0x4e96b4是window
在这里插入图片描述
继续找到它是怎么来的,搜索这个’_$’
在这里插入图片描述
一目了然,RM4hZBv0dDon443M就是AES的ECB加密出来的,那么找明文和密钥
在这里插入图片描述
这种模式的加密,第一个参数就是明文,后面接着是密钥,最后是一些配置
明文是一个数组toString()来的,密钥是window里的【‘_qF’】,
接着找这个明文数组怎么来的,

在这里插入图片描述
搜索这个数组,都打上断点,
在这里插入图片描述
五次添加,第3次添加后会打印两句话,但第4的内容已经有了,而且它加密的地方在最后一次是变化的,这里是一个天坑,慢慢找
在这里插入图片描述
在这里插入图片描述

_$Wa = _0x12eaf3();
_0x3d0f3f[_$Fe] = 'm=' + _0x474032(_$Wa) + ';\x20path=/';
_0x4e96b4['_$pr']['push'](_0x474032(_$Wa));

在这里插入图片描述

这个方法添加的字符串,每次都是加密的,_0x474032这个方法就是加密方法了,这个方法慢慢扣
在这里插入图片描述
一个一个扣就行,

分析密钥

在这里插入图片描述
直接搜索找到密钥,打断点,刷新,放开断点,控制台输出_0x4e96b4[‘_$is’],
在这里插入图片描述

_0x4e96b4['btoa'](_0x4e96b4['_$is'])['slice'](0x0, 0x10)

这个就是密钥了,将_0x4e96b4[‘_$is’]的结果使用base64编码一下,在取它的前16位

分析url里的两个加密参数

打开网页
在这里插入图片描述
m就是加密密钥的那段_0x4e96b4['_ i s ′ ] , f 是 w i n d o w . is'],f是window. is]fwindow._zw[23],

_$Wa = _0x12eaf3();
f = _$Wa;
f是最开始的时间戳,就是为了计时的,50秒cookie失效

扣代码

这里提几个小坑,大坑自己填
在这里插入图片描述

_0x4e96b4[_$UH[0x260]][_$UH[0x8]]['DONE']

在这里插入图片描述
分析大坑的时候,可以hook看它是的结果和明文

//hook代码
(function(){var kk_0x474032 = _0x474032;_0x474032 = function(e) {var kkk = kk_0x474032(e);console.log("明文:", e,"加密:",kkk );console.log("_0x4e96b4['_$6_']:" + _0x4e96b4['_$6_'])console.log("_0x4e96b4['_$tT']:" + _0x4e96b4['_$tT'])console.log("_0x4e96b4['_$Jy']:" + _0x4e96b4['_$Jy'])return kkk;}
})()

在这里插入图片描述

大坑就是
在这里插入图片描述
在这里插入图片描述

_0x4e96b4['_$6_']
_0x4e96b4['_$tT']
_0x4e96b4['_$Jy']
这几个的值会变,大胆猜测后面怎么变得

这篇关于猿人学第5题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/393866

相关文章

【困难】 猿人学web第一届 第14题 备而后动-勿使有变

调试干扰 进入题目 打开开发者工具会进入一个无限 debugger; 向上查看堆栈,可以找到生成 debugger 的代码段 手动解混淆后可以知道 debugger 生成的方式 (function () {// 函数内的代码是不需要的,因为里面的代码不会执行}['constructor']('debugger')['call']('action')); 是利用 F

【简单】 猿人学web第一届 第15题 备周则意怠,常见则不疑

数据接口分析 数据接口 https://match.yuanrenxue.cn/api/match/15 请求时需要携带 page 页码,m为加密参数 cookie中没有加密信息,携带 SessionId请求即可 加密参数还原 查看数据接口对应的 requests 栈 m参数 是通过 window.m() 方法执行后得到的 打上断点,查看 window.m() 方法执行了

【困难】 猿人学web第一届 第15题 备周则意怠,常见则不疑

数据接口分析 数据接口 https://match.yuanrenxue.cn/api/match/15 请求时需要携带 page 页码,m为加密参数 cookie中没有加密信息,携带 SessionId请求即可 加密参数还原 查看数据接口对应的 requests 栈 m参数 是通过 window.m() 方法执行后得到的 打上断点,查看 window.m() 方法执行了

【非常简单】 猿人学web第一届 第13题 入门级 cookie

查看数据接口 https://match.yuanrenxue.cn/api/match/13 请求参数只携带了 page 页码 请求时需要携带 cookie yuanrenxue_cookie字段 在请求的时将 cookie 中对应的 yuanrenxue_cookie 字段删除 勾选事件监听断点中的脚本断点后刷新页面即可看到 cookie 生成的位置 这段

【WP】猿人学_17_天杀的Http2.0

https://match.yuanrenxue.cn/match/17 抓包分析 居然对Fiddler有检测,不允许使用 那就使用浏览器抓包,好像没发现什么加密参数,然后重放也可以成功,时间长了也无需刷新页面,尝试Python复现。 Python复现 import requestsheaders = {"authority": "match.yuanrenxue.cn","

【WP】猿人学_13_入门级cookie

https://match.yuanrenxue.cn/match/13 抓包分析 抓包分析发现加密参数是cookie中有一个yuanrenxue_cookie 当cookie过期的时候,就会重新给match/13发包,这个包返回一段js代码,应该是生成cookie的 <script>document.cookie=('y')+('u')+('a')+('n')+('r')+(

【WP】猿人学13_入门级cookie

https://match.yuanrenxue.cn/match/13 抓包分析 抓包分析发现加密参数是cookie中有一个yuanrenxue_cookie 当cookie过期的时候,就会重新给match/13发包,这个包返回一段js代码,应该是生成cookie的 <script>document.cookie=('y')+('u')+('a')+('n')+('r')+(

奖金三万,猿人学爬虫对抗大赛来啦

“ 阅读本文大概需要 3 分钟。 ” 终于决定搞第一届Web爬虫对抗比赛啦,这一个月小伙伴紧急开发爬虫对抗大赛用题,测试,赶在十月中旬上线啦。 猿人学第一届 Web 爬虫对抗大赛的奖品是奖金和物品,由我个人和百观科技赞助所有费用。同时百观科技还从参赛人员中招聘爬虫开发人员,薪资 20-28K 。 奖项设置 总奖金三万,还有若干参与奖。  一等奖,奖金 8888元,1名  二等奖,奖金 1666

【WP】猿人学12_入门级js

https://match.yuanrenxue.cn/match/12 Fiddler分析发现,所有请求只是 page已经 m不一样 这个m看起来就很像 base64,解码发现确实如此 下面直接构建Python代码: import base64import requestsdef base64_encode_string(input_string):try:# 编码为Ba

【JS逆向学习】猿人学 第四题 雪碧图 样式干扰

声明 本文章中所有内容仅供学习交流使用,不用于其他任何目的,不提供完整代码,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关! 本文章未经许可禁止转载,禁止任何修改后二次传播,擅自使用本文讲解的技术而导致的任何意外,作者均不负责,若有侵权,请联系作者立即删除! 逆向目标 网址:https://match.yuanrenxue.cn