【问题标题】:HTTPS Spoofing in order to support legacy applicationHTTPS 欺骗以支持旧版应用程序
【发布时间】:2019-12-05 04:32:05
【问题描述】:

我有一个旧版应用程序,它有一个硬编码的 url(我无权访问源代码),它试图在其中下载文件。网址采用以下形式:

https://pre.hostname.org/index.json

但托管该站点的组织已删除该主机名并正在使用新主机名,因此 URL 应采用以下形式:

https://hostname2.org/pre/index.json

我不拥有应用程序源代码或任何一个网站,但我想到如果我在本地网络服务器上设置重定向并将旧主机名指向我的网络服务器使用C:\windows\system32\drivers\etc\hosts 文件。

在我的网络服务器上的 lighttpd conf 文件中:

$HTTP["scheme"] == "https" {
     $HTTP["host"] =~ ".*" {
       url.redirect = ( "^/(.*)$" => "https://hostname2.org/pre$0" )
    }
}

在主机文件中包含旧版应用程序的客户端计算机上:

0.0.0.0 hostname.org

(0.0.0.0 代表我的网络服务器的主机名以及重定向说明)

通过此设置,我可以在客户端计算机上通过网络浏览器访问旧网址,然后进行重定向。但是,它不适用于旧版应用程序,我认为这是由于 SSL 认证主机名不匹配。

例如,如果我使用 Edge 浏览器,我必须解决警告:

The hostname in the website's security certificate differs from the website you are trying to visit.

Error Code:
DLG_FLAGS_SEC_CERT_CN_INVALID

我在客户端机器、网络服务器等上具有管理员访问权限。我显然信任我的网络服务器,即使它与证书不匹配...

我完全接受这是应该的——这是 https 和 SSL 证书提供的保护的一部分——我要问的是,有没有办法让我的旧应用程序忽略这种情况?一种绕过 https 保护此特定主机名/证书系统范围的方法,以便它对旧版应用程序用于通过 https 下载文件的任何 API 生效?

【问题讨论】:

    标签: ssl redirect https spoofing


    【解决方案1】:

    有没有办法让我的旧应用程序忽略这种情况?

    由于您只有应用程序的二进制文件,您可能会尝试将应用程序中的硬编码域名替换为您控制的域,即二进制补丁。请注意,如果应用程序已签名,这将不起作用,因为它会破坏签名。

    您还可以尝试创建自己的 CA,将其作为受信任的方式导入您的系统,然后使用此 CA 为相关域创建您自己的证书。如果应用程序只是进行简单的证书验证,没有任何证书或 CA 并使用系统信任存储,那么它应该接受您自己创建的证书,因为它信任您的 CA,因此应该接受重定向。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-03
      • 1970-01-01
      • 2019-02-25
      • 1970-01-01
      • 1970-01-01
      • 2011-06-27
      相关资源
      最近更新 更多