js逆向不用扣代码系列(2)—3分钟快速破解猿人学第16题(webpack初体验)

2023-11-06

网址:http://match.yuanrenxue.com/match/16

在这里插入图片描述

1.加密参数分析

进行翻页请求抓包,发现加密参数为m
在这里插入图片描述
打上xhr断点
在这里插入图片描述
调试堆栈,发现m加密代码位置在9431行 r.m = n[e(528)](btoa, p_s),p_s为时间戳,n[e(528)]鼠标选中放在上面显示为一个函数,m是通过n[e(528)]这个函数传入btoa和时间戳加密生成的,到此分析完毕。
在这里插入图片描述

2.利用selenium执行javascript,并用flask做服务端接口

先执行下面代码,打开猿人学第16题界面

# -*- coding:utf-8 -*-
from selenium import webdriver
from flask import Flask, request


options = webdriver.ChromeOptions()
options.add_argument("--disable-blink-features=AutomationControlled")
options.add_experimental_option("excludeSwitches", ["enable-automation"])

driver = webdriver.Chrome(options=options, executable_path='chromedriver')
driver.maximize_window()

url = 'http://match.yuanrenxue.com/match/16'
driver.get(url)


app = Flask(__name__)
app.debug = False


def get_encrypt_data(timestamp):
    js = """return get_m(btoa, "{}");""".format(timestamp)
    decrypt_data = driver.execute_script(js)
    return decrypt_data


@app.route('/get_m', methods=['GET'])
def douban():
    timestamp = request.args.get("timestamp")
    m = get_encrypt_data(timestamp)
    return m


if __name__ == '__main__':
    app.run()

然后打开控制台,打下断点,如上面第一步骤中所示位置,后在控制台输入get_m = n[e(528)],使n[e(528)]赋值给get_m这个函数,然后过掉断点,关闭控制台即可。现在selenium就能够执行get_m这个函数了,
在这里插入图片描述

3.发送请求,获取结果
# -*- coding:utf-8 -*-
import requests
import time


def get_m(timestamp):
    url = 'http://127.0.0.1:5000/get_m?timestamp={}'.format(timestamp)
    resp = requests.get(url=url)
    m = resp.text
    return m


headers = {"User-Agent": "yuanrenxue.project"}
sums = 0
for i in range(1, 6):
    timestamp = str(int(time.time() * 1000))
    m = get_m(timestamp)
    url = f"http://match.yuanrenxue.com/api/match/16?page={i}&m={m}&t={timestamp}"
    response = requests.get(url=url, headers=headers).json()
    for data_dict in response["data"]:
        sums += data_dict["value"]

print(sums)

总结:当别人还在还原混淆代码、扣代码的时候,结果我们已经计算出来了,不用关心其中的任何加密逻辑,是不是非常高效。而且思路代码非常固定,只需几分钟就可以搞定

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

js逆向不用扣代码系列(2)—3分钟快速破解猿人学第16题(webpack初体验) 的相关文章

  • 业务安全及实战案例

    业务安全 关于漏洞 注入 业务逻辑 信息泄露 A04 2021 Insecure Design 在线靶场PortSwigger 1 概述 1 1 业务安全现状 1 1 1 业务逻辑漏洞 近年来 随着信息化技术的迅速发展和全球一体化进程的不断
  • php读写excel文件

    1 引入包 有不少提供读写excel文件的包 这里选择比较常用的一个 加到自己的项目里就好了 phpoffice phpspreadsheet 1 8 2 2 读取文件
  • Android中的USB中的UsbAccessory和UsbDevice的区别

    转载自 http www crifan com android usb usbaccessory vs usbdevice utm source tuicool utm medium referral UsbAccessory和UsbDev
  • MySQL更新表的记录详解

    目录 前言 前言 一 更新数据记录 1 特定数据记录 2 所有数据记录 总结 前言 更新数据记录是数据操作中常见的操作 可以更新表中已经存在数据记录中的值 在MySQL中可以通过UPDATE语句来实现更新数据记录 该SQL语句可以通过如下几
  • 5个炫酷登录页面,拿去就能用(附源码)

    5个炫酷登录页面 拿去就能用 附源码 登录页面 觉得显示效果很好 借鉴其他博主的 喜欢的可以收藏关注 不商用 只为学习传播 目录 1 炫酷星空登录 2 动态云层登录 3 深海灯光水母登录 4 炫酷蛛网登录 5 彩色气泡登录 1 炫酷星空登录
  • 响应式网页设计(Responsive Web Design)的核心原理

    聚沙成塔 每天进步一点点 专栏简介 响应式网页设计的核心原理 优点和缺点 优点 缺点 写在最后 专栏简介 前端入门之旅 探索Web开发的奇妙世界 欢迎来到前端入门之旅 感兴趣的可以订阅本专栏哦 这个专栏是为那些对Web开发感兴趣 刚刚踏入前
  • CVE-2022-26134 Confluence OGNL RCE 复现

    一 漏洞概述 Atlassian Confluence 是一款各企业广泛使用的 wiki 系统 在Atlassian Confluence Server and Data Center上存在OGNL 注入漏洞 远程攻击者在未经身份验证的情况
  • Servlet之间传递数据

    转自 http jallay iteye com blog 256004 1 如何让用户的请求数据从一个Servlet传递给另一个Servlet 第一种方式 通过超链接传递数据 第二种方式 通过表传递取参数 第三种方式 通过setAttri
  • 『数据结构』B树(B-Tree)及其变体 B+树,B*树

    原文地址 1 背景 当有大量数据储存在磁盘时 如数据库的查找 插入 删除等操作的实现 如果要读取或者写入 磁盘的寻道 旋转时间很长 远大于在 内存中的读取 写入时间 平时用的二叉排序树搜索元素的时间复杂度虽然是 O log2n O l o
  • BBR拥塞算法的简单解释

    TCP BBR的ACM论文中 开篇就引入了图1 以此来说明BBR算法的切入点 为何当前基于丢包探测的TCP拥塞控制算法还有优化空间 BBR算法的优化极限在哪儿 图1 为了理解这张图花了我整整一个晚上的时间 它使我重新审视了所有基础概念 而我
  • vue2.js初探

    今天学习了一下vue2 js 感觉很好用 一个是把相同的功能组件化了 把他定义一个标签 不用多次开发重复的代码 直接加标签就可以了 还有就是他把数据和标签的显示修改完全分开了 之前用jQuery开发 如果数据变动了 需要用jquery回调事
  • 计算机网络第八版——第一章课后题答案(超详细)

    第一章 该答案为博主在网络上整理 排版不易 希望大家多多点赞支持 后续将会持续更新 可以给博主点个关注 第二章 答案 1 01 计算机网络可以向用户提供哪些服务 解答 这道题没有现成的标准答案 因为可以从不同的角度来看 服务 首先要明确的是
  • ThreadX 内部系统时钟服务

    ThreadX中 有两个函数可以获取和设置内部系统时钟服务 tx time get 获取当前时间 tx time set 设置当前时间 tx time get 获取当前时间 原型 ULONG tx time get VOID 描述 这项服务
  • VUE安装问题

    启动应用 npm run serve 默认进入为 http localhost 8080 由于部署在虚拟化linux上 需远程访问 需将localhost修改为服务器IP 1 修改package json 新增host 0 0 0 0 2
  • 【Flutter 系列——1】Flutter环境搭建及配置这一篇就够了(Windows)

    最近正式入坑Flutter 首先从环境搭建开始 看了网上好多关于Windows环境搭建的资料 基本都是按官方文档写的 看完的感受是 还不如直接去看官方文档 官方英文文档传送门 Get Started Install on Windows 本
  • 数据要素流通视角下数据安全保障研究报告

    报告围绕数据要素流通视角下流通数据 流通活动 流通设施的安全需求 分析健全我国数据安全保障体系的推进思路 并从分类分级 流通环境 安全技术 协同共治等方面提出措施建议 为完善我国数据要素流通视角下数据安全保障提供有益参考与借鉴 关注公众号
  • WinCE5.0显卡驱动修改笔记

    WinCE5 0显卡驱动修改笔记公司前段时间让我在Geode上安装一个CE5 0 我把系统安装好之后发现显卡驱动不支持开发板的屏幕 我们的屏幕是800x480的 所以我只能自己动手写修改了一下驱动让它能够支持800x480 一下是我对驱动的
  • python报错code for hash md5 was not found解决方案

    因为开发机服务器不能上网 只能手动安装Python 但是装完后import hashlib出现异常 出现不支持sha256 sha512 md5等错误 现象如下 gt gt gt import hashlib ERROR root code
  • 排序算法之时间复杂度为O(N^2)的算法

    背景知识 排序算法算是比较基础的算法了 但是在面试过程中偶尔也会被问到 虽然很多语言都内置了排序函数 例如php的sort函数等等 但是还是有必要聊聊排序算法 这篇文章中将介绍时间复杂度为O N 2 的几个排序算法 本文基于从小到大排序讲解

随机推荐

  • react面试题(30个)

    1 React Native相对于原生的ios和Android有哪些优势 react native一套代码可以开发出跨平台app 减少了人力 节省了时间 避免了 iOS 与 Android 版本发布的时间差 开发新功能可以更迅速 等等 2
  • go语言后端调用以太坊rpc

    任务要求 使用golang作为后端语言 获取eth 私链 中的账户信息以及创建新的账号 1 启动geth geth identity aaron datadir data0 rpcport 8545 rpccorsdomain port 3
  • 分布式工程团队建设的十大教训

    转自 https www zybuluo com lsmn note 1059823 摘要 人才招聘 培养并促进分布式工程团队的发展并非一日之功 但是值得投资 Bruno提出了一些非常重要的见解 揭示了如何让团队全力以赴 而不管地理位置在哪
  • 初识springBoot

    springboot初学应该了解哪些 了解更多请看Spring Boot 初识 系列 会持续更新 Spring Boot 初识丨一 入门实战 Spring Boot 初识丨二 maven Spring Boot 初识丨三 starter S
  • springcloud搭建标配配置(参考)

    文章目录 架构图 shop parent 后端父项目 pom xml shop common 公共项目 pom xml CommonConstants UserInfo 用户对象 BusinessException 自定义异常 Common
  • SpringBoot+WebSocket+Netty实现消息推送

    实现思路 前端使用webSocket与服务端创建连接的时候 将用户ID传给服务端 服务端将用户ID与channel关联起来存储 同时将channel放入到channel组中 如果需要给所有用户发送消息 直接执行channel组的writeA
  • FusionSphere华为服务器虚拟化解决方案定位、架构、原理、应用场景

    目录 定位 应用场景 架构 原理 定位 华为fusion sphere虚拟化套件是业界领先的虚拟化解决方案 能够帮助客户解决数据中心基础设施的资源利用率低 业务上线周期时间长 数据中心能耗高等问题 应用场景 1 从应用侧来看 可应用于帮助客
  • 配置控制(自用)

    wd 123123 snh 123123
  • android开发之代理Window.Callback

    Window Callback是window类的一个内部接口 该接口包含了一系列类似于dispatchXXX和onXXX的接口 当window接收到外界状态改变的通知时 就会回调其中的相应方法 比如 当用户点击某个控件时 就会回调Windo
  • enncy-admin ant design vue 后台管理系统脚手架

    github 项目地址 https github com enncy enncy admin vue3 版本的请看我的另一个项目 https github com enncy funny blog admin 在 template 分支你可
  • Hyper-V服务开启or关闭

    1 概念 Hyper V服务是一个微软的虚拟机 所以如果要在windows上启动虚拟机的话 先需要把Hyper V服务功能关闭 2 Hyper V服务关闭 以管理员身份运行命令提示符 执行以下命令 bcdedit set hyperviso
  • BSN-DDC 基础网络关键知识点(五)跨链机制、官方 SDK 说明、开发资料汇总

    id BSN 2021 公众号 BSN研习社 2022年1月25日 区块链服务网络发展联盟 简称 BSN联盟 上线推出了 BSN DDC基础网络 并进入试商用阶段 同时 BSN DDC官网门户 ddc bsnbase com 上线发布 供D
  • C# 写入二进制文件

    试验1 using System using System IO using System Runtime Serialization Formatters Binary namespace 创建二进制文件 Serializable cla
  • 利用ChatGPT做市场营销的终极指南【建议收藏】

    ChatGPT是一种基于AI技术的语言模型 它可以与用户进行对话和交互 它被广泛应用于各个领域 包括市场营销 作为一名市场营销人员 您可以使用ChatGPT来获得创意 解决问题和生成内容 下面是190个ChatGPT提示 可帮助营销人员更好
  • C语言:数组的应用2——扫雷(递归实现地图变化)

    之前呢跟大家分享了二维数组实现的小游戏 三子棋 井字棋 大家都看懂了吗 今天给大家分享一下用数组实现的扫雷小游戏 先看看最终的效果吧 我设计的这个扫雷游戏 可以让玩家自己选择游戏难度 有简单 适中 困难三种模式 并利用递归的方式去改变地图
  • ThreadPoolExecutor类讲解

    一 ThreadPoolExecutor类讲解 1 线程池状态 五种状态 线程池 的状态 说明 RUNNING 允许提交并处理任务 SHUTDOWN 不允许提交新的任务 但是会处理完已提交的任务 STOP 不允许提交新的任务 也不会处理阻塞
  • 睿智的智能优化算法4——进化策略(Evolution Strategy)

    睿智的智能优化算法4 进化策略 Evolution Strategy 1 算法思路 1 1 杂交方式 1 2 基因突变 1 3 淘汰低适应度个体 2 与遗传算法对比 2 1 相同点 2 2 不同点 实现代码 GITHUB下载连接 遗传算法是
  • 字体文件只有本地服务器,解决字体文件Font跨域权限问题

    问题描述 Font from origin http trunk supply chain com has been blocked from loading by Cross Origin Resource Sharing policy
  • 海康、大华网络摄像机RTSP URL格式组成及参数配置

    经常有开发者咨询我们关于海康 大华网络摄像机RTSP url拼接规则和相关参数配置 虽然很简单 考虑到资料不全 写个博客记录下 1 海康摄像机 在IE浏览器输入网络摄像机的IP地址 输入配置的用户名 密码 登陆 视频 1 码率类型 主码流和
  • js逆向不用扣代码系列(2)—3分钟快速破解猿人学第16题(webpack初体验)

    网址 http match yuanrenxue com match 16 1 加密参数分析 进行翻页请求抓包 发现加密参数为m 打上xhr断点 调试堆栈 发现m加密代码位置在9431行 r m n e 528 btoa p s p s为时