自定义Request数据包欺骗服务器拿数据

2023-05-16

自定义Request数据包欺骗服务器拿数据

  • 背景
    • 思路:
    • 值得记录的知识点

背景

一个连接服务器的APK,登录方式:电话号码+短信验证,登录后可以查询到该账号下的几百条数据,每一条数据还有对应详情。
目的:获取这几百条数据及详情。

思路:

最先想到的办法,手机录屏、截屏,但每个号码的详情都需要点击两次,考虑ADB命令写脚本,但是用ADB命令元素定位只能用坐标,不精准,几百个数据,下拉的动作会有100多下。坐标的误差会越来越大,这个思路,放弃。

方案2:UiAutomator2
UiAutomator2可以和apk交互,只要获取到apk应用的元素键值,就可以精确操作apk。安装使用见链接:https://zhuanlan.zhihu.com/p/128058291,但是实际操作时发现:这几百条数据是作为一个整体元素的,要精确到一条只能用坐标区分,又回到老路。

方案3:用fiddler抓包,获取apk回连的url,然后用web方式访问。抓包抓到了url(https://xxxxxx/login),但服务器没有开web服务,通过浏览器拿,行不通。
既然能抓包,那用Python仿造apk的request的数据包去连接url,应该可以拿到一样的response,然后再解析这respones的数据结构。就可以达到目的,在这个思路的指导下,最终历经2天,搞定。(同行若需要,联系可分享源码)

值得记录的知识点

1、fiddler作为代理抓包时,可以设置断点。有时apk的一个操作会有连续的多个request,设置断点后,可以步进。
2、fiddler设置断点后,还可以篡改request和response数据包。如果你想在朋友圈炫耀你的微信零钱有几个亿,这个方法可以哦。
3、token(令牌):这个apk登录时会把账号(电话)和短信验证码发送到服务器。服务器根据账号和验证码生产一个64位的字符串,这个字符串为token,之后apk再向服务器请求数据,只需在request的header中带上token作为身份认证就可以取得数据。但token有时效性
3、json:json作为网络传输的一种数据结构,简单、实用。以“{”开始,“}”结束,数据赋值用“:”,多个数据用“,”分隔。例如{“aa”:“132”,“bb”:“23235”}表示aa=132,bb=23235。这apk和服务器之间传输数据就用的这种结构。
4、post提交数据时,数据结构有“json”、“text”等,python中用request.post模块时,需要在header中声明传输的是什么数据结构,用什么脚本解析,不然服务器会无法正常解析数据,会报参数错误。
5、使用函数request.post,如果传输的数据结构是json,就一定要用request.post(url=xx,json=xx,headers=xx),如果用request.post(url=xx,data=xx,headers=xx)也会报参数错误。我在这个坑上折腾了大半天,网上也找不到任何答复,最后去看request.post源码才搞清楚。这里也推荐大家,如果使用库函数出现问题,建议读读源码。
6、pycharm的一个使用技巧,光标放到函数上,然后按ctrl+b跳转到函数定义。
7、时间戳timestamp,Python的时间戳以秒位单位,是10位,Java的时间戳以毫秒位单位,是13位。从服务器回来的时间戳除以1000,Python就可以处理了

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

自定义Request数据包欺骗服务器拿数据 的相关文章

  • 使用缓存文件还是一个以上的 HTTP 请求?

    在所有 加速你的网站 网站和书籍上 他们总是告诉我们不惜一切代价尽量减少 HTTP 请求 这很好 但如果这意味着在每个页面上你都必须一次又一次地重新加载 120kb 因为用户缓存是空的怎么办 如果我在网站的每个页面上使用 5 个 js 文件
  • Node 中express.js 和 axios.js 的区别

    我们使用axios来进行get post等http请求 我们也出于同样的目的使用快递 然而 根据我读到的内容 它们有不同的目的 请解释一下如何 PS 如果能举例说明就太好了 你可以将express js视为一个仓库 app get item
  • 如何在javascript中获取所有待处理的http请求?

    javascript 或 angular2 有没有办法 获取待处理的 http 请求列表 目标是启动 其他几个进程 根据这个榜单的波动 是否存在类似可访问的请求堆栈之类的东西 Thanks 事实上你可以扩展Http类来拦截请求执行 impo
  • Akka HTTP 错误响应实体 1 秒后未订阅

    我正在使用 Akka HTTP cachedHostConnectionPoolHttps 池作为 Akka Streams Flow 的一部分发送请求 private val requestFlow Flow HttpRequest He
  • Cypress:如何等待所有请求完成

    我正在使用 cypress 来测试我们的 Web 应用程序 在某些页面中 有不同的端点请求被执行多次 例如GET A GET B GET A 为了等待所有请求完成并保证页面已完全加载 赛普拉斯的最佳实践是什么 我不想用很多cy wait 命
  • 如何在 Angular 6 中调用多个 API 并订阅?

    在我的应用程序中 调用所有POST请求我已经使用了service 当我得到一个specific code 例如 401 我从服务器调用 API 来获取新令牌 在收到另一个令牌之前 如果有任何其他 API 调用 我会将所有这些请求存储在一个数
  • 如何保持每 5 秒请求一次页面而不耗尽电池电量?

    我正在开发的 Android 应用程序需要每 5 秒在我的服务器上请求一个页面 但我担心这会消耗大量电池 有没有更简单的方法 我当前的方法是每 5 秒循环一次的服务 protected void onHandleIntent Intent
  • Request.Url.Host 是否包含子域?

    例如对于mail google com 它会返回google com还是mail google com 我自己实际上无法测试 它确实包含子域 例如mail google com
  • 使用逻辑运算符进行 Laravel 表单验证

    当用户填写消息 文本区域 时 他 她无法填写日期 时间 地点值 仅当 Message 为空且所有这三个字段均已填充时 才会考虑这三个字段 如何使用 Laravel 表单验证来做到这一点 是否可以在Request的规则方法中定义这些逻辑 我是
  • Laravel 5:请求验证多维数组

    我有提交多维数组的表单 喜欢 slide 1 title slide 2 title 现在我使用 Request 类来定义我的规则 如何循环遍历此类中的所有数组项 我试过 public function rules return id gt
  • Play Framework 2.1:Scala:如何获取整个基本url(包括协议)?

    目前我可以从request http www playframework com documentation api 2 1 0 scala index html play api mvc Request 其中包括域和可选端口 不幸的是 它
  • 如何将 Request->all() 与 Eloquent 模型一起使用

    我有一个 lumen 应用程序 需要在其中存储传入的 JSON 请求 如果我写这样的代码 public function store Request request if request gt isJson data request gt
  • Request.UserHostAddress返回负载均衡器的IP地址

    我的网站中有一行关键代码可以在我们的开发环境中运行 但不能在生产环境中运行 好吧 我说它在开发中起作用 但事实是它给了 1 这是 IPv6 环回地址 无论如何 我想要做的是捕获访问该站点的用户的 IP 地址 因此 我使用Request Us
  • 我如何在soapUI中循环发出具有不同内容的请求? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我有一个方法作为soapUI 中的请求 它将数据传输到在线平台 我有不同的变量 每次都有不同的竞争 有没有办法让我每次都用不同的内容循
  • 如何接收在 PHP 中使用“application/octet-stream”发送的 POST 数据?

    这就是我正在处理的事情 我们的一个计划有一个支持表格 用户可以使用它来请求支持 此表单的作用是 它向 PHP 脚本执行 HTTP POST 请求 该脚本应该收集信息并将其转发到支持电子邮件地址 POST 请求包含三个类型的文本字段Conte
  • 关于 PHP 范围的问题 - 从 Java 程序员的角度来看

    我对 PHP 还很陌生 所以我试图理解 PHP Web 应用程序中的范围概念 在 Java 世界中 Java Web 应用程序 使用 Java Server Pages JSP 及以上 将允许 Java Bean 具有以下级别的范围 Pag
  • IE 下的 Http 请求速度变慢

    在我的 javascript 应用程序中工作时 我注意到使用 IE 11 时 相同的 ajax 请求时间最多延长 10 倍 响应大小完全相同 12 6KB 我看到的唯一区别是 IE 添加 Pragma no cache 不是铬 Chrome
  • 如何完全禁用 VS Code 的网络请求(遥测、更新等)

    由最新来源构建 我试图阻止 vs code 发出任何网络请求 检查更新 遥测等 我试过这个 config telemetry enableCrashReporter false telemetry enableTelemetry false
  • 414 请求 URI 太大错误 Google 地图 v3

    当我调用构造函数来创建具有超过 15 个不同 KMZ 文件的新 KmlLayer 时 似乎会发生此错误 构造函数的调用是 var layer new google maps KmlLayer http 我每次都可以使用 15 个不同的 KM
  • 使用python将json和文件发送到flask

    我遇到这个问题 我试图在单个函数中向 Flask API 发送 接收一些文件和 JSON 在我的客户端 发件人 上我有 my json to be sent datas var1 var1 var2 var2 my file to be s

随机推荐

  • BGP详解

    BGP协议详解 BGP是一种边界网关协议 但是也属于动态路由协议 一 BGP的特征 xff08 一种外部路由协议 xff0c 用来在AS之间传递路由信息 xff0c 是一种增强版的距离矢量协议 xff09 1 可靠的路由更新机制 传输协议
  • el-input-number 如何实现默认不填充0

    只需要把数据设置未 undefined 的就可以了 lt el input number v model 61 num 64 change 61 handleChange min 61 1 max 61 10 label 61 描述文字 g
  • vue项目 el-input输入框字符限制,只显示英文及数字

    element的el input没有限制输入的内容 xff0c 想要限制输入内容就需要自己来开发 xff0c 我使用的方式是正则来判断进行再次赋值实现的 xff0c 不废话上代码 xff1b lt el input v model 61 3
  • cdn方式使用vue和element-ui进行前端开发

    安装 按照vue和element ui的官网开发指南中提供的cdn安装方式 xff0c 直接以script方式引入 要注意引入顺序 span class token comment lt 引入样式 gt span span class to
  • vue el-table 如何实现表格根据分页索引自增长

    在el table 里设置type 61 index xff0c 可以实现表格的索引自增长 xff0c 但是如果我们给表格增加了分页 xff0c 切换页面索引任然是从1 20 xff08 20是自己分页的数量 xff09 xff0c 那么想
  • Vue的计算属性和监听属性

    1 计算属性 computed 当依赖数据发生变化时 xff0c 计算属性会被重新计算 有且只有在依赖数据发生变化时它才会重新计算 xff0c 其他的数据变化对计算属性 应用场景 xff1a 数据的计算显示 v for用v if的计算 sp
  • Element UI el-form-item 遍历表单校验规则

    一 遍历表单校验规则实现案例 prop内容为 遍历数据 43 index 43 校验数据 span class token operator lt span div span class token keyword class span s
  • uni-app引入uView2.0的步骤

    引入uVIew组件可以使用uni app市场插件安装插件即可 xff0c 也可以使用npm下载安装 xff0c 不过使用npm需要在pages json使用easycom属性引用需要的组件类 在uni app插件市场右上角选择使用HBuil
  • Vue-cli创建项目步骤

    一 使用 vue cli 搭建项目 下面整个过程是基于已经安装node js和cnpm的基础上 xff0c node js如何安装就不在这里详说了 xff08 1 xff09 全局安装 vue cli xff0c 在命令提示窗口执行 xff
  • keil5建立工程

    1 xff0c 确认工程代码 主要包括代码的目录或者代码的svn路径 xff0c 其次再来确认代码的编译方法 xff0c 确认该代码是需要keil5编译还是linux gcc 43 makefile 编译 2 xff0c 确认编译手段 确认
  • win10下 frpc的开机自启动

    frp可以用来进行内网穿透 xff0c 其具体实现原理可以参考网上其他教程 xff0c 本文主要描述用户端程序frpc exe在win10下的一种开机自启动方法 本地组策略 在完成配置最后 xff0c 需要进行自启动配置 xff0c 一般的
  • qt 设置背景图片、背景色步骤

    拖一个label 控件 label 上右键选择改变样式表 xff0c 添加资源选择图片 一 设置背景图 background image xff1a 二 铺满整个label border image xff1a 三 添加图片 xff0c i
  • QT 设置按钮QPushButton 圆角、渐变色背景、背景图片、鼠标放上去、鼠标按下效果、透明背景

    设置按钮圆角 渐变色背景 背景图片 鼠标放上去 鼠标按下效果 透明背景 效果 xff1a 一 设置四角圆角 xff1a 二 设置下 左圆角 按钮鼠标放上去改变背景色 三 设置上 右圆角 四 按钮设置背景图片 xff0c 鼠标放上去 按下 更
  • processlist中状态详解

    在processlist中 xff0c 看到哪些运行状态时要引起关注 xff0c 主要有下面几个 xff1a 状态建议copy to tmp table执行ALTER TABLE修改表结构时建议 xff1a 放在凌晨执行或者采用类似pt o
  • 在oVirt上安装Win11虚拟机

    在oVirt上安装Win11虚拟机
  • 【Debugging】树莓派 SSH连接失败解决

    问题描述 在使用SSH连接时出现如下错误 xff1a Remote side unexpectedly closed network connection 解决方案 修改ssh的配置文件 etc ssh sshd config xff0c
  • ubantu 18.x 学习记录

    安装net tools 用于 ifconfig命令 span class token function sudo span span class token function apt get span span class token fu
  • 雷达辐射源调制信号仿真

    雷达辐射源调制信号仿真 说明 xff1a 通过Matlab进行单载频 xff08 CW xff09 xff0c 线性调频 xff08 LFM xff09 非线性调频 xff08 NLFM xff09 二相编码 xff08 BPSK xff0
  • nvidia-smi报错 NVIDIA-SMI has failed because it couldn’t communicate with the NVIDIA driver.

    1 报错 xff1a nvidia smi报错 NVIDIA SMI has failed because it couldn t communicate with the NVIDIA driver Make sure that the
  • 自定义Request数据包欺骗服务器拿数据

    自定义Request数据包欺骗服务器拿数据 背景思路 xff1a 值得记录的知识点 背景 一个连接服务器的APK xff0c 登录方式 xff1a 电话号码 43 短信验证 xff0c 登录后可以查询到该账号下的几百条数据 xff0c 每一