某系的新版_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里面测试一下

正常拿到数据 牛啊牛啊





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



[完]



相关文章
|
6月前
|
前端开发 开发者
【微信公众号对接】有关签名一直报错,提示invalid signature问题(我的签名和使用微信开发者工具验证返回的签名的是一致的)但还是报错!!!
【微信公众号对接】有关签名一直报错,提示invalid signature问题(我的签名和使用微信开发者工具验证返回的签名的是一致的)但还是报错!!!
304 0
|
3月前
|
API Python
【Azure Developer】AAD API如何获取用户“Block sign in”信息(accountEnabled)
【Azure Developer】AAD API如何获取用户“Block sign in”信息(accountEnabled)
|
3月前
|
API C# 开发工具
【Azure Developer】使用Azure Key Vault 的Key签名后,离线验证的一些参考资料
【Azure Developer】使用Azure Key Vault 的Key签名后,离线验证的一些参考资料
|
4月前
|
Java 开发者 运维
开发与运维测试问题之OpenJDK官方还未正式发布Compact Object Headers如何解决
开发与运维测试问题之OpenJDK官方还未正式发布Compact Object Headers如何解决
36 1
|
5月前
|
运维 安全 数据管理
数据管理DMS产品使用合集之windows上安装网关时,token都是新的,报错:无效的token,该怎么办
阿里云数据管理DMS提供了全面的数据管理、数据库运维、数据安全、数据迁移与同步等功能,助力企业高效、安全地进行数据库管理和运维工作。以下是DMS产品使用合集的详细介绍。
61 4
|
4月前
|
运维 Devops API
阿里云云效操作报错合集之调用旧版API添加代码源时遇到500错误,是什么导致的
本合集将整理呈现用户在使用过程中遇到的报错及其对应的解决办法,包括但不限于账户权限设置错误、项目配置不正确、代码提交冲突、构建任务执行失败、测试环境异常、需求流转阻塞等问题。阿里云云效是一站式企业级研发协同和DevOps平台,为企业提供从需求规划、开发、测试、发布到运维、运营的全流程端到端服务和工具支撑,致力于提升企业的研发效能和创新能力。
|
5月前
|
存储 缓存 DataWorks
DataWorks操作报错合集之配置项目连通oss数据源 , 报The request signature we calculated does not match the signature you provided.如何解决
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
5月前
|
消息中间件 Serverless Go
Serverless 应用引擎操作报错合集之通过自定义域名配置jwt认证,始终报错:"Code": "JWTTokenIsInvalid",是什么导致的
Serverless 应用引擎(SAE)是阿里云提供的Serverless PaaS平台,支持Spring Cloud、Dubbo、HSF等主流微服务框架,简化应用的部署、运维和弹性伸缩。在使用SAE过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
110 2
|
4月前
|
移动开发 JavaScript
thinkPHP5.0开发微信H5页面分享接口signature验证失败,signature与微信 JS 接口签名校验工具返回结果不一致
thinkPHP5.0开发微信H5页面分享接口signature验证失败,signature与微信 JS 接口签名校验工具返回结果不一致
84 0
|
5月前
|
开发工具 图形学
视觉智能开放平台操作报错合集之用sdk调用的时候报code: 400, AccessKeyId is mandatory for this action. 错误,该如何处理
在使用视觉智能开放平台时,可能会遇到各种错误和问题。虽然具体的错误代码和消息会因平台而异,但以下是一些常见错误类型及其可能的原因和解决策略的概述,包括但不限于:1. 认证错误、2. 请求参数错误、3. 资源超限、4. 图像质量问题、5. 服务不可用、6. 模型不支持的场景、7. 网络连接问题,这有助于快速定位和解决问题。
336 0