强制门户(英文:Captive portal,又名强制网络门户、强制主页)是在授予新连接至Wi-Fi的用户更广的网络(互联网)访问权限之前在其网页浏览器呈现中的网页,其常用于呈现可能需要认证或接受最终用户许可协议/可接受使用策略的着陆页或登录页。强制门户应用于方方面面的移动宽带服务中(如有线连接、计费Wi-Fi及家庭热点),同时也可提供对企业或家庭有线网络(公寓、酒店和商业中心的网络)的访问权限。

实现强制门户的方式

HTTP重定向

常见方法之一是将所有万维网流量定向至网页服务器,同时向强制门户返回HTTP重定向[3]当现代互联网设备首次连接至网络时,其将发出HTTP请求并期望返回HTTP 204状态码。若设备接收到HTTP 204状态码,则设备将认为自己拥有无限的互联网访问权限;若设备接收到HTTP 302状态码,则设备显示强制门户提示。[4][5]

ICMP重定向

网关也可使用网络层互联网控制消息协议重定向客户端流量。

重定向DNS

当客户端请求互联网资源时,浏览器会查询DNS。在强制门户中,防火墙将确保仅有网络DHCP服务器提供的DNS可被未认证的客户端使用(或将所有未认证客户端的请求转发至此DNS服务器)。随后,网络提供的DNS服务器将对所有的DNS查询结果返回强制门户页面的IP地址。

强制门户使用DNS劫持攻击(与中间人攻击类似)进行DNS重定向。为了减轻DNS投毒的影响,服务器通常将存活时间设置为0。

修改Captive Portal 地址

这里我们使用小米的服务器, 替换网址就可以选择自己喜欢的服务器, 也可以换成自己的服务器.

1
2
3
4
5
6
7
8
#删除变量:(删除以后默认启用)
adb shell
settings delete global captive_portal_mode
settings delete global captive_portal_https_url
settings delete global captive_portal_http_url
#分别修改两个地址
settings put global captive_portal_http_url http://connect.rom.miui.com/generate_204
settings put global captive_portal_https_url https://connect.rom.miui.com/generate_204