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

使用LessPageEngineer实现某祥航空机票查询(t盾)

声明

本文章中所有内容仅供学习交流使用,不用于其他任何目的,不提供抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!

1. 开启LPE服务

from LessPageEngineer.LessPageEngineeringCreator import LessPageEngineeringCreator less = LessPageEngineeringCreator({ 'TABS_NUM':1, # 标签页数量 'SERVER_DEFAULT_PORT':27889, # 标签页数量 'MAX_CHROME_TABS_NUM':5, # 最大标签页数量 'MAX_TAB_LIVE_TIME':300000, # 标签页最大存活时间 'MAX_CHROME_LIVE_TIME':300000, # 浏览器最大存活时间 'MAX_AFTER_REQUEST_SESSION_TIME':150, # 标签会话保存时间 'EXTENSION_PATHS':[], # 插件路径 'UPSTREAM':None, # 上游代理 'FETCH_LOG':3, }) less.run()

2. 发送请求,建立缓存文件并且获取key

# 脱敏处理 url = b64decode('aHR0cHM6Ly93d3cuanVuZXlhb2Fpci5jb20vZmxpZ2h0UXVlcnk/ZGVwQ2l0eT0lRTQlQjglOEElRTYlQjUlQjctU0hBJmRlcEFpcnBvcnQ9JmFyckNpdHk9JUU1JThDJTk3JUU0JUJBJUFDLUJKUyZhcnJBaXJwb3J0PSZkZXBEYXRlPTIwMjUtMTItMTcmYXJyRGF0ZT0yMDI1LTEyLTE4JnBhc3NUeXBlPSZyb3V0ZVR5cGU9T1c='.encode()).decode() api_url = 'http://127.0.0.1:27889/uploadUrl' def save_key(): key = None for _ in range(3): try: # 这里可能会失败一次,重试即可 api_response = requests.post(api_url, json={ 'timeout': 60, 'wait_urls': [ {'url': '**/queryFlightSimple', } # 等待以queryFlightSimple结尾的url ], # 禁止其他的网络请求和img和字体文件请求 优化速度 'disable_img_font': True, 'key_save': True, # 不返回html 优化速度 'html': False, 'url': url, # 清除cookies 防止cookies污染 'clear_cookies': True }, verify=False) key = api_response.json() assert key['status'] == 'success' key = key['key'] break except Exception as e: print(f"保存Key失败:{e}") return key

3. 访问http://127.0.0.1:{sever_port}/cache,修改缓存文件,将对应的函数方法暴露出来

3.1 先查看查询机票接口堆栈信息,找到方便传入参数以及合适断点的位置

通过分别查看这里的堆栈对应的js,可以看到有一处是比较理想的位置,这里只需要我们去修改n参数其中的值即可

先通过开发者工具本地替换下先测试下是否可行

暴露到全局后,修改下参数,调用下

通过开发者工具的抓包,可以看到有数据正确返回了,并且日期也是我们参数中修改的值

3.2 打开http://127.0.0.1:{port}/cache,找到对应的js链接,将刚刚在开发者工具中替换的文件拿去修改即可。记得保存

4. 构造请求,拦截请求参数,本地再次请求验证是否正确

可以看到是成功的

http://www.cnnetsun.cn/news/133861.html

相关文章:

  • torch.matmul性能优化:比传统方法快10倍的技巧
  • OpenModScan 完全指南:掌握工业自动化调试的必备利器
  • 深度学习压缩技术实战:CompressAI框架的5大核心应用场景
  • 10分钟快速上手:Android离线语音识别的终极解决方案
  • 高效PLC通信框架:S7NetPlus实用开发指南
  • 如何快速上手Semantic UI Calendar:终极前端日期选择器指南
  • 电商平台如何用Kafka工具实现实时订单处理
  • Rustup深度解析:告别版本管理烦恼的终极指南
  • FlyFish:企业级数据可视化的低代码革命
  • RobotGo事件监听:构建智能GUI自动化系统的核心技术
  • 超实用教程:Mikan Project带你轻松玩转动漫资源管理
  • Ubuntu输入法实战:打造个性化中文输入环境
  • 3大核心技巧:充分发挥Windows终端扩展能力
  • 零基础学编程:二维数组的5个简单练习
  • Jupyter AI深度应用:重新定义数据科学工作流的智能化转型
  • 基于鸿蒙的在线学习系统的设计与实现外文翻译
  • 基于回归分析的武当山景点游客流量分析与预测+中期检查报告
  • 秒级验证:Windows Docker环境快速搭建方案
  • 零基础入门:Clash Verge的安装与配置指南
  • 小白也能懂:用快马制作第一个SaaS应用的完整指南
  • cks解题思路-1.32-3
  • Luckysheet数据验证终极指南:告别数据录入错误的完整教程
  • EdgeDeflector终极指南:重夺Windows浏览器选择权
  • 策略模式VS if-else:性能对比实测
  • KlipperScreen触摸屏界面终极安装完整指南
  • 比Docker官方源快10倍:国内镜像源深度测评
  • 【小陈背八股-C++】Day04-大厂面试直击:Vector扩容机制,你真的懂STL容器吗?
  • 如何在Kotaemon中自定义评分指标进行A/B测试?
  • AI教学演示系统开发:让技术真正服务课堂
  • Python Wechaty微信机器人开发终极指南:9行代码开启智能对话新时代