1. PySkyWiFi: Free stupid wi-fi on long-haul flights (robertheaton.com)
本文描述了作者在长途航班上通过利用航空公司常旅客账户的姓名字段作为数据通道,实现免费上网的实验项目PySkyWiFi。
核心原理
作者发现航班WiFi登录页面存在漏洞:未付费时仍可登录常旅客账户并编辑个人资料。通过反复读写账户的“姓名”字段,可在地面计算机与机上设备之间建立数据通道,绕过付费WiFi防火墙。
实验过程
- 即时通讯原型:双方通过更新账户姓名字段交换消息,验证了基本数据传输可行性。作者编写了命令行工具自动化此过程。
- 信息推送原型:在地面部署守护进程,自动响应机上设备发送的结构化指令(如查询股价、比分),并返回结果。
- 完整HTTP访问:开发了PySkyWiFi工具,将完整的HTTP请求与响应通过常旅客账户字段分块传输。
PySkyWiFi架构
系统包含两个组件:
- 空中代理:运行在机上笔记本电脑,接收用户的HTTP请求。
- 地面守护进程:运行在联网的地面计算机,执行实际的HTTP请求并返回响应。
通信流程:
- 空中代理将HTTP请求分割成小数据块。
- 数据块通过两个常旅客账户的姓名字段(一个用于请求,一个用于响应)以轮询-写入-确认的机制逐块传输。
- 地面守护进程重组完整请求,执行后,将响应以同样方式反向传输。
关键技术细节
- 传输层:定义了分块、确认、结束的通信协议(DATA、ACK、END段),确保数据完整有序传输。
- 网络层:负责实际的数据读写,与传输层解耦。通过实现简单的
send和recv接口,可适配不同平台。 - 编码优化:为适应账户字段对特殊字符的限制,使用Base26编码将数据转换为纯字母字符串。
- 带宽优化:建议同时利用账户的多个字段来增加单次传输的数据量。
备注
作者明确声明此项目仅为技术实验与玩笑,不应实际使用。在开发后期,为避免触发风险,主要使用GitHub Gists等友好服务进行测试迭代。最终通过curl成功加载了作者的博客首页,完成了实验验证。