首页 > 其他分享 >js逆向实战之智通财经网token参数解密

js逆向实战之智通财经网token参数解密

时间:2024-04-25 10:44:52浏览次数:20  
标签:sha1 加密 url Object js token 智通 time

url:https://www.zhitongcaijing.com/immediately.html

分析过程

  1. 抓流量包,主要关注如下这条数据包。
    image
    响应数据如下。
    image
    由于该url中的token参数是经过加密的,所以目的就是找到加密过程。

  2. 关键字搜索immediately/content-list.html,只有两条记录,第一处是个html代码,肯定不是,所以只需要看第二处。
    image
    image
    image

  3. 打断点,刷新界面,触发该断点。
    image
    但通过调用栈发现都是在自我调用,并且此处看不到token关键字,放弃,换另一种思路。

  4. 搜索关键词token,符合的只有四处。
    image
    最下面两处由于url地址都不对可以排除。
    image
    image
    第一处由于是个POST方式,跟我们想要的GET方式传参不一致,也排除。
    image
    只剩下最后一处了,且是GET传参,符合。
    image

  5. 打断点,触发。
    image
    这个url不对,放过去。滚动一下界面,又触发了断点。
    image
    这个url就对了,主要看token是怎么生成的。

  6. "token=".concat(Object(i["tokenCrypto"])(u(u({}, e), n))),主要看Object(i["tokenCrypto"])u(u({}, e), n)是什么。
    u(u({}, e), n)的值如下,相当于是一个字典,里面带有时间戳等属性。
    image
    Object(i["tokenCrypto"])的定义如下。
    image
    image
    打断点,让程序运行到这里。
    image
    看call stack,发现是Object(p["a"])(e(t))中调用了e(t)函数。
    image
    看到传给e函数的参数如下。
    image
    单步向下走,看最后返回的结果是什么。
    image
    image
    从结果中就可以得知e函数就是用&将传进去的参数进行了拼接。
    再看Object(p["a"])的定义。
    image
    image
    看到关键字SHA1了,原来是个sha1算法,加密的数据就是e函数执行完后的数据,所以整个逻辑就非常清楚了。
    image

  7. 编写python代码获取数据。

import time
import hashlib
import requests

timestamp = int(time.time())
# 需要加密的数据
plaintext = "last_update_time={}&platform=web&roll=gt&type=all".format(timestamp)

# sha1加密
sha1_hash = hashlib.sha1()
sha1_hash.update(plaintext.encode("utf-8"))
# print(sha1_hash.hexdigest())    # 0b87a5231b9b13d77b9042ba660bedf90f92a235
token = sha1_hash.hexdigest()[2:]

url = "https://www.zhitongcaijing.com/immediately/content-list.html?type=all&roll=gt&token={}" \
      "&last_update_time={}&platform=web".format(token, timestamp)
resp = requests.get(url, headers={"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, " \
                                               "like Gecko) Chrome/123.0.0.0 Safari/537.36"})
print(resp.text)

运行,成功获取到数据。
image

标签:sha1,加密,url,Object,js,token,智通,time
From: https://www.cnblogs.com/sbhglqy/p/18157066

相关文章

  • 使用 NestJS 和 qrcode.js 创建 QR 码生成器 API
    前言QR码(QuickResponseCode)是一种二维码,于1994年开发。它能快速存储和识别数据,包含黑白方块图案,常用于扫描获取信息。QR码具有高容错性和快速读取的优点,广泛应用于广告、支付、物流等领域。通过扫描QR码,用户可以快速获取信息和实现便捷操作,为现代生活带来便利。在本教程中,小编......
  • js获取当前的操作系统
    在JavaScript中,没有直接的方式来获取操作系统的信息,因为出于安全考虑,浏览器不允许访问这些信息。但是,你可以通过用户代理字符串(User-Agentstring)来间接地推断操作系统信息。以下是一个简单的JavaScript函数,用于解析用户代理字符串以推断操作系统://获取操作系统类型fu......
  • boss直聘__zp_stoken__逆向
    声明本文章中所有内容仅供学习交流,抓包内容、敏感网址、数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除!目标网站aHR0cHM6Ly93d3cuemhpcGluLmNvbS93ZWIvZ2Vlay9qb2I/cXVlcnk9SmF2YSZjaXR5PTEwMTI4MTYwMA== z......
  • Python基础-模块和包(hashlib、random、json、time、datetime和os模块)
    什么是模块和包?模块:python中的.py文件,将一些功能按照某一种维度进行划分;自定义、内置。、第三方.包:文件夹里面好多个.py文件。在讨论的时候,一般统称为:模块。学习:自定义模块和包+使用内置模块+使用第三方模块+使用1自定义模块和包1.1快速上手-项目文件夹(......
  • idea启动jsp项目
    idea启动jsp项目1、idea打开jsp项目:2、项目配置:3、项目启动~~~~~~~~~~~~~~~~~~~~~over~~~~~~~~~~~~~~~~   ......
  • js逆向实战之莫莫铺子sign参数解密
    url:http://mmpz.ttzhuijuba.com/?r=/l&cids=1&site=classify&sort=0分析过程抓取流量包。主要关注图中框起来这条流量包,因为这条流量包返回的是当前页面数据。该流量包的url地址有个加密的参数sign,目的就是找到sign参数的加密过程。按照常规思路会去搜索url中的关键......
  • vis.js时间轴数据处理
    代码案例<!doctypehtml><html><head><title>Timeline</title><scripttype="text/javascript"src="https://unpkg.com/vis-timeline@latest/standalone/umd/vis-timeline-graph2d.min.js"></script>......
  • vis.js关系图
    代码案例<!DOCTYPEhtml><htmllang="en"><head><title>Network</title><scripttype="text/javascript"src="https://unpkg.com/vis-network/standalone/umd/vis-network.min.js"......
  • vis.js时间轴
    代码案例<!doctypehtml><html><head><title>Timeline</title><scripttype="text/javascript"src="https://unpkg.com/vis-timeline@latest/standalone/umd/vis-timeline-graph2d.min.js"></script>......
  • 银行卡归属地查询JSON
    [{"bankName":"中国邮政储蓄银行","bankCode":"PSBC","patterns":[{"reg":"^(621096|621098|622150|622151|622181|622188|622199|955100|6210......