验证是否存在CDN
多处ping
很简单,使用各种多地 ping 的服务,查看对应 IP 地址是否唯一,如果不唯一多半是使用了CDN, 多地 Ping 网站有:
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: http://www.163.com
http://www.163.com.lxdns.com
无 CDN 的示例:
xiaix.me
服务器: public1.114dns.com
Address: 114.114.114.114
非权威应答:
名称: xiaix.me
Address: 192.3.168.172
使用工具
使用各种工具帮助检测目标网站是否使用了 CDN,可以参见如下网站:
绕过 CDN 查找网站真实 IP
查询历史DNS记录
查看 IP 与 域名绑定的历史记录,可能会存在使用 CDN 前的记录,相关查询网站有:
- https://dnsdb.io/zh-cn/
- https://x.threatbook.cn/
- http://toolbar.netcraft.com/site_report?url=
- http://viewdns.info/
查询子域名
毕竟 CDN 还是不便宜的,所以很多站长可能只会对主站或者流量大的子站点做了 CDN,而很多小站子站点又跟主站在同一台服务器或者同一个C段内,此时就可以通过查询子域名对应的 IP 来辅助查找网站的真实IP。
利用网站漏洞
这个就没什么好说的了,目的就是让目标服务器主动来连接我们,这样我们就知道其真实IP了,可用的比如XSS盲打,命令执行反弹shell,SSRF等等。
服务器合法服务主动连接我们
同上一样的思路就是让服务器主动连接我们告诉我们它的IP,不过使用的是合法的服务,如RSS邮件订阅,很多网站都自带 sendmail,会发邮件给我们,此时查看邮件源码里面就会包含服务器的真实 IP 了。
使用国外主机解析域名
国内很多 CDN 厂商因为各种原因只做了国内的线路,而针对国外的线路可能几乎没有,此时我们使用国外的主机直接访问可能就能获取到真实IP。这里用到一款全球ping扫工具,热度越低的国家,效果越好。
IPIPtools:https://tools.ipip.net/cdn.php
从 CDN 入手
无论是用社工还是其他手段,反正是拿到了目标网站管理员在CDN的账号了,此时就可以自己在CDN的配置中找到网站的真实IP了。
遗留文件,扫描全网
一些站点在搭建之初,会用一些文件测试站点,例如“phpinfo()”文件,此类文件里就有可能包含了真实的IP地址。可以利用Google搜索引擎搜索关键字“site:xxx.com inurl:phpinfo.php”,搜索站点是否有遗留文件。
黑暗引擎搜索特定文件
这里的特定文件,指的是站点的icon文件,也就是网站的图标,一般查看网页源代码可以找到,格式大致“http://www.xx.com/favicon.ico”。在shodan搜索网站icon图标的语法为:http.favicon.hash:hash值,hash是一个未知的随机数,我们可以通过shodan语法来查看一个已经被shodan收录的网站的hash值,来进一步获取到所有带有某icon的网站。
那么问题来了,如何获取icon的hash值呢?
python工具
#Python2 开发别搞错了执行环境
#安装 mmh3 失败记得先安装下这个Microsoft Visual C++ 14.0
import mmh3
import requests
response = requests.get('http://www.xx.com/favicon.ico')
favicon = response.content.encode('base64')
hash = mmh3.hash(favicon)
print 'http.favicon.hash:'+str(hash)
空间网络引擎搜索
常见的有以前的钟馗之眼,shodan,fofa搜索。以fofa为例,只需输入:title:“网站的title关键字”或者body:“网站的body特征”就可以找出fofa收录的有这些关键字的ip域名,很多时候能获取网站的真实ip
利用FOFA间接获取
FOFA高级会员可以直接搜索icon,但是一般用户可以直接搜索icon,它会返回icon的hash值
然后再利用shodan的语法:http.favicon.hash:hash值,就可以进行搜索啦
这里推荐一个脚本:
#作者:dgz zhubayi
#时间:2021-6-23
#CSDN:https://blog.csdn.net/AD_CSY
#微信公众号:星河疯客admin
#开发环境:python3
import base64
import requests
from bs4 import BeautifulSoup
import re
parturl1 ="https://www.fofa.so/result?qbase64="
parturl2 = (base64.b64encode(input("请输入favicon地址:").encode('utf-8'))).decode('utf-8')
result = (requests.get(parturl1+parturl2)).text
soup = BeautifulSoup(result,"html.parser")
scripts = soup.select("script")
index=str(scripts[3]).find('icon_hash=')
temp=str(scripts[3])[index:]
icon_hash = str(re.findall("\d+", temp))
print("shodan搜索语法为:http.favicon.hash:"+icon_hash[2:-2])
Comments NOTHING