网络劫持
我们经常会遇到一种case,就是我们的域名通过dns解析之后,实际返回的ip并不是我们真正的服务器ip,此时怎么分析确定呢?
java接口函数
InetAddress inetAddress = InetAddress.getByName("www.baidu.com");
String ip = inetAddress.getHostAddress();
我们常见的网络库,最终都是通过这个接口去获取ip的,通过hook这个接口函数,打印ip,能发现确实有一些不是我们自己的服务器ip
nslookup
首先使用win中的nslookup命令,用于从dns服务器解析ip对应的域名,或者根据域名解析ip
nslookup 202.98.24.122
能够简单的看下ip的域名,多数情况下看不到,怎么办?
nmap
使用nmap可以对ip进行分析,可以看到此ip开放了53端口,具备DNS服务器的特征,再观察到Haproxy是一种负载均衡服务器的特征,基本上判断出此ip为DNS服务器的负载均衡跳转服务器
怎么解决
遇到这种服务器跳转ip不会有问题,因为它还会把真正的ip返回给你,如果是其他的真正的被劫持的ip怎么办?
使用HttpDns解决,这里不细讲HttpDns的原理,网上都有
当然终极解决办法是Https