目录:
渗透测试过程中,需要寻找真实IP的情况,无非就是目标使用了cdn或者有云防护。
CDN
CDN即内容分发网络,主要解决因传输距离和不同运营商节点造成的网络速度性能低下的问题。
说的简单点,就是一组在不同运营商之间的对接点上的高速缓存服务器,把用户经常访问的静态数据资源直接缓存到节点服务器上,当用户再次请求时,会直接分发到离用户近的节点服务器上响应给用户,当用户有实际数据交互时才会从远程Web服务器上响应,这样可以大大提高网站的响应速度及用户体验。
CDN的优势
- 提高用户访问速率,优化用户使用体验。
- 隐藏真实服务器的IP
- 提供WAF功能,目前很多CDN也提供了WAF的功能,我们的访问请求会先经过CDN节点的过滤,该过滤可对SQL注入、XSS、Webshell上传、命令注入、恶意扫描等攻击行为进行有效检测和拦截。CDN节点将认为无害的数据提交给真实的主机服务器。
几种访问方式的不同
- 传统访问:用户访问域名–>解析服务器IP–>访问目标主机
- 普通CDN:用户访问域名–>CDN节点–>真实服务器IP–>访问目标主机
- 带WAF的CDN:用户访问域名–>CDN节点(云WAF)–>真实服务器IP–>访问目标主机
CDN的配置
- 将域名的 NS 记录指向 CDN 厂商提供的 DNS 服务器。
- 给域名设置一个 CNAME 记录,将它指向CDN厂商提供的另一个域名。
所以在渗透测试中,为了要知道网站服务器的真实IP,我们必须绕过CDN查找出网站的真实ip地址。
判断是否使用cdn
多地ping
不同地区的服务器->访问->ip,假如使用了cdn->ip会众多。
假如使用了双线-> ip一般只有几个。
这是区分cdn跟多线服务器的很好的方法。
不同的地方去Ping服务器,如果IP不一样,则目标网站肯定使用了CDN。
在线ping:
http://ping.chinaz.com/
http://ce.cloud.360.cn/
http://www.webkaka.com/ping.aspx
https://asm.ca.com/en/ping.php
nslookup 进行检测
使用 nslookup 进行检测,原理同上,如果返回域名解析对应多个 IP 地址多半是使用了 CDN。有 CDN 的示例:
www.163.com
服务器: public1.114dns.com
Address: 114.114.114.114非权威应答:
名称: 163.xdwscache.ourglb0.com
Addresses: 58.223.164.86125.75.32.252
Aliases: www.163.comwww.163.com.lxdns.com
无 CDN 的示例:
xiaix.me
服务器: public1.114dns.com
Address: 114.114.114.114
非权威应答:
名称: xiaix.me
Address: 192.3.168.172
CDN的绕过思路
网上有很多绕过CDN的思路,但是存在很多问题,以下是收集并总结的思路。
在站长的角度,不可能每个站都会用上CDN。
站在DNS服务商的角度,历史解析记录可能不受CDN服务商控制。
站在CDN服务商的角度,提供CDN服务的区域有限制,CDN流量有限制。
绕过cdn探测真实ip方法大全
1、多地ping
参考如上的
- 使用在线网站ping目标,如果得出不同的ip,我们可以判断不同地区是否使用cdn来得出真实ip。
- 国内的CDN一般只对国内的用户访问加速,
所以使用国外在线代理网站:
https://asm.ca.com/en/ping.php
2、泄露文件
这个需要用工具扫或者爬,但是找到的成功率不是很高。
- 服务器日志文件
- 探针文件
扫描目标web目录 获取phpinfo探针类文件 ,基本上都存有服务器真实ip信息泄露。
在phpinfo里真实IP对应项为:
3、信息收集
首先我们可以进行正常的信息收集过程,尽可能抓取各种IP地址(通过host、nslookup、whois、地址段等),然后检查哪些服务器启用了Web服务(通过netcat、nmap、masscan等)。
一旦获取到Web服务器IP地址,下一步就是检查目标域名是否以虚拟主机方式托管在某个平台上。
如果不采用这种方式,我们就可以看到默认的服务器页面或者默认配置的站点页面,否则我们就找到了切入点。
服务器信息
错误信息
js文件信息
>- 旁站
子域名或者父域名