T33 JS Fuck

简单介绍一下js fuck这类混淆:

1
JSFuck是一个基于JavaScript的元编程语言,它使只用六个基本字符:

[]()+!来构建任何有效的JavaScript代码。这个项目灵感来源于Brainfuck,但不同的是,JSFuck创建的代码可以直接在任何支持JavaScript的环境中运行,无需额外的编译或解释器。

在线编码工具(http://jsfuck.com)

image-20260512151844779

网站示例就是将alert(1)加密成jsfuck。

回到题目

一:抓包分析

image-20260512152116986

image-20260512152140633

能看到请求体和请求头实际只有一个加密点,也就是t

直接全局搜索x-caesar-token

image-20260512153345165

翻页后断住

通过分析能看到这个是一个全局的值,这里可以直接通过jsrpc调用了,往上查看代码

image-20260512153651176

看到了此函数有page、timestamp、type加一个jsfuck,因此此题目是jsfuck,我们可以断定,此处代码就是

也能通过如下方式去验证、断点jsfuck

image-20260512154115611

执行jsfuck

image-20260512154144524

二:加密代码分析

jsfuck变可视呢,我一般使用删除最后一个括号,然后执行

image-20260512154313432

image-20260512154345244

image-20260512154356628

能看到得到实际函数,断住后就是扣代码了

image-20260512154729816

直接先扣getDynamicShift()函数

image-20260512155055247

执行只需要补一个window和引入一个crypto-js就好

调用返回值与浏览器一致

image-20260512155216875

image-20260512155231317

接下来扣caesarEncrypt

image-20260512155422238

image-20260512155612132

image-20260512155626301

与浏览器一致

三:编码与验证

image-20260512180833715

最后细看数值与显示其实是不一致的,依据提示的恺撒密码加密

image-20260512181014912

找一下解密点,我是从请求头设置那里单步找到这个loadpagedata

image-20260512182948178

进去函数

image-20260512183127725

可以看到最后函数还是这个函数,只是将shift变成了-shift

image-20260512183942278

更多内容也在公众号更新:码字的秃猴

tuhou