猿人学对抗赛踩坑记录

简介: 猿人学对抗赛踩坑记录





在狗哥的带领下 很荣幸拿到了第一



狗哥我d神

狗哥我d神

狗哥我d神

狗哥我d神

狗哥我d神

狗哥我d神

狗哥我d神

狗哥我d神

有感兴趣的哥哥可以加交流群:747776374

里面全是大佬



第一题

进来先是给你来个无限debugger

只要再第二行打上never pause here 然后放行就不会被断下来了

整块加密逻辑都在html的最后一行里 拿到手格式一下就能很清晰的看出来了


var timestamp = Date.parse(new Date());
var m = oo0O0(timestamp.toString()) + window.f;
var list = {
    "page": window.page,
    "m": m + '丨' + timestamp / 1000
};

对着上面这个逻辑缺啥补啥就行了 别忘了定义

document.e = 'fromC'; 
document.f = 'charCo'; 
document.g = 'harCode'; 
document.h = 'deAt';


第二题

有人找不到加密位置

其实细心的人能看到你访问第二题的时候就做了一次跳转了

用调试工具发包的时候也能看到 就是一个sojson

直接copy代码去猿人学里面的解混淆里面解出来看看

地址:http://tool.yuanrenxue.com/decode_obfuscator

解出来就剩下俩百多行了

特别注意这个函数 是一个内存爆破 用的时候可以把这个函数去掉(有好几处)

去掉之后会提示你缺少qz 再把qz补上就行了

补完环境接着调用后直接输出document["cookie"]就可以拿到cookie值了


第三题

这一题名罗生门 啥意思自行百度 挺哲学的 反正我不懂

坑人的点主要在协议头 要带上协议头才能访问

可以用FD抓包然后再用python发包测试不同

通过最后测试 带上协议头访问logo拿到cookie就可以拿到第三题的数据了


第四题

跳转文章

猿人学爬虫攻防大赛12347讲解



第五题

这题有一个console.log爆破我内存 这怎么能忍 之前把我电脑卡死了好几次

FD直接替换掉console.log这个函数 反正我们能输出的函数大把呢

html页面进来尾部格式化后看到一段sojson 你们也可以去解开看看

我之前了解过流程我就直接下断eval了

往后跟就能进到虚拟机

找到m的加密都下断 注意原文和出来的密文

明说了 这个b就是魔改过的md5

然后后面的加密RM4hZBv0dDon443M 是套库的AES key 为m的明文

加密原文为之前b加密后的五个结果

说一说第五题坑人的点 如果node算出来的值和网页的值不一致 就要考虑一下你是不是踩坑了

为了保持一致 建议还是从网页中拿出他真正的值替换进去 如果你们要补上

把这个魔改md5过掉再套一个AES这道题就结束了



第六题

加密逻辑

整个加密逻辑清晰可见 然后就靠你们自己改写了

进入r里面看整个js有好几处坑

先是一处表情混淆 做的事在第24行

翻译下来就是

Function('window.o=1')('_')

然后是把你的navigator和window重新定义了一下 这俩处要去掉

然后js就能运行起来了 结果并不能通过

要在js里面寻找有俩处jsfuck 浏览器算一下值赋值进去就行了

如果扣下来能用 但只能获取到第一页

就证明js没错了

那要考虑一下你的加密逻辑那个位置


第七题

跳转文章

猿人学爬虫攻防大赛12347讲解


第八题


第九题

先到html页面拿到主要逻辑js

可以看到是sojson加密 可以用AST解一下混淆 很方便看

这里就能看到俩个坑了 js把你的window 和global处理掉

通过这里可以观察出 这个js的值是更新的 我们要拿出来用就用正则匹配

接着就是分析decrypt

进到decrypt里面 全部复制粘贴

然后去掉我圈出来的无用代码(会内存爆破)

跳到头部 将 这段头部压缩 不然同样内存爆破

再搜索一下 window 这俩行会重置你的window和global 同样去掉

最后补上一点环境再和前面说的那段js拼接一下

就能运行拿到document["cookie"]了


第十题

先过掉debugger

先下一个XHR断点然后刷新

断下来后去掉XHR断点后在f.open下断放行

当url为/api/match/10的时候进入f.open函数

此时加密的函数就在这里面了 一步一步跟着看

当我们跟到算出第一段值

_yrxmEu = aiding_5702(_yrxays, _yrxVMl, _yrxR7k, _yrxJ_8);

接着继续跟

_yrxrqQ = _yrxrqQ[_yrxQ9C[8]](_yrxcze, _yrxBXT(775, _yrx7jl) ? 1 : 0, _yrxyqC || 0, _yrxBXT(789))

算出了第二段值的数组

在经过_yrxwbi函数处理为字符串

最后拼接这俩段就是m的值了

剩下的你们就慢慢扣啦

坑人点在获取了 offset的值填进去

以及这个js里面的值是会变动的

例如79这个的值 还有offset返回的值 一共有三处

我的做法是正则替换进去 因为我没去补环境 如果是补环境的话直接解密拿到js补头运行就行了 过程过于繁琐 肝不够大



这个js是在html页面计算出来的

搜索一下页面就能找到啦

流程是 先算出js 然后运行js拿到m的值


第十一题

略(狗哥太忙了没空讲)




讲得有些许匆忙 各位大佬们见谅一下


[完]

相关文章
|
人工智能 测试技术 Go
如何使用 Google 的 Gemini
Google Gemini是谷歌发布的人工智能大模型,能够在从数据中心到移动设备等不同平台上运行。本文将介绍Gemini以及如何使用Gemini。
2154 0
|
5月前
|
机器学习/深度学习 存储 算法
光伏储能虚拟同步发电机并网仿真模型(Simulink仿真实现)
光伏储能虚拟同步发电机并网仿真模型(Simulink仿真实现)
278 7
|
Java 应用服务中间件 Maven
Springboot项目将jar包修改为war包操作步骤
Springboot项目将jar包修改为war包操作步骤 文章目录 Springboot项目将jar包修改为war包操作步骤 1.修改jar为war包形式 2.去除Spring Boot内置Tomcat 3.增加Tomcat启动插件 4.使用maven编译程序
1039 0
Springboot项目将jar包修改为war包操作步骤
|
算法
记一次requests.get()返回数据乱码问题
【10月更文挑战第21天】使用`requests.get()`请求网页时遇到乱码问题,尝试通过设置`encoding`和使用`apparent_encoding`自动判断编码均无效。最终发现问题是由于请求头中的`Accept-Encoding`包含了`br`(Brotli压缩格式),导致响应内容未被正确解压。移除`Accept-Encoding`中的`br`后,问题得到解决。
500 7
|
数据采集 JavaScript 前端开发
同花顺股票数据逆向:Cookie加密和Hook注入
同花顺股票数据逆向:Cookie加密和Hook注入
1829 0
|
搜索推荐 前端开发 UED
惊!这些前端技巧竟然能让你的网站在搜索引擎中获得更高排名!
【10月更文挑战第30天】在数字化时代,网站的搜索引擎排名直接影响流量和品牌知名度。本文通过四个真实案例,揭秘前端技巧如何提升搜索引擎排名:1. 关键词优化与布局;2. 高质量内容与多媒体优化;3. 网站结构优化与URL优化;4. 提升页面加载速度。这些技巧不仅提高排名,还能增强用户体验,助力业务发展。
259 3
|
机器学习/深度学习 数据采集 TensorFlow
使用Python实现智能股票交易策略
使用Python实现智能股票交易策略
567 0
|
监控 安全 应用服务中间件
wordpress被恶意搜索攻击(网址/?s=****)解决方法。
综上所述,保护WordPress网站不受恶意搜索攻击涉及到多种技术和策略。从使用插件到配置服务器和CDN服务,每种方法都为网站的安全提供了一个防御层。务必定期更新维护你的网站,保持安全插件和WordPress核心的最新状态,以预防可能出现的新攻击方式。安全是一个持续的过程,对网站进行定期的安全审查和优化是至关重要的。
406 0
|
JavaScript
解决Node.js 运行的时候出现中文乱码问题
解决Node.js 运行的时候出现中文乱码问题
|
存储 缓存 网络协议
淘宝HTTP3/QUIC技术演进与实践
淘宝HTTP3/QUIC技术演进与实践
1115 0
淘宝HTTP3/QUIC技术演进与实践