- 博客(18)
- 收藏
- 关注
原创 文本格式 .WAT
和表域相似,内存与中也可以内联一个数据域,但是使用这种方式无法指定内存的页数(只能由编译器根据内联数据进行推测),也无法指定内存的偏移量(只能从 0 开始)。表域中可以内联一个元素域(使用这种方式无法指定表的限制,只能由编译器根据内联元素进行推测),也无法指定元素表内偏移量(只能从 0 开始)函数的参数本质上也是局部变量,同函数域里定义的局部变量一起构成了函数的局部变量空间,索引从 0 开始递增。上面的例子中,类型域是单独出现的,并在导入函数中通过名字(也可以通过索引)引用。
2024-09-09 17:11:56
912
原创 【困难】 猿人学web第一届 第18题 jsvmp 洞察先机
第4页:[‘1004m209’, ‘1004m208’, ‘1004m207’, ‘1004d208’, ‘1004u209’]第5页:[‘1052m197’, ‘1052m199’, ‘1052m200’, ‘1051d201’, ‘1051u203’]第2页:[‘905m206’, ‘905m207’, ‘905m208’, ‘905d209’, ‘905u211’]第3页:[‘950m203’, ‘950m204’, ‘950m206’, ‘950d208’, ‘950u210’]
2024-09-06 09:59:37
941
原创 【简单】 猿人学web第一届 第19题 乌拉乌拉
使用第三方库 curl_cffi 可以模拟浏览器的 tls 指纹 (在请求时指定 impersonate 关键字参数即可)数据接口为 https://match.yuanrenxue.cn/api/match/19。请求参数 和 cookie 都没有加密字段,直接用 python 请求。查看协议是 h2 的,再试试 httpx 请求。重放是成功的(大概率就是检测了 tls指纹)用 fiddler 重放攻击试试。还是一样的结果,请求失败了。对应的 python 代码。请求参数只需要携带 页码。
2024-09-06 09:51:46
316
原创 【简单】 猿人学web第一届 第16题 js-逆向 windows蜜罐 / webpack初体验
数据接口分析https://match.yuanrenxue.cn/api/match/16请求参数需要携带 page 页码,m 和 t 字段,m为加密参数,t 目测是一个时间戳 加密参数还原查看数据接口对应的 window.request 栈r 对象里携带了请求参数手动解混淆后的代码p_s = Date['parse'](new Date)['toString']();var r = {};r['page'] = window['page']; // 页码信息
2024-09-03 17:47:17
404
原创 【非常简单】 猿人学web第一届 第17题 天杀的 Http2.0
题目标题已经很明显了,Http2.0数据接口对应的请求协议也为 http2.0。
2024-09-03 17:46:44
170
原创 【简单】 猿人学web第一届 第15题 备周则意怠,常见则不疑
数据接口 https://match.yuanrenxue.cn/api/match/15请求时需要携带 page 页码,m为加密参数cookie中没有加密信息,携带 SessionId请求即可。
2024-09-01 20:21:50
451
原创 【困难】 猿人学web第一届 第14题 备而后动-勿使有变
进入题目 打开开发者工具会进入一个无限 debugger;向上查看堆栈,可以找到生成 debugger 的代码段手动解混淆后可以知道 debugger 生成的方式是利用 Function.prototype.constructor 函数生成的 debugger因为 (function(){}[‘constructor’]) === Function.prototype.constructor;
2024-09-01 16:49:15
1016
原创 【非常简单】 猿人学web第一届 第13题 入门级 cookie
查看数据接口 https://match.yuanrenxue.cn/api/match/13请求参数只携带了 page 页码请求时需要携带 cookie yuanrenxue_cookie字段在请求的时将 cookie 中对应的 yuanrenxue_cookie 字段删除勾选事件监听断点中的脚本断点后刷新页面即可看到 cookie 生成的位置这段代码是在 script 标签里的,可以用 正则匹配使用 subprocess 输出 cookie 信息即可对应 python 代码。
2024-08-25 00:27:10
328
原创 【非常简单】 猿人学web第一届 第12题 入门级js
这一题非常简单,只需要找到数据接口,请求参数 m生成的逻辑即可查看数据接口 https://match.yuanrenxue.cn/api/match/12查看请求对应的堆栈中的 requests 栈list 为对应的请求参数list 是由 btoa 函数传入 ‘yuanrenxue’ + 对应的页码生成的btoa 在浏览器中的作用是: 将传入的字符串进行 base64 编码对应的 python 代码结果与浏览器一致。
2024-08-24 22:49:17
203
原创 【非常困难】 猿人学web第一届 第10题 js 混淆 - 重放攻击对抗
但是经过上面的 Hook 重写之后 Function.prototype.constructor.prototype 就不是一个方法了,会变成一个对象。_yrxCxm[‘f’ + ‘g’ + ‘a’ + ‘E’] 的值和 _yrxVhD() 方法中的值一致。_yrxCxm[‘f’ + ‘g’ + ‘a’ + ‘E’] 的值和 _yrxVhD() 方法中的值一致。方法中对应的时间戳是动态变化的,包括后面的全局变量 _yrxCxm 的值也是动态变化的。
2024-08-24 19:53:28
950
原创 【困难】 猿人学web第一届 第9题 js混淆-动态cookie 2
decrypt() 函数在 udc.js 文件中, udc.js 文件也是混淆过的,再将 udc.js 还原。这段debugger是在 if 条件中生成的,可以在对应的代码段选择一律不在此处暂停,但会很卡。接下来写好对应的解析规则,就可以开始还原字符串了,思路与 9.html 文件的解密函数还原一样。9.html文件是动态的,每一次的返回的代码段都不一样(先固定,把debugger调试过掉)9.html 文件是动态的, 关键的点是 m 循环的次数,还有 加密对应的字符串。
2024-08-17 23:27:48
601
原创 【中等】 猿人学web第一届 第7题 动态字体,随风漂移
这道题是 动态字体文件加密,找出动态字体文件中对应数字相同规律即可数据接口 https://match.yuanrenxue.cn/api/match/7数据接口没有加密值 cookie字段也没有。
2024-08-15 16:55:51
305
原创 【中等】 猿人学web第一届 第6题 js混淆-回溯
打开 调试工具,查看数据接口 https://match.yuanrenxue.cn/api/match/6。// _n 是在上方自执行函数中赋值的。大概率是浏览器自增了,但是发送给服务器的数据只是这一次生成的值,并没有发送拼接了的值。在文件的开头有很长的一段 JJENCODE 加密的代码。前面有说到 _n 是在一个 自执行函数中赋值的。最后一行代码是将前面赋值的变量加起来并执行。计算 1,2,3 等奖的值,并除以三等奖。整个加密的值是在 _n 方法中生成的。浏览器请求的时候,q 参数值是自增的。
2024-08-14 15:45:33
902
原创 【中等】 猿人学web第一届 第5题 js混淆-乱码增强
请求流程打开 调试工具,查看数据接口 https://match.yuanrenxue.cn/api/match/5请求参数请求参数携带了 page, m, f 3个字段,page为页数,m 为时间戳 像是 new Date().getTIme() 生成的f 为时间戳 像是 Date.parse(new Date()) 生成的cookie信息请求的 cookie 携带了两个字段RM4hZBv0dDon443M字段 和 m字段加密参数定位Hook Cookiecookie
2024-08-14 01:54:08
907
原创 【简单】 猿人学web第一届 第4题 雪碧图,样式干扰
仔细观察,0-9 数字的对应的 base64值 都是一样的,所以可以定义一个字典做为映射。
2024-08-11 06:16:44
810
原创 【简单】 猿人学web第一届 第3题 罗生门
数据接口为https://match.yuanrenxue.cn/api/match/3?page=1这一题的 请求参数 与 cookie 都没有加密参数每次请求数据接口前都会请求 jssm 接口requests 照着请求逻辑去请求,发现是失败的(数据接口返回包含 js标签 代码)
2024-08-11 00:04:31
327
原创 【中等】 猿人学web第一届 第2题 js混淆 动态cookie 1
进入题目正常加载数据后打开调试工具,等待一会(2~3分钟) 刷新页面 cookie 失效以后会弹窗删除 cookie 中的 m 字段再刷新页面也是一样的点击确定后,页面自动刷新完会进入 无限 debugger查看上一层堆栈生成 debugger 的代码 是经过混淆的手动解混淆后的代码加密参数定位hook Cookiehook 到 cookie 后,向上查看堆栈就能找到生成 cookie m参数的位置每次请求返回的代码都不一样,但执行逻辑是一样的,所以将 2.html
2024-08-10 17:11:26
1521
原创 【简单】 猿人学web第一届 第1题 js混淆-源码乱码
0x5d83a3[‘m’] 是由 _0x57feae + ‘丨’ + _0x2268f9 / 1000 还需要找 _0x57feae。点击翻页,可以发现 https://match.yuanrenxue.cn/api/match/1 接口的数据与页面的数据是对应的。在 eval 处下断 能发现方法中的 eval 前的代码是用于生成执行 在eval中执行 的代码。方法的返回值为 ‘’, 调用加密方法的代码又加上了 window[‘f’]window[‘b’] 代码是固定的,mw 是传进来的时间戳。
2024-08-07 13:57:40
370
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人