V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
zqqian
V2EX  ›  问与答

如何“劫持”HTTPS 让需要登录的 wifi 跳转到认证界面?

  •  
  •   zqqian · Apr 13, 2017 · 4258 views
    This topic created in 3302 days ago, the information mentioned may be changed or developed.

    原来 https 不流行的时候连 wifi 基本打开任意一个网址都会跳转到 wifi 的认证界面。 现在百度和各个导航网站开启全站 https 之后就无法跳转了。非得另外打开一个 http 的页面才能跳转。 虽然这个对于程序员不是什么问题,但是一般的小白不懂呀,所以有没有解决办法?

    12 replies    2017-04-15 00:15:30 +08:00
    golmic
        1
    golmic  
       Apr 13, 2017 via Android
    同样求教
    manhere
        2
    manhere  
       Apr 13, 2017
    没有, https 的意义就在于此。
    oott123
        3
    oott123  
       Apr 13, 2017
    所以,既然不能劫持,那为啥 Android 7 要使用 https 来做 wifi 登录嗅探呢
    dremy
        4
    dremy  
       Apr 13, 2017 via Android
    简单,中间人劫持的时候加上任意证书就好了,会显示证书错误的界面
    对小白来说,习惯了忽略 12306 的证书错误,也会忽略这个错误而继续访问的,就能够实现跳转了
    loading
        5
    loading  
       Apr 14, 2017
    因为大量老 AP 已经部署,这个问题已经不是技术能解决的了。
    BOYPT
        6
    BOYPT  
       Apr 14, 2017
    在 443 端口用自签名证书跳转到认证页呀,新版 chrome 里面会提示这种 portal 页面,而不是安全警告了。算是趋势吧。
    tinyproxy
        7
    tinyproxy  
       Apr 14, 2017 via iPhone
    你找找云舒的文章吧,有个 sslstrip 的文章,但要求在同一局域网或 VPN 环境,既然你有路由,攻击基础是有的,就看那文章说的是否可操作了。
    PS 非安全相关人员
    yanwu
        8
    yanwu  
       Apr 14, 2017 via Android
    所以我每次认证校园网时,都点击一个非 https 的页面。
    mcone
        9
    mcone  
       Apr 14, 2017
    之前百度刚上 https 的时候 我之前也遇到了这种问题 我把我的解决方案跟你分享下吧

    如果用户懂一点技术的话 想办法引导他们使用 http 页面跳转进行认证 例如在认证页面增加说明(不过没什么卵用估计)
    或者推广你们的认证网址(域名或 ip ) 想办法让他们直接点认证页

    如果用户是纯种小白的话 那就加上任意一个自签名证书吧 然后就可以跳转了 唯一缺点是 chrome 之类会有大大的错误提示需要人肉点继续 但是很多浏览器像是 360Safe Browser 的提示很不明显 用户应该也见怪不怪了

    如果有更好解决方案希望楼主 at 我下哈哈
    morethansean
        10
    morethansean  
       Apr 14, 2017   ❤️ 1
    @oott123 其实你说的是两个不同的事情了,对是否联网以及 captive portal 的判断可以是不同的。
    看 7.1.1 的源码你会发现,启用 https 的 captive portal 验证之后,在发送的时候会同时发送 2 个请求,一个 http 的一个 https 的,如果需要跳转的话 http 的被劫持还是可以起到效果的。不过仔细看的话,逻辑还是有那么一点让人不是很能理解。
    thekll
        11
    thekll  
       Apr 14, 2017 via iPhone
    操作系统会提供网络切换后的联网检测功能,即尝试请求 http://xx.xx/generate_204 。比如 macOS/iOS ,如果网络接入设备需要 captive portal 身份验证,会弹出登录界面。此时,假如设置了系统级的加密代理,一定要在规则里让 captive portal 检测域名绕过代理。

    不知道 android 有没有类似机制。
    snsd
        12
    snsd  
       Apr 15, 2017 via Android
    @thekll 有的,我的索尼手机就会跳转到一个 74 打头的美国 ip
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5995 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 81ms · UTC 06:15 · PVG 14:15 · LAX 23:15 · JFK 02:15
    ♥ Do have faith in what you're doing.