07-js 逆向-返回数据加密(aes)

2023-10-31

目标:返回的结果有加密,把结果解密

 可以看到返回来的data是加密的,但是加密的数据并没有进行混淆,

这时候我们可以采用直接搜解密:decrypt

 直接发先我们的数据书通过aes加密的,我们开始些python代码

from Crypto.Cipher import AES    #encrypt加密
from Crypto.Util.Padding import pad   # decrypt解密
import base64
def aes_decrypt(data):
    key="BE45D593014E4A4EB4449737660876CE".encode("utf-8")#????
    iv="A8909931867B0425".encode("utf-8")
    aes=AES.new(key=key,mode=AES.MODE_CBC,IV=iv)
    raw = pad(data.encode("utf-8"), 16)
    aes_bytes = aes.decrypt(raw)
    return aes_bytes.decode()
b="MgwXi0KD1jGM575jK3LON58XYQrUR1goy7Unh54JnehzDbDxCXw6piS+aU5c2ocHtQjAN1kXgyHFs2YA3IdDRO2eqznJFVQeokMzj3AT2BQyWT8AO50ASbdIjodPf28rBnIkz+tny7JSoIYDUxZjmBz9S+dJOmo2QzHowt8SZuZOFF81SMbmje5ev1nLnBpG/N8eNBB5lYiJKlyMXVGNQ3nmXce1q2+X/9sfKXlWiQYIRUIKoFys8VjvGw4DWAelTNAqoxkxCyC/nLNs+CrxGBf5baFUfMzXGFzROeoPIsnKyU+4lA86MGvJiHe+vNFwU3gUbPt1Bct9ncqkP3nXhv7Gd5DS1FPhoyczCpRcMYVQsDWR3og8ZltfetZITTJY1lBOFq4+o9Ua8bNZmcTkAe5GgpILtVyvDIV/s3xBX1bfto9Qbuv6uuLOIUC0Lje3GKfA8VRp2YzQSECtDiGmRtCLZQRYeH8XWKG+PNg1inBLn6m6owzG8c+wXlHr3VdmYTWmDAQPCuHTxKUtXI6b0WobIsv7Lto1VAULWXH31DIEogMmjaApRt3yGp2rVnkXVfGd94Za4n57tpmz8i/3hNUiVx9IHJ4sYy9XFk8OZaJs03aX5nFqLZPTz1YhyJOzNAQ9BCXmVDJOUcshQPRtx4id8llLPN+0Anl7cPXhpWbiz2bxqXxSqAPk2WwioaL40vsntwiYf3l6oMz6m08NQTYaAxOFFBRydROPHQ1L8xZ7dhAMuKwGuNHGeW1dB4lHMh9w/+oVhvGaBpaC5UzAzGYXdt1ebc7+UgFh+rWLFXL+39K6pD78EemiiYjAr/Vvai276jsJ+sfseZ1EzbSYP1vxG8YMwesyVX8m+Zjo+fX0Fvex9Ae9Rpken8jPO0clgK1p8wEORGsnWNIeLbKEKt34I++smRSfp0BtS2IwidpxobbbJzrH0Te4mXpdiYYDg8STRCEPgWmaiBriw1JV6I/FUMX8Jc8SEbOEVsV8Id+L0raEWHIdMlbcCKn9lzKJwwkfJUaOzZeVoJJ77X3Hb1Tz7O/lvDAkFjKP/1O6QvSCC7AdKyf7Qew0yTBwKBM6FSf09reNfMOjmmQh3C13+j9z6rVD6XboCscOhQvKhro2v9TO5CJCYaDjeovzzOBE9pgT7YxrDxgbWK0tjss0obOku6QgzV8jqdV781oDfK+KtCNV7RgfWG6+kF9ZO9ecZ5GcIxRSS22JkFjKsvmxnkW1bqZwzIO52BkgQMx/7Eod/LKIuqCmoc41w3wiobBnCEywDEtAmSUBeGdqqn9OPxfdPkz4BTn/qbmhrb001ZA9abvtSGmg9UXMkvZiYZbZRjWiETEeEFMxGdkSt1rEeTZSx/BoqgZ8ZHdqvnSZBmdbU8CaUYT0a3mP50tRnMDclQITKuVrzxE1UxpOm5TNHa3Xj+zjEs42GTIta8ykqG4gBGieDyqHYVtJI+XG/kcZzTEmpdcVVjHaZJKzssVjeOawl6UcYGC6fmggNb04kNZlTZdgyT2TwjPg4c+BpdGuHFDO+wr7cFZMJE//FiBrh05NeLcu7+VeA3BlYV2Mnws="
a=aes_decrypt(b)
print(a)

发下他报错:'utf-8' codec can't decode byte 0xd3 in position 0: invalid continuation byte

我们开始该编码为:gbk,....还是不行,换一种思路来处理,把他该为base64然后编码

from Crypto.Cipher import AES    #encrypt加密
from Crypto.Util.Padding import pad   # decrypt解密
import base64
def aes_decrypt(data):
    key="BE45D593014E4A4EB4449737660876CE".encode("utf-8")#????
    iv="A8909931867B0425".encode("utf-8")
    aes=AES.new(key=key,mode=AES.MODE_CBC,IV=iv)
    # raw = pad(data.encode("utf-8"), 16)
    # aes_bytes = aes.decrypt(raw)
    # return aes_bytes.decode()
    bs = base64.b64decode(data)
    print(bs)
    resp = aes.decrypt(bs).decode()
    return resp
b="MgwXi0KD1jGM575jK3LON58XYQrUR1goy7Unh54JnehzDbDxCXw6piS+aU5c2ocHtQjAN1kXgyHFs2YA3IdDRO2eqznJFVQeokMzj3AT2BQyWT8AO50ASbdIjodPf28rBnIkz+tny7JSoIYDUxZjmBz9S+dJOmo2QzHowt8SZuZOFF81SMbmje5ev1nLnBpG/N8eNBB5lYiJKlyMXVGNQ3nmXce1q2+X/9sfKXlWiQYIRUIKoFys8VjvGw4DWAelTNAqoxkxCyC/nLNs+CrxGBf5baFUfMzXGFzROeoPIsnKyU+4lA86MGvJiHe+vNFwU3gUbPt1Bct9ncqkP3nXhv7Gd5DS1FPhoyczCpRcMYVQsDWR3og8ZltfetZITTJY1lBOFq4+o9Ua8bNZmcTkAe5GgpILtVyvDIV/s3xBX1bfto9Qbuv6uuLOIUC0Lje3GKfA8VRp2YzQSECtDiGmRtCLZQRYeH8XWKG+PNg1inBLn6m6owzG8c+wXlHr3VdmYTWmDAQPCuHTxKUtXI6b0WobIsv7Lto1VAULWXH31DIEogMmjaApRt3yGp2rVnkXVfGd94Za4n57tpmz8i/3hNUiVx9IHJ4sYy9XFk8OZaJs03aX5nFqLZPTz1YhyJOzNAQ9BCXmVDJOUcshQPRtx4id8llLPN+0Anl7cPXhpWbiz2bxqXxSqAPk2WwioaL40vsntwiYf3l6oMz6m08NQTYaAxOFFBRydROPHQ1L8xZ7dhAMuKwGuNHGeW1dB4lHMh9w/+oVhvGaBpaC5UzAzGYXdt1ebc7+UgFh+rWLFXL+39K6pD78EemiiYjAr/Vvai276jsJ+sfseZ1EzbSYP1vxG8YMwesyVX8m+Zjo+fX0Fvex9Ae9Rpken8jPO0clgK1p8wEORGsnWNIeLbKEKt34I++smRSfp0BtS2IwidpxobbbJzrH0Te4mXpdiYYDg8STRCEPgWmaiBriw1JV6I/FUMX8Jc8SEbOEVsV8Id+L0raEWHIdMlbcCKn9lzKJwwkfJUaOzZeVoJJ77X3Hb1Tz7O/lvDAkFjKP/1O6QvSCC7AdKyf7Qew0yTBwKBM6FSf09reNfMOjmmQh3C13+j9z6rVD6XboCscOhQvKhro2v9TO5CJCYaDjeovzzOBE9pgT7YxrDxgbWK0tjss0obOku6QgzV8jqdV781oDfK+KtCNV7RgfWG6+kF9ZO9ecZ5GcIxRSS22JkFjKsvmxnkW1bqZwzIO52BkgQMx/7Eod/LKIuqCmoc41w3wiobBnCEywDEtAmSUBeGdqqn9OPxfdPkz4BTn/qbmhrb001ZA9abvtSGmg9UXMkvZiYZbZRjWiETEeEFMxGdkSt1rEeTZSx/BoqgZ8ZHdqvnSZBmdbU8CaUYT0a3mP50tRnMDclQITKuVrzxE1UxpOm5TNHa3Xj+zjEs42GTIta8ykqG4gBGieDyqHYVtJI+XG/kcZzTEmpdcVVjHaZJKzssVjeOawl6UcYGC6fmggNb04kNZlTZdgyT2TwjPg4c+BpdGuHFDO+wr7cFZMJE//FiBrh05NeLcu7+VeA3BlYV2Mnws="
a=aes_decrypt(b)
print(a)

这时候发现他可以正常了

开始完整带代码

推荐一个网站:copy一个网站的curl,可以简单写出一个下爬虫

https://curlconverter.com/

 

 在编译器中发现:不能请求,使用先data,ts好像一个时间戳,我们去验证, 搜索ts发现js太多了,我们换一种思路,来搜索他的接口

果然是一个时间戳,有python实现

import time
a=int(time.time()*1000)

这时候看请求头是portal-sign签名搞的鬼,我们继续直接搜索

 是请求头的参数,在getsing函数加密得到的结果,点进去看

d函数进行加密的我们,缝缝补补高出完整的js代码

 可以看到在py中可以实现

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

07-js 逆向-返回数据加密(aes) 的相关文章

  • Python 3.6 DateTime Strptime 返回错误,而 Python 3.7 运行良好

    我刚刚为日期数据创建了一个数据类型 它返回一个datetime datetime object 这是代码 import datetime class Date def new cls dateTime args kwargs return
  • 测试交互式Python程序

    我想知道python的哪些测试工具支持交互式程序的测试 例如 我有一个由以下人员启动的应用程序 python dummy program py gt gt Hi whats your name Joseph 我想要仪器Joseph所以我可以
  • 如何生成大型网站的图形站点地图[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我想为我的网站生成图形站点地图 据我所知 有两个阶段 抓取网站并分析链接关系 提取树形结构 生成视觉上
  • 如何在python中确定过去的时区特定日期是否是夏令时?

    有没有办法检查特定时区在我指定的日期是否处于夏令时 test dt datetime year 2015 month 2 day 1 pst pytz timezone America Los Angeles test dt pst loc
  • 从 Django 基于类的视图的 form_valid 方法调用特殊(非 HTTP)URL

    如果你这样做的话 有一个 HTML 技巧 a href New SMS Message a 点击新短信打开手机的本机短信应用程序并预 先填写To包含所提供号码的字段 在本例中为 1 408 555 1212 以及body与提供的消息 Hel
  • Colab 的使用限制持续多久?

    当我对同一帐户的两个笔记本同时使用两个 GPU 约半小时后 Colab 已 12 小时未运行 此消息不断弹出 由于 Colab 中的使用限制 您当前无法连接到 GPU 自从我上次使用 colab 以来已经过去了大约两个小时 但该消息仍然弹出
  • 更改 numpy 数组的结构强制给定值

    如何缩小栅格数据的比例4 X 6大小成2 X 3如果 2 2 像素内的任何元素包含 1 则大小强制选择 1 否则选择 0 import numpy as np data np array 0 0 1 1 0 0 1 0 0 1 0 0 1
  • 类型错误:translate() 只接受一个参数(给定 2 个参数)[重复]

    这个问题在这里已经有答案了 我的代码在 python 2 x 版本上运行良好 但是当我尝试在 python 3 x 版本上运行它时 出现错误 主题 需要缩写短信编码中的任何消息 Code def sms encoding data star
  • Python ElementTree 获取带有命名空间的属性

    我试图访问 XML 中的 def 所以在这个例子中我会得到Evolus Common PlainTextV2作为输出 我似乎无法弄清楚如何获取具有名称空间的属性 如果我想得到id它工作得很好 Python for content ns in
  • 从 Spark 数据帧中过滤大量 ID

    我有一个大型数据框 其格式类似于 ID Cat date 12 A 201602 14 B 201601 19 A 201608 12 F 201605 11 G 201603 我需要根据大约 500 万个 Is 的列表来过滤行 最直接的方
  • Python 可选参数对

    我正在使用argparse模块获取两个可选的命令行参数 parser add argument start date nargs metavar START DATE help start date in YYYY MM DD parser
  • 使用 os.forkpty() 创建一个伪终端以 ssh 到远程服务器并与其通信

    我正在尝试编写一个 python 脚本 它可以 ssh 到远程服务器 并可以从 python 客户端执行 ls cd 等简单命令 但是 在成功 ssh 到服务器后 我无法读取伪终端的输出 任何人都可以在这里帮助我 以便我可以在服务器上执行一
  • 如何在自定义 django 命令中抽象出命令代码

    我正在我的应用程序下编写自定义 django 命令management commands目录 目前我在该目录中有 6 个不同的文件 每个文件都有不同的命令来解决独特的需求 然而 有一些实用程序是它们所共有的 抽象出这些公共代码的最佳方法是什
  • 获取 python 模块的 2 个独立实例

    我正在与以非 OO 方式编写的 python 2 x API 进行交互 它使用模块全局范围来处理一些内部状态驱动的东西 在它不再是单例的情况下需要它 并且修改原始代码 不是我们的 不是一个选择 如果不使用单独解释器的子进程运行 有什么方法可
  • 向结构化 numpy 数组添加字段

    将字段添加到结构化 numpy 数组的最简洁方法是什么 是否可以破坏性地完成 或者是否有必要创建一个新数组并复制现有字段 每个字段的内容是否连续存储在内存中 以便可以有效地完成此类复制 如果您使用 numpy 1 3 还有 numpy li
  • Django:显示管理员验证错误的自定义错误消息

    我正在使用 Django 1 2 4 我有一个模型 其中有一个需要验证的字段 当验证失败时 我想向用户显示自定义错误消息 模型编辑是在管理界面中完成的 这就是我目前正在做的事情 def clean fields self exclude N
  • python:xml.etree.ElementTree,删除“命名空间”

    我喜欢 ElementTree 解析 xml 的方式 特别是 Xpath 功能 我有一个带有嵌套标签的应用程序的 xml 输出 我想按名称访问此标签而不指定名称空间 这可能吗 例如 root findall molpro job 代替 ro
  • 重写 PyGObject 中的虚拟方法

    我正在尝试实施高宽几何管理 http developer gnome org gtk3 3 2 GtkWidget html geometry management在 GTK 和 Python 中用于我的自定义小部件 我的小部件是来自的子类
  • 如何正确将 tflite_graph.pb 转换为 detector.tflite

    我正在使用tensorflow对象检测API使用tensorflow中的ssdlite mobilenet v2 coco 2018 05 09来训练自定义模型模型动物园 https github com tensorflow models
  • 如何从 python 中的字符串中删除 ANSI 转义序列

    这是包含我的字符串的片段 ls r n x1b 00m x1b 01 31mexamplefile zip x1b 00m r n x1b 01 31m 该字符串是从我执行的 SSH 命令返回的 我无法使用当前状态下的字符串 因为它包含 A

随机推荐

  • 最新google play内购(com.android.billingclient) 教程 代码 封装 使用方法

    推荐一款全平台广告聚合SDK ADEasy https blog csdn net u013640004 article details 105416193 对于google play内购 网上已经有很多教程了 但大部分都是旧的V3版 这次
  • 【ISP】光的能量与颜色(1)

    1 光源能量传播方式 光是能量的一种传播方式 光源所以发出光 是因为光源中原子的运动有三种方式 热运动 跃迁辐射 受激辐射 前者为生活中常见 2 光子能量公式推导 E hv 这个是电磁波能量的假设 假设和频率成正比 h是测定值 E pc g
  • 【python】解决编辑器把py文件当作用例去运行

    1 在pycharm中遇到这样的情况 编辑器会把文件当做用例去跑 需要更改运行环境 2 点击edit去更改运行环境 如下即可
  • unity简单的登录注册界面

    publicclassStartmenuController MonoBehaviour publicstaticStartmenuController instance publicTweenScale startpanelTween 开
  • Redis-常用数据结构

    Redis常用数据结构 Redis提供了一些数据结构供我们往Redis中存取数据 最常用的的有5种 字符串 String 哈希 Hash 列表 list 集合 set 有序集合 ZSET 字符串 String 字符串类型是Redis最基础的
  • 三位加法器实现原理详解

    三位加法器实现原理详解 近日在读集智俱乐部里面的大牛们写的一本 科学的极致 漫谈人工智能 看到了简单的数学计算计算机是如何实现的 一切的一切都起于逻辑门 本是本科已经学过的东西 现在早已经忘得一干二净 算是重新学习吧 看到这些基本原理 很感
  • Android5.0新特性:Toolbar标题栏

    Toolbar标题栏 Android 5 0最主要的变化就是采用了全新的Material Design界面 Material Design就是材质化设计 材质化设计指的是物体是有质地的 两个控件之间室友实体的 不允许互相穿墙 并且引入了Z轴
  • 主线剧情07.1-Linux驱动编程-基本字符设备和设备树维护

    Linux 驱动编程 基本字符设备和设备树维护 教程可参考 100ask的 嵌入式Linux应用开发完全手册V4 0 韦东山全系列视频文档 IMX6ULL开发板 手册 和 配套视频 或其它家的 比如原子 野火等等 这里不是教程 文字 和 图
  • VsCode配置之verilog

    原文 https blog csdn net qq 39498701 article details 84668833 步骤一 更换Vivado自带文本编辑器 第一步 打开Vivado 再Tool菜单中 打开Settings 第二步 在Se
  • chrome 小技巧 ,保持元素的hover状态

    1 审查元素 选中a标签 或者需要hover的标签 2 点击右键 3 选择 force element state 4 选择相应的 hover active focus visited 等伪类
  • 【MD5】js逆向

    今天学习MD5网页的破解 进行js逆向 MD5 是单向加密的一种方法 为32位 在进行该种加密方式的破解时 并不能直接破解 只能通过网页模拟MD5的加密 破解网页的登陆或者数据的加载 红人点集的md5登陆界面 1 按f12 进入调式窗口 点
  • Pytorch学习1-GRU使用和参数说明

    import torch nn as nn import torch gru nn GRU input size 50 hidden size 50 batch first True embed nn Embedding 3 50 x to
  • Redis GEO 的java实现(通过Jedis)(GIS相关)

    1 Redis的安装参考 https blog csdn net zhu tianwei article details 44890579 2 Jedis使用2 90版本 maven配置
  • Python Selenium库的使用【从安装到实战】

    Selenium Selenium简介 Selenium 的安装 Selenium基础操作 定位UI元素 鼠标动作链 键盘常用 下拉列表 填充表单 非select元素 鼠标悬浮 以后展现 select元素 其他一些常用功能 弹窗处理 页面切
  • pyqt5的QWebEngineView无法播放网络视频

    这个问题是2021年中旬遇到的 最近系统重装又出现这个问题所以解决并记录一下 具体就是可以实现打开网页 但是如果是视频链接就无法播放 例如 做类似抖音 快手网页版的视频播放器 或者其他类型的视频播放器等等如封面图 都会遇到只有黑窗口但无法播
  • 全网最火Java面试题

    第一部分 JAVA 基础 第一节 IO NIO 第二节 反射 第三节 多线程 第四节 集合 第五节 Web 第六节 其他 第七节 关键字 第八节 操作符 第九节 基础类型 第十节 异常 第十一节 JDBC 第十二节 OOP 第二部分 JVM
  • 深入理解Qt4/Qt5信号和槽机制

    对于事件处理 MFC中使用的是消息映射机制 Qt使用的是信号和槽机制 在我看来 Qt的信号和槽比MFC功能更强大 也更灵活 1 信号和槽的简单介绍 一般格式 connect Sender SIGNAL signal Receiver SLO
  • C++派生类的不同继承方式对基类的访问权限

    经过我细心的整理 形成了这张表 一张表说明派生类的不同继承方式 对基类的访问权限 总的来说 对类的访问权限范围public
  • 2022 CISCN初赛 Satool

    一个2022年国赛初赛的LLVM PASS类pwn题 当时还完全没有接触过 所以直接放弃掉了 初赛结束之后决定入门一下这方面知识 看这篇题解之前最好先看看之前写的这篇入门文章 LLVM PASS类pwn题入门 然后我们正式开始这道题 首先从
  • 07-js 逆向-返回数据加密(aes)

    目标 返回的结果有加密 把结果解密 可以看到返回来的data是加密的 但是加密的数据并没有进行混淆 这时候我们可以采用直接搜解密 decrypt 直接发先我们的数据书通过aes加密的 我们开始些python代码 from Crypto Ci