当前位置: 首页 > news >正文

某观鸟记录中心的爬虫——mitmproxy的简单使用

前言

这次搞个有名字的网址,因此,笔者隐去关键信息。

网址如下

aHR0cDovL2JpcmRyZXBvcnQuY24vaG9tZS9zZWFyY2gvcGFnZS5odG1s

正文

前置分析

选择了对应的参数,进行查询,可以看到表单数据经过的加密

看看堆栈的调用

可以发现发送请求是jquery

再看看请求头

可以发现有Sign和Timestamp。

既然如此,先搜索一下关键字sign

搜出来有点多,如下

笔者专门截取了关键的内容,最下面setRequestHeader("sign", sign)

很可能是这个。点进去看看

那么显示,已经发现关键的东西,打个断点看看

看看调用的过程

可以发现是从page.html调用了jquery,然后调用了jqueryAjax

如下地方调用的

好,其他不必多说。就这样

分析

笔者把jqueryAjax.js文件复制到本地index.js,然后笔者新建一个目录,其中新建一个index.html

引入jquery.js和index.js,发送一个请求看看。index.html的内容如下

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.7.1/jquery.min.js"></script><script src="index.js"></script><script>$.post("https://127.0.0.1:8000",{page:1,})</script>
</head>
<body></body>
</html>

笔者随便选了一个端口发送请求

虽然说是失败了

但是,笔者发现了关键的东西

可以发现这个表单是经过加密的,同时还注意到

这个sign和timestamp都是存在的,

哈哈哈哈哈哈哈,虽然笔者不知道是什么加密,但是,不重要

哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈

笔者想到好玩的事情,笔者只需要确定参数,发送到本地的某个端口,使用mitmproxy代理到服务器。不就可以获取数据了

感觉没问题,试一试。

确定加密参数

这更简单,直接断点移动到对应的地方

可以看到有什么city之类,或者可以添加一个记录点

控制台获取打印的结果,总之,可以获取,如下

 {"city":"","ctime":"","district":"","endTime":"","mode":"0","pointname":"","province":"","serial_id":"","startTime":"2025-11-15","state":"","taxonid":"","username":"","version":"CH4"}

编写代理

from mitmproxy import httpdef responseheaders(flow: http.HTTPFlow):flow.response.headers["Access-Control-Allow-Origin"] = "*"flow.response.headers["Access-Control-Allow-Credentials"] = "true"flow.response.headers["Access-Control-Allow-Headers"] = "access-control-allow-origin, sign, content-type, timestamp, requestId"flow.response.headers["Access-Control-Allow-Methods"] = "GET,POST,OPTIONS"def request(flow: http.HTTPFlow):flow.request.headers["Referer"] = "*****"if flow.request.method == "OPTIONS":flow.response = http.Response.make(204, b"",{"Access-Control-Max-Age": "86400"})

笔者多次尝试,发现需要Referer,不然会403

发送请求

在index.html中的代码如下

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.7.1/jquery.min.js"></script><script src="index.js"></script><script>let data = {"city": "","ctime": "","district": "","endTime": "","mode": "0","pointname": "","province": "","serial_id": "","startTime": "2025-10-15","state": "","taxonid": "","username": "","version": "CH4"}$.post("http://127.0.0.1:8082/front/record/search/TaxonCountBar", data)</script>
</head>
<body></body>
</html>

结果如下

不知道具体是什么加密,总之,成功了,ok

总结

简单使用了一下mitmproxy

http://www.dtcms.com/a/585364.html

相关文章:

  • 58同城上海网站建设北京朝阳区房价
  • 金融网络销售怎么找客源公司网站做优化少钱
  • 代码随想录 Q84.分发饼干
  • 11.8 脚本网页 打砖块max
  • 终极笔记应用程序Alexandrie
  • 「嵌」入未来,「式」界无限 · 第5篇:能源电力的智能化跃迁
  • 自动化实践(7.25):把 PsTools 接入 PowerShell / 批处理 / Ansible
  • 太原在线网站建设深圳网站关键词优化
  • AWS Lambda的安全之道:S3静态加密与运行时完整性检查的双重保障
  • 时序数据库选型指南从大数据视角看IoTDB的核心优势
  • 长沙网站建站模板创免费网站
  • dede 门户网站长春建站网站建设
  • Android Hilt 入门教程_传统写法和Hilt写法的比较
  • 【开题答辩全过程】以 个性化宿舍分配管理系统为例,包含答辩的问题和答案
  • wordpress站点制作武威网站制作公司哪个好
  • 【ZeroRange WebRTC】WebRTC 媒体安全:实现原理与应用(深入指南)
  • python3GUI--短视频社交软件 By:Django+PyQt5(前后端分离项目)
  • Rust 练习册 :Raindrops与FizzBuzz变体
  • Home Assistant Z-Pi 800全新硬件打造远距离智能家居体验
  • 易货电商新模式:小本钱撬动大市场,破解实体店“三大愁”
  • 做网站需要多少人网站建设价格很 好乐云seo
  • Java 大视界 -- 基于 Java 的大数据可视化在城市空气质量监测与污染溯源中的应用
  • 《玩转Docker》[应用篇16]:Docker安装部署HomeBox-家庭库存管理
  • 网站用什么布局wordpress怎么使用七牛云储存
  • Cursor接入Figma并使用的图文教程
  • Java基础——集合进阶4
  • CUDA C++编程指南(3.2.7)——内存同步域
  • 超市进销存源码
  • 100G相机接口
  • Linux第一个小程序 之 【进度条】