zoukankan      html  css  js  c++  java
  • 网址封锁的几种方法 公司把 pan.baidu.com 封了 研究实现原理

    HTTP 和 HTTPS 协议
    HTTP 协议
    在 头部会发送 host 就是要访问的域名,可以用来被检测。

    HTTPS 协议
    虽然会加密全部通讯,但是在握手之前还是明文传输。有证书特证可被检测。

    1, DNS 污染
    通过 DNS 污染域名解析到错误的IP
    进阶
    a,通过修改为正确的 DNS 如 8.8.8.8
    但 DNS 使用 UDP 明文传输,很容易被篡改
    b,DNS 使用加密隧道进行传输,本地自建 DNS 服务器 或 手动修改 hosts 文件

    2, IP 封锁
    就算 DNS 能解析出正确的 IP ,但在和IP 进行通讯时还会被路由 RST, 或者根本就不转发,或者发出垃圾数据。
    进阶
    a, 一般的网站都有 CDN 加速,有多个 IP 都可以使用
    可以通过修改 hosts 来解析到可以通的IP上。

    3, HTTPS 证书黑名单
    在 HTTPS 握手 时会发 服务器的证书信息
    进阶
    使用加密隧道

    使用ping 工具查询所有 CDN 可用 ip
    http://ping.chinaz.com/pan.baidu.com

    使用 curl 进行测试
    curl -H 'Host:pan.baidu.com' https://111.206.37.70 -k

    <!DOCTYPE html>

    curl -H 'Host:pan.baidu.com' https://pan.baidu.com -k
    curl: (35) TCP connection reset by peer

    [root@628a64b053f2 docker]# curl -H 'Host:pan2.baidu.com' http://112.34.111.108 -i
    HTTP/1.1 500 Internal Server Error
    Server: bfe
    Date: Wed, 27 Mar 2019 03:25:36 GMT
    Content-Length: 0
    Content-Type: text/plain; charset=utf-8

    [root@628a64b053f2 docker]# curl -H 'Host:pan.baidu.com' http://112.34.111.108 -i
    curl: (56) Recv failure: Connection reset by peer

    [root@628a64b053f2 docker]# curl -H 'Host:pan2.baidu.com' http://220.181.57.216
    <html>
    <meta http-equiv="refresh" content="0;url=http://www.baidu.com/">
    </html>
    [root@628a64b053f2 docker]# curl -H 'Host:pan.baidu.com' http://220.181.57.216
    curl: (56) Recv failure: Connection reset by peer
    [root@628a64b053f2 docker]# ping baidu.com
    PING baidu.com (220.181.57.216) 56(84) bytes of data.


    最终得出结论,是基于 HTTP HTTPS 协议 的封锁方法,就是最开始介绍的方式。

    更新:

    无线网卡:可以访问度盘

    有线网卡:内网办公使用 erp git

    拔掉有线,可以访问度盘,但是不能用内网 erp git ,简单说就是要修改跃点,可以満足要求,但是下面使用,修改路由表方式来实现,系统是 ubuntu 18。

    route -v
    内核 IP 路由表
    目标            网关            子网掩码        标志  跃点   引用  使用 接口
    default         _gateway        0.0.0.0         UG    100    0        0 enp1s0
    default         Hiwifi.lan      0.0.0.0         UG    600    0        0 wlp2s0
    10.1.68.0       0.0.0.0         255.255.255.0   U     100    0        0 enp1s0
    link-local      0.0.0.0         255.255.0.0     U     1000   0        0 wlp2s0
    172.16.110.0    0.0.0.0         255.255.255.0   U     0      0        0 vmnet0
    172.16.111.0    0.0.0.0         255.255.255.0   U     0      0        0 vmnet1
    172.17.0.0      0.0.0.0         255.255.0.0     U     0      0        0 docker0
    192.168.1.0     0.0.0.0         255.255.255.0   U     600    0        0 wlp2s0
    
    有线连接 enp1s0 网段 10.1.68.0
    无线连接 wlp2s0 网段 192.168.1.0

    使用 curl 访问,发现在握手时被关闭连接

    curl -v https://pan.baidu.com
    * Rebuilt URL to: https://pan.baidu.com/
    * Trying 180.149.145.241...
    * TCP_NODELAY set
    * Connected to pan.baidu.com (180.149.145.241) port 443 (#0)
    * ALPN, offering h2
    * ALPN, offering http/1.1
    * successfully set certificate verify locations:
    * CAfile: /etc/ssl/certs/ca-certificates.crt
    CApath: /etc/ssl/certs
    * TLSv1.3 (OUT), TLS handshake, Client hello (1):
    * OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to pan.baidu.com:443
    * stopped the pause stream!
    * Closing connection 0
    curl: (35) OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to pan.baidu.com:443

    为指定 IP 设置路由表
    sudo route add -host 180.149.145.241 gw 192.168.1.1
    
    route -v
    内核 IP 路由表
    目标            网关            子网掩码        标志  跃点   引用  使用 接口
    default         bogon           0.0.0.0         UG    100    0        0 enp1s0
    default         bogon           0.0.0.0         UG    600    0        0 wlp2s0
    10.1.68.0       0.0.0.0         255.255.255.0   U     100    0        0 enp1s0
    link-local      0.0.0.0         255.255.0.0     U     1000   0        0 wlp2s0
    172.16.110.0    0.0.0.0         255.255.255.0   U     0      0        0 vmnet0
    172.16.111.0    0.0.0.0         255.255.255.0   U     0      0        0 vmnet1
    172.17.0.0      0.0.0.0         255.255.0.0     U     0      0        0 docker0
    180.149.145.241 bogon           255.255.255.255 UGH   0      0        0 wlp2s0
    192.168.1.0     0.0.0.0         255.255.255.0   U     600    0        0 wlp2s0

    curl -v https://pan.baidu.com
    * Rebuilt URL to: https://pan.baidu.com/
    * Trying 180.149.145.241...
    * TCP_NODELAY set
    * Connected to pan.baidu.com (180.149.145.241) port 443 (#0)
    * ALPN, offering h2
    * ALPN, offering http/1.1
    * successfully set certificate verify locations:
    * CAfile: /etc/ssl/certs/ca-certificates.crt
    CApath: /etc/ssl/certs
    * TLSv1.3 (OUT), TLS handshake, Client hello (1):
    * TLSv1.3 (IN), TLS handshake, Server hello (2):
    * TLSv1.2 (IN), TLS handshake, Certificate (11):
    * TLSv1.2 (IN), TLS handshake, Server key exchange (12):
    * TLSv1.2 (IN), TLS handshake, Server finished (14):
    * TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
    * TLSv1.2 (OUT), TLS change cipher, Client hello (1):
    * TLSv1.2 (OUT), TLS handshake, Finished (20):
    * TLSv1.2 (IN), TLS handshake, Finished (20):
    * SSL connection using TLSv1.2 / ECDHE-RSA-AES128-GCM-SHA256
    * ALPN, server accepted to use http/1.1
    * Server certificate:
    * subject: C=CN; ST=beijing; L=beijing; OU=service operation department; O=Beijing Baidu Netcom Science Technology Co., Ltd; CN=baidu.com
    * start date: Jan 13 03:02:05 2020 GMT
    * expire date: Jun 25 05:31:02 2020 GMT
    * subjectAltName: host "pan.baidu.com" matched cert's "*.baidu.com"
    * issuer: C=BE; O=GlobalSign nv-sa; CN=GlobalSign Organization Validation CA - SHA256 - G2
    * SSL certificate verify ok.
    > GET / HTTP/1.1
    > Host: pan.baidu.com
    > User-Agent: curl/7.58.0
    > Accept: */*
    >
    < HTTP/1.1 200 OK

    可以访问了,内网系统也可以使用。路由表用处还挺多的,自动分流什么的,这里不做太详细的介绍。

  • 相关阅读:
    Android实现《天女散花》效果(带源码)
    android 自定义(组合)控件 + 自定义控件外观
    Android 实现书籍翻页效果完结篇
    关于Button setOnClickListener 批量增加监听
    Android 小项目之解析如何获取SDCard 内存
    RadioGroup RadioButton 和 自定义对话框(自定义确定和取消)
    拒绝折腾——好用的EmEditor
    jquery ui 出现的诡异问题
    Google的PageRank算法浅析
    JQuery对数组的一些操作总结
  • 原文地址:https://www.cnblogs.com/ningci/p/10606408.html
Copyright © 2011-2022 走看看