某系的新版_signature分析

简介: 某系的新版_signature分析
项目地址:aHR0cHM6Ly93d3cudG91dGlhby5jb20vYy91c2VyL3Rva2VuL01TNHdMakFCQUFBQWlBY2U1cWhIMzFUZXVCM1VkcEZNVjh1LXV3eTJMbm9pcUkxMHVaSHFBdDgvP3NvdXJjZT1mZWVk

观前提示:

本文章仅供学习交流,切勿用于非法通途,如有侵犯贵司请及时联系删除




前言

太久没更新了 差不多半年了吧 突然想起自己还有个公众号 赶紧回来更一篇

这次给的例是挺多人搞过个 听说前段时间更新过一次 就重新看了一下 其实也差不多 万变不离其宗的





定位加密位置

直接全局搜索 _signature

可以看到变量 n 对应的就是 j 函数 打上断点 跟进去

进来后步进一步一步看


(null === (a = window.byted_acrawler) || void 0 === a ? void 0 : null === (n = a.sign) || void 0 === n ? void 0 : n.call(a, o)) || ""br

到这里 就找到我们所需要的加密入口了






代码分析

接着上面的位置打上断点 继续步进会进入到一个新的js页面

这里就是我们需要分析的代码了 全部复制到node里面运行看看


报错 这不就是要补点东西给它嘛

直接去浏览器取一个 referrer 补上即可

补完后再次运行发现不报错了 那我们调用函数看看

出现了第二个错误 这是为什么呢?

通过观察代码得知 新版的代码尾巴加了点基本检测 整理一下list

[
    ,
    ,
    "undefined" != typeof exports ? exports : void 0,
    "undefined" != typeof module ? module : void 0,
    "undefined" != typeof define ? define : void 0,
    "undefined" != typeof Object ? Object : void 0,
    void 0,
    "undefined" != typeof TypeError ? TypeError : void 0,
    "undefined" != typeof document ? document : void 0,
    "undefined" != typeof InstallTrigger ? InstallTrigger : void 0,
    "undefined" != typeof safari ? safari : void 0,
    "undefined" != typeof Date ? Date : void 0,
    "undefined" != typeof Math ? Math : void 0,
    "undefined" != typeof navigator ? navigator : void 0,
    "undefined" != typeof location ? location : void 0,
    "undefined" != typeof history ? history : void 0,
    "undefined" != typeof Image ? Image : void 0,
    "undefined" != typeof console ? console : void 0,
    "undefined" != typeof PluginArray ? PluginArray : void 0,
    "undefined" != typeof indexedDB ? indexedDB : void 0,
    "undefined" != typeof DOMException ? DOMException : void 0,
    "undefined" != typeof parseInt ? parseInt : void 0,
    "undefined" != typeof String ? String : void 0,
    "undefined" != typeof Array ? Array : void 0,
    "undefined" != typeof Error ? Error : void 0,
    "undefined" != typeof JSON ? JSON : void 0,
    "undefined" != typeof Promise ? Promise : void 0,
    "undefined" != typeof WebSocket ? WebSocket : void 0,
    "undefined" != typeof eval ? eval : void 0,
    "undefined" != typeof setTimeout ? setTimeout : void 0,
    "undefined" != typeof encodeURIComponent ? encodeURIComponent : void 0,
    "undefined" != typeof encodeURI ? encodeURI : void 0,
    "undefined" != typeof Request ? Request : void 0,
    "undefined" != typeof Headers ? Headers : void 0,
    "undefined" != typeof decodeURIComponent ? decodeURIComponent : void 0,
    "undefined" != typeof RegExp ? RegExp : void 0
]

根据这段代码稍微补一下

最终得出

var exports = undefined,
    module = undefined,
    define = undefined;

可能目前还没用到其他检测 不代表以后风控不会加强 这三行还可以再简化的

v8环境可以不用补这几段

加上这一段后成功拿到运行函数

接着就是带上参数跑起来看看啦

又是一处报错 还是老规矩 报啥错就补啥

最终 补了 href protocol userAgent

可能有人会说:欸 小lin啊 你怎么知道需要这些环境的 它没报错这些啊?

不要慌 可以用代理大法or插桩大法

找到指定位置 打上console 看看调用了啥就行啦

搜索 S[R] = S[R][A] 可以搜索到俩处 都可以插桩


补完便可以拿到值了

拿到的值再postman里面测试一下看看

成功拿到数据 完美撒花?????

有人又要问了:小lin啊,你这怎么这么短啊 我看别人都好长 就你的这么短

wocao 怎么可以被说短呢 那可不行啊

用插桩or代理可以看到 其实 这js里面还取用了cookie值

那不是补上就好了吗 这简单

某个人胸有成竹的补上下面的代码并运行

window.document.cookie="tt_webid=6963122183099254302; ttcid=ae060c139b024662a70f3f5c7efd19ed50; csrftoken=25b800355bc69db20102b071c3e7de5d; __ac_signature=_02B4Z6wo00f01WaVS3gAAIDAsVNmA2eZ1WFmsU.AADkI7yNYhjiAwFahZq5.fikL135xcMOnizL69KL-qaL2IXBoHlxsgXmUcQhrJCbv27uj.DSexI7E4xFkhJHZ-eQ0YsZWIOXJA8LdEm9v0a; _S_WIN_WH=1920_937; _S_DPR=1; _S_IPAD=0; s_v_web_id=verify_koy65lqk_AAlwyoBG_5x4R_4Zpk_A4oP_vr5u0TzrzdJb; MONITOR_WEB_ID=eab8ca9e-33f9-46c3-ad16-4b35d4696e87; ttwid=1%7CaViRLWI19OZq4nUGH_emezypLNf4sD0OHrJvplMlFVw%7C1621594797%7C509d995bfabe7218415528577a976413c3898116ea6754d78532ae64ca993512; tt_scid=zklw0zHPt-DKwJmAGLQCxJTDlquEzMCO-Nd8g2S3mInLIwTlXdsCcQw34GSAbf7b17c9"

emmmm..........

cao!

这不是玩嘛

仔细思考了一波 该不会cookie在整段函数运行的时候给重写了吧

害 太聪明了我 果真是给重写了 既然如此 我就稍后写入cookie不就行了嘛

这不就行了嘛 我也很长的

最后再放到postman里面测试一下

正常拿到数据 牛啊牛啊





完美撒花 感谢各位大佬观看



[完]



相关文章
|
Java
isv.code-invalid(授权码code无效)-自查方案
说明:  针对商户测试第三方应用授权、用户信息授权、获取会员信息等产品时,报错“isv.code-invalid(授权码code无效)”的问题。 第三方应用授权正式环境拼接规则: https://openauth.
3873 0
|
2月前
|
API C# 开发工具
【Azure Developer】使用Azure Key Vault 的Key签名后,离线验证的一些参考资料
【Azure Developer】使用Azure Key Vault 的Key签名后,离线验证的一些参考资料
|
4月前
|
运维 安全 数据管理
数据管理DMS产品使用合集之windows上安装网关时,token都是新的,报错:无效的token,该怎么办
阿里云数据管理DMS提供了全面的数据管理、数据库运维、数据安全、数据迁移与同步等功能,助力企业高效、安全地进行数据库管理和运维工作。以下是DMS产品使用合集的详细介绍。
50 4
|
4月前
|
消息中间件 Serverless Go
Serverless 应用引擎操作报错合集之通过自定义域名配置jwt认证,始终报错:"Code": "JWTTokenIsInvalid",是什么导致的
Serverless 应用引擎(SAE)是阿里云提供的Serverless PaaS平台,支持Spring Cloud、Dubbo、HSF等主流微服务框架,简化应用的部署、运维和弹性伸缩。在使用SAE过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
3月前
|
PHP 开发工具
tp5+微信公众号服务器配置时使用官方sdk还是token验证失败
tp5+微信公众号服务器配置时使用官方sdk还是token验证失败
26 0
|
5月前
|
存储 SQL 分布式计算
ApacheHudi常见问题汇总
ApacheHudi常见问题汇总
82 0
|
数据安全/隐私保护
App逆向百例|05|某视频App参数分析
App逆向百例|05|某视频App参数分析
293 0
|
Web App开发 缓存 算法
某音系tiktok设备注册
某音系tiktok设备注册
837 1
|
Web App开发 机器人 数据库
RPA常见问题处理指南-1
RPA常见问题处理指南
RPA常见问题处理指南-1
|
算法 Java 数据安全/隐私保护
App逆向百例|12|某电商App Sign分析
App逆向百例|12|某电商App Sign分析
375 0