网络编程捕获门户如何在后台工作,我如何用Java编写一个用于Windows热点的门户?
我想创建一个专属门户,首先是Windows热点,然后是移动热点和所有wifi网络。所以我想了解captive Portal是如何在后台工作的,然后如何用Java开发一个。我懂Javasocket编程
你可以在下面搜索框中键入要查询的问题!
我想创建一个专属门户,首先是Windows热点,然后是移动热点和所有wifi网络。所以我想了解captive Portal是如何在后台工作的,然后如何用Java开发一个。我懂Javasocket编程
# 1 楼答案
什么是专属门户
当无线客户端无权访问网络资源时,会显示一个身份验证屏幕。身份验证页面称为捕获门户登录
可通过两种方式在客户端设备上触发捕获门户
DNS重定向就像简单的DNS劫持一样,所有用户DNS请求都被劫持并解析到捕获门户登录页面。但是,在广泛使用HSTS报头实现后,DNS重定向的成功率很低,无法为用户提供更好的服务
然而,启动页面的工作方式有点不同。它还使用DNS重定向,但它会根据操作系统响应请求,从而欺骗O.S,使其相信有一个固定的门户登录,并迫使O.S自动触发用户的登录页面
启动页面是什么
当客户端设备连接到WiFi时,如果未经授权访问互联网,会自动弹出一个屏幕,显示捕获的门户
启动页面不仅可以绕过大多数网站上的HSTS实现,还可以让您灵活地显示特定于O.S的登录页面
常规捕获门户和启动页面的唯一区别在于,启动页面会自动调出捕获门户登录页面。然而,基于DNS重定向的方法需要用户手动打开网站
想象一下,如果用户只使用移动应用程序,用户如何知道他需要登录?如果你是黑客,你会失去受害者,因为设备在没有互联网接入时会自动断开连接。因此,这让我们找到了一个更好、更灵活的选项,用于触发捕获门户登录页面,即启动屏幕
作为业务运营商,您可以向不同的客户端设备显示不同类型的服务,而作为攻击者,您可以自动识别受害者机器,并相应地提供有效负载。我将展示它的关键,并根据您的创造力和需求来实现
不同的客户行为:
每个操作系统都有自己不同的检测互联网接入的方法
机制基本上是这样的:
如果没有固定的门户,结果将与预期的一致,操作系统将知道可以完全访问互联网
如果URL返回的结果不是预期的结果,那么操作系统将检测到有一个固定门户,需要继续进行身份验证才能完全访问Internet:在这种情况下,操作系统将自动打开启动页
所有客户端设备都使用上述策略来确定它们是否位于一个专属门户之后,但URL可能会因智能手机、平板电脑、笔记本电脑的特定型号以及特定的操作系统版本而有所不同。在以下内容中,您可以找到每个模型为检测捕获门户而联系的域列表
每个设备,也包括不同的制造商,都有不同的表现。例如,看看this list:
此列表显示了我在不同设备上的测试。然而,在这种情况下,不同版本的android设备、Windows操作系统和iOS版本在测试中会有所不同
Source