某拍房数据采集

news2024/9/22 5:30:44

某拍房数据采集

  • 某拍房数据采集
    • 声明
    • 1.逆向目标
    • 2.寻找加密位置
    • 3.分析加密参数
    • 4.python代码书写

某拍房数据采集

声明

本文章中所有内容仅供学习交流,抓包内容、敏感网址、数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除!

1.逆向目标

点击翻页发包发现sign参数加密

在这里插入图片描述

2.寻找加密位置

通过全局搜索关键字发现sign参数特别多,很难找到我们需要的加密位置,可以通过在发包中的发起程序中找到所需要的js文件再进行搜索

在这里插入图片描述

进入js文件搜索后,下断点调试,阿里系加密token也是关键词

在这里插入图片描述

3.分析加密参数

根据控制台分析

o.token + "&" + a + "&" + s + "&" + n.data

o.token可以直接在请求时的cookie里面获取_m_h5_tk

在这里插入图片描述

a的值应该为时间戳,s的值应该为固定参数

在这里插入图片描述

n.data为表单数据中的值

在这里插入图片描述

通过扣代码将加密代码拿出来,js代码如下

p = function(e) {
        function t(e, t) {
            return e << t | e >>> 32 - t
        }
        function n(e, t) {
            var n, o, r, i, s;
            return r = 2147483648 & e,
            i = 2147483648 & t,
            s = (1073741823 & e) + (1073741823 & t),
            (n = 1073741824 & e) & (o = 1073741824 & t) ? 2147483648 ^ s ^ r ^ i : n | o ? 1073741824 & s ? 3221225472 ^ s ^ r ^ i : 1073741824 ^ s ^ r ^ i : s ^ r ^ i
        }
        function o(e, o, r, i, s, a, p) {
            return e = n(e, n(n(function(e, t, n) {
                return e & t | ~e & n
            }(o, r, i), s), p)),
            n(t(e, a), o)
        }
        function r(e, o, r, i, s, a, p) {
            return e = n(e, n(n(function(e, t, n) {
                return e & n | t & ~n
            }(o, r, i), s), p)),
            n(t(e, a), o)
        }
        function i(e, o, r, i, s, a, p) {
            return e = n(e, n(n(function(e, t, n) {
                return e ^ t ^ n
            }(o, r, i), s), p)),
            n(t(e, a), o)
        }
        function s(e, o, r, i, s, a, p) {
            return e = n(e, n(n(function(e, t, n) {
                return t ^ (e | ~n)
            }(o, r, i), s), p)),
            n(t(e, a), o)
        }
        function a(e) {
            var t, n = "", o = "";
            for (t = 0; 3 >= t; t++)
                n += (o = "0" + (e >>> 8 * t & 255).toString(16)).substr(o.length - 2, 2);
            return n
        }
        var p, u, c, d, l, f, m, g, y, v;
        for (v = function(e) {
            for (var t, n = e.length, o = n + 8, r = 16 * ((o - o % 64) / 64 + 1), i = new Array(r - 1), s = 0, a = 0; n > a; )
                s = a % 4 * 8,
                i[t = (a - a % 4) / 4] = i[t] | e.charCodeAt(a) << s,
                a++;
            return s = a % 4 * 8,
            i[t = (a - a % 4) / 4] = i[t] | 128 << s,
            i[r - 2] = n << 3,
            i[r - 1] = n >>> 29,
            i
        }(e = function(e) {
            e = e.replace(/\r\n/g, "\n");
            for (var t = "", n = 0; n < e.length; n++) {
                var o = e.charCodeAt(n);
                128 > o ? t += String.fromCharCode(o) : o > 127 && 2048 > o ? (t += String.fromCharCode(o >> 6 | 192),
                t += String.fromCharCode(63 & o | 128)) : (t += String.fromCharCode(o >> 12 | 224),
                t += String.fromCharCode(o >> 6 & 63 | 128),
                t += String.fromCharCode(63 & o | 128))
            }
            return t
        }(e)),
        f = 1732584193,
        m = 4023233417,
        g = 2562383102,
        y = 271733878,
        p = 0; p < v.length; p += 16)
            u = f,
            c = m,
            d = g,
            l = y,
            f = o(f, m, g, y, v[p + 0], 7, 3614090360),
            y = o(y, f, m, g, v[p + 1], 12, 3905402710),
            g = o(g, y, f, m, v[p + 2], 17, 606105819),
            m = o(m, g, y, f, v[p + 3], 22, 3250441966),
            f = o(f, m, g, y, v[p + 4], 7, 4118548399),
            y = o(y, f, m, g, v[p + 5], 12, 1200080426),
            g = o(g, y, f, m, v[p + 6], 17, 2821735955),
            m = o(m, g, y, f, v[p + 7], 22, 4249261313),
            f = o(f, m, g, y, v[p + 8], 7, 1770035416),
            y = o(y, f, m, g, v[p + 9], 12, 2336552879),
            g = o(g, y, f, m, v[p + 10], 17, 4294925233),
            m = o(m, g, y, f, v[p + 11], 22, 2304563134),
            f = o(f, m, g, y, v[p + 12], 7, 1804603682),
            y = o(y, f, m, g, v[p + 13], 12, 4254626195),
            g = o(g, y, f, m, v[p + 14], 17, 2792965006),
            f = r(f, m = o(m, g, y, f, v[p + 15], 22, 1236535329), g, y, v[p + 1], 5, 4129170786),
            y = r(y, f, m, g, v[p + 6], 9, 3225465664),
            g = r(g, y, f, m, v[p + 11], 14, 643717713),
            m = r(m, g, y, f, v[p + 0], 20, 3921069994),
            f = r(f, m, g, y, v[p + 5], 5, 3593408605),
            y = r(y, f, m, g, v[p + 10], 9, 38016083),
            g = r(g, y, f, m, v[p + 15], 14, 3634488961),
            m = r(m, g, y, f, v[p + 4], 20, 3889429448),
            f = r(f, m, g, y, v[p + 9], 5, 568446438),
            y = r(y, f, m, g, v[p + 14], 9, 3275163606),
            g = r(g, y, f, m, v[p + 3], 14, 4107603335),
            m = r(m, g, y, f, v[p + 8], 20, 1163531501),
            f = r(f, m, g, y, v[p + 13], 5, 2850285829),
            y = r(y, f, m, g, v[p + 2], 9, 4243563512),
            g = r(g, y, f, m, v[p + 7], 14, 1735328473),
            f = i(f, m = r(m, g, y, f, v[p + 12], 20, 2368359562), g, y, v[p + 5], 4, 4294588738),
            y = i(y, f, m, g, v[p + 8], 11, 2272392833),
            g = i(g, y, f, m, v[p + 11], 16, 1839030562),
            m = i(m, g, y, f, v[p + 14], 23, 4259657740),
            f = i(f, m, g, y, v[p + 1], 4, 2763975236),
            y = i(y, f, m, g, v[p + 4], 11, 1272893353),
            g = i(g, y, f, m, v[p + 7], 16, 4139469664),
            m = i(m, g, y, f, v[p + 10], 23, 3200236656),
            f = i(f, m, g, y, v[p + 13], 4, 681279174),
            y = i(y, f, m, g, v[p + 0], 11, 3936430074),
            g = i(g, y, f, m, v[p + 3], 16, 3572445317),
            m = i(m, g, y, f, v[p + 6], 23, 76029189),
            f = i(f, m, g, y, v[p + 9], 4, 3654602809),
            y = i(y, f, m, g, v[p + 12], 11, 3873151461),
            g = i(g, y, f, m, v[p + 15], 16, 530742520),
            f = s(f, m = i(m, g, y, f, v[p + 2], 23, 3299628645), g, y, v[p + 0], 6, 4096336452),
            y = s(y, f, m, g, v[p + 7], 10, 1126891415),
            g = s(g, y, f, m, v[p + 14], 15, 2878612391),
            m = s(m, g, y, f, v[p + 5], 21, 4237533241),
            f = s(f, m, g, y, v[p + 12], 6, 1700485571),
            y = s(y, f, m, g, v[p + 3], 10, 2399980690),
            g = s(g, y, f, m, v[p + 10], 15, 4293915773),
            m = s(m, g, y, f, v[p + 1], 21, 2240044497),
            f = s(f, m, g, y, v[p + 8], 6, 1873313359),
            y = s(y, f, m, g, v[p + 15], 10, 4264355552),
            g = s(g, y, f, m, v[p + 6], 15, 2734768916),
            m = s(m, g, y, f, v[p + 13], 21, 1309151649),
            f = s(f, m, g, y, v[p + 4], 6, 4149444226),
            y = s(y, f, m, g, v[p + 11], 10, 3174756917),
            g = s(g, y, f, m, v[p + 2], 15, 718787259),
            m = s(m, g, y, f, v[p + 9], 21, 3951481745),
            f = n(f, u),
            m = n(m, c),
            g = n(g, d),
            y = n(y, l);
        return (a(f) + a(m) + a(g) + a(y)).toLowerCase()
    }
console.log(p('1'))

测试后其实就是标准的md5加密

在这里插入图片描述

4.python代码书写

大致流程为:

1.先请求主页获取对应cookie值

2.将o.token + "&" + a + "&" + s + "&" + n.data中所需要的参数拼接传入到我们写好的js代码中封装成sign参数再发送请求即可。

下面是关键代码,如需完整代码请私信

在这里插入图片描述

获取结果如下

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/811825.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

yo!这里是Linux常见命令总结

目录 前言 常见命令 ls指令 pwd指令 cd指令 touch指令 tree指令 mkdir指令&&rmdir指令 rm指令 man指令 cp指令 mv指令 echo指令 cat指令&&tac指令 more指令 less指令 head指令&&tail指令 find指令 grep指令 alias指令&&u…

NAT原理(网络地址转换)

NAT原理 网络地址转换&#xff08;Network Address Translation&#xff0c;简称NAT&#xff09; 是一种网络通信协议&#xff0c;它是在网络层上对IP地址进行转换的技术。 NAT技术可以将内部网络中的私有IP地址转换为公共IP地址&#xff0c;以便内部网络中的设备能够访问互…

2023-07-30力扣每日一题

链接&#xff1a; 142. 环形链表 II 题意&#xff1a; 求链表是否有环&#xff0c;并给出入环的点 解&#xff1a; 哈希关联标记或者快慢指针 快慢指针逻辑&#xff1a;设入环前长度a&#xff0c;快慢相遇时指针在b&#xff0c;环长度为c&#xff0c;fast2*slow&#xff…

前端学习--vue2--1-基础配置

写在前面&#xff1a; 好久没写了&#xff0c;做实习每天上班都没啥时间写&#xff0c;1个半月前开始系统学习前端&#xff0c;然后做了半个月主要的前端实习了wk。也行&#xff0c;当复习了&#xff0c;后端也还是搞了点。 本文介绍vue2的一些基础和配置&#xff0c;配置只写…

【C++】——类和对象

目录 面向过程和面向对象的初步认识类的引入类的定义类的访问限定符及封装类的作用域类的实例化this指针类的6个默认成员函数构造函数析构函数 面向过程和面向对象的初步认识 C语言是面向过程的&#xff0c;关注的是过程&#xff0c;分析求解问题的步骤&#xff0c;通过函数调用…

你还不会反射吧,快来吧!!!

首先&#xff1a; 1.加载类&#xff1a; //练习获取字节码对象的3种方式 //Class<Student> studentClass Student.class; //Class<? extends Student> aClass new Student().getClass(); Class<?> clazz Class.forName("TestT.Student"); 2.获…

[C++] 类与对象(上)

目录 1、前言 2、类的引入 3、类的定义 3.1 类的两种定义方式 4、类的访问限定符 5、类的作用域 6、类的实例化 7、类对象模型 7.1 内存对齐规则 7.1 类对象的存储方式 8、this指针 8.1 this指针的特性 8.2 this指针是否可以为空 1、前言 C语言是面向过程的&#…

网络运维基础问题及解答

前言 本篇文章是对于网络运维基础技能的一些常见问题的解答&#xff0c;希望能够为进行期末复习或者对网络运维感兴趣的同学或专业人员提供一定的帮助。 问题及解答 1. 列举 3 种常用字符编码&#xff0c;简述怎样在 str 和 bytes 之间进行编码和解码。 答&#xff1a;常用的…

Python读取多个栅格文件并提取像元的各波段时间序列数据与变化值

本文介绍基于Python语言&#xff0c;读取文件夹下大量栅格遥感影像文件&#xff0c;并基于给定的一个像元&#xff0c;提取该像元对应的全部遥感影像文件中&#xff0c;指定多个波段的数值&#xff1b;修改其中不在给定范围内的异常值&#xff0c;并计算像元数值在每一景遥感影…

【C++】-动态内存管理

作者&#xff1a;小树苗渴望变成参天大树 作者宣言&#xff1a;认真写好每一篇博客 作者gitee:gitee 如 果 你 喜 欢 作 者 的 文 章 &#xff0c;就 给 作 者 点 点 关 注 吧&#xff01; 文章目录 前言一、C内存管理方式1.1 new/delete操作内置类型 总结 前言 今天再讲一个…

【禁用外键】为什么互联网大厂禁用外键约束?详谈外键的优缺点和使用场景

导航&#xff1a; 【Java笔记踩坑汇总】Java基础进阶JavaWebSSMSpringBoot瑞吉外卖SpringCloud黑马旅游谷粒商城学成在线MySQL高级篇设计模式常见面试题源码 目录 一、外键介绍 1.1 概述 1.2 练习 1.2.1 数据准备 1.2.2 验证有外键时&#xff0c;删除记录要维护外键 1.2…

Python批量下载主播照片,实现人脸识别, 进行颜值评分,制作颜值排行榜

昨晚一回家&#xff0c;表弟就神神秘秘的跟我说&#xff0c;发现一个高颜值网站&#xff0c;非要拉着我研究一下她们的颜值高低。 我心想&#xff0c;这还得要我一个个慢慢看&#xff0c;太麻烦了~ 于是反手用Python给他写了一个人脸识别代码&#xff0c;把她们的照片全部爬下…

06-行向量列向量_向量的运算 加法,数乘,减法,转置

行向量和列向量 行向量是按行把向量排开&#xff08;横着来写&#xff09;&#xff0c; 列向量是按列把向量排开&#xff08;竖着来写&#xff09; 在数学中我们更多的把数据写成列向量&#xff0c;在编程语言中更多的把数据存成行向量! 如果想在编程语言中把行向量转化成列…

人力资源管理系统servlet jsp人资企业办公java源代码mysql

本项目为前几天收费帮学妹做的一个项目&#xff0c;Java EE JSP项目&#xff0c;在工作环境中基本使用不到&#xff0c;但是很多学校把这个当作编程入门的项目来做&#xff0c;故分享出本项目供初学者参考。 一、项目描述 人力资源管理系统ervlet jsp 系统有1权限&#xff1a…

【计算机网络】408统考2014年题36

题目描述 【2014年题36】主机甲与主机乙之间使用后退N帧(GBN)协议传输数据&#xff0c;甲的发送窗口尺寸为1000&#xff0c;数据帧长为1000字节&#xff0c;信道带宽为100Mbps&#xff0c;乙每收到一个数据帧就立即利用一个短帧&#xff08;忽略其传输延迟&#xff09;进行确认…

动态sql以及常用的标签

什么是动态sql&#xff1a; 指根据不同的条件生成不同的sql 搭建环境&#xff1a; 建表&#xff1a; create table blog( id varchar(50) not null comment 博客id, title varchar(100) not null comment 博客标题, author varchar(30) not null comment 博客作者, create_ti…

基于springboot+mybatis+mysql+vue+html民宿管理平台

基于springbootmybatismysqlvuehtml民宿管理平台 一、系统介绍二、功能展示1.首页2.个人中心3.民宿信息浏览(用户)4房间信息浏览&#xff08;用户&#xff09;5.房间预订&#xff08;用户&#xff09;6.房间退订&#xff08;用户&#xff09;7.投诉反馈&#xff08;用户&#x…

如何配置保存cpolar所建立的隧道参数?

文章目录 可以利用cpolar建立一个能发布到公共互联网的网页&#xff0c;这是基于我们直接对cpolar进行即时设置&#xff0c;获得了能在公共互联网上访问本地数据的二级子域名。但如果电脑关闭重启后&#xff0c;如何让电脑自动启动cpolar&#xff0c;并记住设置好的域名参数文件…

一文搞懂自动驾驶芯片TDA4 启动流程

文章目录 TDA4架构简介TDA4启动流程DMSC ROM阶段MCU域R5 ROM阶段SBL阶段 TDA4架构简介 TDA4是德州仪器推出的一款高性能、超异构的多核SoC&#xff0c;拥有ARM Cortex-R5F、ARM Cortex-A72、C66以及C71内核&#xff0c;可以部署AUTOSAR CP系统、HLOS(Linux或QNX)、图像处理以及…

tinkerCAD案例:23.Tinkercad 中的自定义字体

tinkerCAD案例&#xff1a;23.Tinkercad 中的自定义字体 原文 Tinkercad Projects Tinkercad has a fun shape in the Shape Generators section that allows you to upload your own font in SVG format and use it in your designs. I’ve used it for a variety of desi…