自己学习整理笔记,部分来源于网络。
验证是否存在CDN
方法1:超级 Ping
使用各种多地 ping 的服务,查看对应 IP 地址是否唯一,如果不唯一多半是使用了CDN, 超级 Ping 网站有:
http://ping.chinaz.com/ http://ping.aizhan.com/ http://ce.cloud.360.cn/
方法2:nslookup
使用 nslookup 进行检测,如果返回域名解析对应多个 IP 地址多半是使用了 CDN。
有 CDN 的示例:
www.163.com 服务器: public1.114dns.com Address: 114.114.114.114 非权威应答: 名称: 163.xdwscache.ourglb0.com Addresses: 58.223.164.86 125.75.32.252 Aliases: www.163.com www.163.com.lxdns.com
无 CDN 的示例:
xiaix.me 服务器: public1.114dns.com Address: 114.114.114.114 非权威应答: 名称: xiaix.me Address: 192.3.168.172
绕过 CDN 查找网站真实 IP
方法1:查询历史DNS记录
查看 IP 与 域名绑定的历史记录,可能会存在使用 CDN 前的记录,相关查询网站有:
https://dnsdb.io/zh-cn/ ###DNS查询 https://x.threatbook.cn/ ###微步在线 http://toolbar.netcraft.com/site_report?url= ###在线域名信息查询 http://viewdns.info/ ###DNS、IP等查询 https://tools.ipip.net/cdn.php ###CDN查询IP
除了过去的DNS记录,即使是当前的记录也可能泄漏原始服务器IP。例如,MX记录是一种常见的查找IP的方式。如果网站在与web相同的服务器和IP上托管自己的邮件服务器,那么原始服务器IP将在MX记录中。
方法2:查询子域名
常用的子域名查找的方法和工具:
1)微步在线
https://x.threatbook.cn/
2)Dnsdb查询法。
https://dnsdb.io/zh-cn/
输入baidu.com type:A就能收集百度的子域名和ip了。
3)Google 搜索
Google :baidu.com -www就能查看除www外的子域名。
4)各种子域名扫描器
子域名挖掘机
子域名挖掘机需输入域名即可基于字典挖掘它的子域名。
注:收集子域名后尝试以解析ip不在cdn上的ip解析主站,真实ip成功被获取到。
方法3:网络空间引擎搜索法
常见的有以前的zoomeye,shodan,fofa搜索。
方法4:利用网站返回的内容寻找真实原始IP
查看网站源码结合人工判断
python2
V M C++14.0
href=“http:xxx/favicon.ico”
icon有唯一的hash值
import mmh3 import requests request = request.get('http://www.xx.com/favicon.ico') favicon = request.content.encode('base') hash = mmh3.hash(favicon) print 'http.favicon.hash:'str(hash)
python脚本懂的人自然会用
方法5:使用国外主机解析域名
使用国外的主机直接访问可能就能获取到真实IP。
https://get-site-ip.com/
方法6:网站邮件订阅查找
RSS邮件订阅,很多网站都自带 sendmail,会发邮件给我们,此时查看邮件源码里面就会包含服务器的真实 IP 了。
方法7:用 Zmap 扫全网
使用 Zmap 的 banner-grab 扫描出来 80 端口开放的主机进行 banner 抓取,最后在 http-req 中的 Host 写 xiaix.me。
工具不建议用:工具扫出来的不一定准确,本人实测
方法8:F5 LTM解码法
当服务器使用F5 LTM做负载均衡时,通过对set-cookie关键字的解码真实ip也可被获取,例如:Set-Cookie: BIGipServerpool_8.29_8030=487098378.24095.0000,先把第一小节的十进制数即487098378取出来,然后将其转为十六进制数1d08880a,接着从后至前,以此取四位数出来,也就是0a.88.08.1d,最后依次把他们转为十进制数10.136.8.29,也就是最后的真实ip。