猿人学js逆向比赛第一届第九题

首先遇到了udc文件中的无限debugger,这里利用ast进行代码还原,处理后有下面两个监测点,进行手动删除。

看到页面中的js也被混淆了,这里将页面中的js也处理一下再替换到原始页面中。同时要注意删除处理后代码中的一些格式化检测。如下面这样。

经过手动删除无效代码后得到了下面的js

那么这就很明显了,这是循环3次调用 decrypt函数然后得到最后一次的结果并加了m和r得到cookie

通过进入decrypt函数中可以看到这应该是一个rsa算法。这里首先按照标准算法尝试。

因为传入的参数看着像时间戳,可以判断出这个参数应该是动态的,所以这里要从页面中动态取出。

python 复制代码
t = re.search(r'decrypt,\'(\d+)\'', response.text)
if t:
    t = t.group(1)
    print(t)

通过正则表达式可以从页面中取出这个时间戳。

经过手动拼接后更新cookie再次访问,可以看到已经能正常访问到页面数据了。虽然可以正确拿到页面数据了,但是访问api是被拒绝的。

这里还是怀疑m生产的不对,所以这里重新比较了m重新还原了一次页面的代码。

可以看到这里的m循环次数不再是3次了,那么重新从页面中匹配出循环次数再试一下。重新设置完之后还是无法拿到页面数据。这里尝试从原js代码中抠取加密函数。可以看到没有问题了。

相关推荐
于指尖飞舞10 小时前
java后端面试题(jvm极简)
java·开发语言·jvm
java_cj10 小时前
从kubectl源码学Cobra:打造专业级Go命令行工具的完整实践
运维·开发语言·后端·云原生·golang·kubernetes·k8s
晓131310 小时前
【Cocos Creator 3.x】篇——第五章 项目实战优化技术
前端·javascript·游戏引擎
AZaLEan__10 小时前
JavaScript 基础语法
开发语言·javascript·ecmascript
有梦想的程序星空10 小时前
【环境配置】使用 Vue CLI 构建 Vue 项目脚手架完整指南
前端·javascript·vue.js
影视飓风TIM10 小时前
C++ 核心语法笔记:拷贝构造、深浅拷贝与运算符重载
java·开发语言·javascript
之歆10 小时前
Ajax 进阶:跨域、CORS、JSONP 与请求封装实战
前端·javascript·ajax
jieyucx10 小时前
Go MongoDB 实战完全指南|从连接、CRUD、BSON结构体映射到高并发避坑全解
开发语言·mongodb·golang
Shadow(⊙o⊙)10 小时前
信号2.0,深入信号三张表block pending handlers,core文件的使用,信号执行逻辑:CPU虚拟内存物理内存,时钟源,软中断。
linux·运维·服务器·开发语言·c++
极创信息10 小时前
信创产品适配测试认证,域名和SSL是必须的吗?
java·开发语言·网络·python·网络协议·ruby·ssl