判断是否存在CDN
多地ping
如果没有使用CDN,则只会显示一个IP地址。
可以使用以下站点进行多地ping,
- http://ping.chinaz.com/
- https://ping.aizhan.com/
- http://www.webkaka.com/Ping.aspx
- https://www.host-tracker.com/v3/check/
nslookup法
用国外的dns服务器
- 如果返回域名解析对应多个 IP 地址多半是使用了 CDN
nslookup -qt=A h5.hunbei.com 8.8.8.8
用国外的可能会得到真实IP不存在:
存在:
IP反查域名
查看是否存在大量不相关的IP
如下图可以看出来是使用了CDN
观察header
- 观察请求响应的返回数据的头部,是否有 CDN 服务商标识
- 若 asp 或者 asp.net 网站返回头的 server 不是 IIS、而是 Nginx,则多半使用了nginx反向代理到 CDN
在线检测工具
寻找真实IP
网络空间测绘引擎
zoomeye、fofa等,搜索站点相关信息,有一定几率能够获取到站点的真实IP
二级域名法
由于部分CDN价格昂贵,所以一些重要的站点会使用CDN加速,而一些子域名则没有使用,且极有可能和主站在同一C段,这时候,就可以通过发现目标的子域名,从而根据IP来定位主域名的IP地址。
邮箱
用目标邮件服务器发送邮件给自己(QQ邮箱)再查看邮件源码一定情况下可以找到真实IP(服务端和我们建立连接)
这里还有一个
奇淫技巧
,通过发送邮件给一个不存在的邮箱地址,比如 000xxx@domain.com ,因为该用户不存在,所以发送将失败,并且还会收到一个包含发送该电子邮件给你的服务器的真实 IP 通知。
- RSS 订阅
- 邮箱注册、激活处
- 邮箱找回密码处
- 产品更新的邮件推送
- 某业务执行后发送的邮件通知
- 员工邮箱、邮件管理平台等入口处的忘记密码
海外ping
由于国内厂家可能只针对国内使用cdn,对海外没有铺设,导致通过通过海外的IP可以直接获取到真实IP。
可以使用:
- http://ping.chinaz.com/
- https://asm.ca.com/zh_cn/ping.php
- http://host-tracker.com/
- http://www.webpagetest.org/
- https://dnscheck.pingdom.com/
进行查询
DNS历史解析记录
- https://dnsdb.io/zh-cn/
- https://securitytrails.com/
- https://x.threatbook.cn/
- http://toolbar.netcraft.com/site_report?url=
- https://viewdns.info/iphistory/?domain=
以微步在线为例
找到站点
判断存在CDN
微步查询
确认为真实IP
这些很有可能就是在使用CDN之前留下的解析记录
SSL证书
在线
# 查询有效的证书
Certificates: parsed.names.raw: "baidu.cn" and tags.raw: trusted
# 注意
# 测试过程中,很容易陷入思维误区,认为 有效 的证书才是我们需要的,但其实并不一定,很多服务器配置错误依然保留的是 无效 的证书
sha1 签名反查IPV4
命令行工具
- openssl
openssl s_client -connect hao123.com:443 | grep subject
- curl
curl -v https://hao123.com | grep 'subject'
敏感文件泄漏
- 服务器日志文件
- 探针文件,例如 phpinfo
- 网站备份压缩文件
- .DS_Store
- .hg
- .git
- SVN
- Web.xml
历史域名
- 很多网站在发展的过程中,会更换域名,比如京东以前的域名是 360buy.com ,后来斥巨资购买了 jd.com 。
- 网站在更换新域名时,如果将 CDN 部署到新的域名上,而之前的域名由于没过期,可能未使用 CDN,因此可以直接获得服务器 IP,所以,历史域名也是一个很重要的点。
通过 XML-RPC PINGBACK 通信
- XML-RPC 是支持 WordPress 与其他系统之间通信的规范,它通过使用 HTTP 作为传输机制和 XML 作为编码机制来标准化这些通信过程。
- 在 WordPress 的早期版本中,默认情况下已关闭 XML-RPC,但是从3.5版本开始,默认情况下开启。
- XML-RPC 支持 trackback 和 pingback。
- 虽然 WordPress 启用了 REST API 来代替 XML-RPC ,不过 XML-RPX 不会过时的,放心大胆的使用就好,虽然 XML-RPC 这个技术很老了,但依然可以通杀很多网站。
POST /xmlrpc.php HTTP/1.1
Host: domain.com
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Accept-Encoding: gzip, deflate
Accept-Language: en,zh-CN;q=0.9,zh;q=0.8
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 323
<?xml version="1.0" encoding="UTF-8"?>
<methodCall>
<methodName>pingback.ping</methodName>
<params>
<param>
<value><string>http://2vbis4.dnslog.cn</string></value>
</param>
<param>
<value><string>https://domain.com/</string></value>
</param>
</params>
</methodCall>
APP
- 目标若存在APP,则APP可能通过IP直接与服务端进行通信,若最新版采用域名通信,也可尝试寻找历史版本进行分析。
历史版本宝贝一般很多
漏洞
- 如果目标网站本身存在漏洞的话,比如 SSRF、XXE、XSS、文件上传、命令执行等漏洞,或者我们找到的其他突破口,注入我们自己的带外服务器地址,然后在服务器上检查 HTTP 日志记录。
- 应用本身的错误会造成当传递一些错误的参数值或者错误的地址时,内部会抛出异常,也就是日常所说的报错,关注报错点,经常会泄露一些真实的 IP 地址或者内网 IP 段。
通过 virtual-host 碰撞
- 当我们收集了目标足够多的可能的真实 IP 时,可以通过 IP 和子域的碰撞,来批量获得命中目标以及目标哪些的子域。
- 在线收集工具 https://pentest-tools.com/information-gathering/find-virtual-hosts#
通过 favicon.ico 哈希特征
- favicon.ico 是现代浏览器在网页标题的左侧显示的一个小图标。
- 该图标数据通常是从 https://anywebsite/favicon.ico 处获取的,浏览器会在浏览任何网站时自动请求它。
- 因为可以通过计算 favicon.ico 的指纹哈希,然后去 shodan 等搜索引擎搜索与之相同的主机结果,从而进一步探测是否能挖掘出目标网站的真实 IP 地址。
- 目前网络空间搜索引擎均支持
通过网页源码特征值
- 在服务器源 IP 地址允许访问并且返回的也是类似的网站内容情况下,可以通过侦察页面源码中 JS 、CSS 、HTML 等一系列静态特征值,然后用 Shodan 、Zoomeye 、Censys 等搜索引擎进行匹配搜索,从而定位 IP 。
通过域名备案信息广域探测(成功率高)
- 针对目标域名,目标二级域名,如果都做了 CDN 的情况下,是不是就思路中断了呢?
- 肯定不是。这里分享一个很少有人去关注的独门秘技。
- 网站需要服务器,但是再土豪的公司,也不可能一个域名一台服务器,大多数情况下,都是多个域名业务,共用一台服务器。
- 那么如果目标网站存在备案,可以查询其备案信息,收集该单位或者个人备案的其他网站域名以及其他子域,然后再进行一轮广域的探测,很有可能其中的某个边缘子域,没有做 CDN,就直接暴露了真实服务器的 IP 地址,然后再进一步验证该 IP 是否也是目标网站的真实 IP 。
找到真实 IP 后如何使用
在获取到真实IP后,通过直接访问IP可能无法访问,那么此时提供2种思路进行解决
- 通过修改 hosts 文件,将域名和 IP 绑定。(要是不会,不建议阅读此文。)
- 如使用 burpsuite 测试,可以在 Project options ----> Connections ----> Hostname Resolution 中增加域名和 IP 记录。