DNS与CDN
- CDN
CDN:内容分发网络,主要解决因传输距离和不同运营商节点造成的网络速度性能低下的问题。
把用户经常访问的静态数据资源直接缓存到节点服务器上,当用户再次请求时,会直接分发到离用户近的节点服务器响应给用户,当用户由实际数据交互时才会从远程Web服务器上响应,提高网站响应速度。
优点:提高用户访问速率,优化用户体验。隐藏真实服务器的IP。提供WAF功能。


- 如何识别CDN
1、使用ping命令查看回显:cname.vercel-dns.com有cdn
2、使用nslookup查看域名解析:两个及两个以上

3、使用超级ping工具,如Tools。观察解析IP地址个数。ping.chinaz.com(站长之家 Ping 检测)
www.17ce.com(国内节点多)
asm.ca.com/en/ping.php(全球节点)
securitytrails.com/blog/cdn-finder(CDN 查找器)
4、DNS记录:有CDN指向CDN提供商的域名、无CDN指向普通的服务器地址。
5、检查HTTP响应头:用浏览器开发者工具F2、curl或bp查看HTTP响应头查看是否存在CDN常见标识头。
6、检查SSL/TLS证书:有CDN的ssl证书颁发对象为CDN提供商。 - 绕过CDN寻找真实IP
1、DNS历史解析记录
2、查找子域名:子域名可能没有加入CDN,并且跟主站在同一C段。(搜索引擎、在线查询工具、子域名爆破)
3、网站邮件头信息:邮箱注册,邮箱密码找回、RSS邮件订阅功能、通过网站给自己发邮件,让目标主动暴露真实IP
4、网络空间搜索引擎,找到被收录的IP
5、利用SSL证书寻找真实IP。SSL/TLS证书通常包含域名、子域名和电子邮件地址。
6、国外主机解析域名。大部分CDN厂商只做国内路线使用国外的DNS查询
7、扫描全网。通过工具对整个互联网进行扫描
8、配置不当导致绕过。站点支持http和https访问,CDN只有https协议,访问HTTP就可以轻易绕过 - 浏览器请求一个域名时,执行的操作
域名解析 ——> 发起TCP的三次握手 ——> 建立TCP连接后发起http请求 ——> 服务器响应http请求,浏览器得到html代码
——> 浏览器解析HTML代码,并请求HTML代码中的资源(如JS,CSS,图片等)——浏览器对页面进行渲染呈现给用户。
1、检查缓存
检查本地缓存,查看是否已经缓存了该域名的DNS记录和资源。如果缓存有效且未过期,浏览器会直接使用缓存的结果,跳过后续的DNS解析步骤。没有IP记录,检查DNS缓存。
2、进行DNS解析
(1)本地DNS服务器:向本地DNS服务器发送查询请求。递归查询,如果没有,向根DNS服务器发起查询。
(2)根DNS服务器:返回负责.com顶级域的顶级域(TLD)DNS服务器地址。
(3)TLD DNS服务器:返回负责example.com的权威DNS服务器地址.
(4)权威DNS服务器:返回负责www.example.com的IP地址。
(5)服务器和操作系统会将解析结果缓存。
3、建立TCP连接(三次握手)
浏览器通过IP地址与服务器建立TCP连接。
浏览器向服务器发送SYN包,服务器回复SYN-ACK包,浏览器发送ACK包,连接建立。
4、发送HTTP请求:浏览器向服务器发送HTTP或HTTPS请求
5、接受服务器响应:服务器处理请求并生成响应
6、渲染画面:浏览器解析HTML文件,构建DOM树,加载资源,执行javascript代码。动态更新页面内容。浏览器结合CSS与DOM树,渲染页面并显示给用户。
7、关闭连接(四次挥手)
当页面加载完后,浏览器会关闭与服务器的TCP连接
浏览器发送FIN包,服务器回复ACK包,服务器发送FIN包,浏览器回复ACK包,连接关闭。
8、后续
Ajax请求:如果页面中有javascript代码发起ajax请求,浏览器会再次与服务器通信。
websocket连接:浏览器会与服务器建立持久连接。

- DNS
DNS:域名解析系统,根据域名解析出对应IP地址。
域名形式:
国家顶级域名:中国cn、美国us、英国uk
通用顶级域名:com公司企业、edu教育机构、gov政府部门、int国际组织、mil军事部门、net网络、org非盈利组织
反向域名:arpa,用于PTR查询(IP地址转换为域名
) - DNS迭代查询与递归查询

- 浏览器请求一个域名时,执行的操作
ip地址请求——》网关-》到百度服务器-》数据到网关——》浏览器
1、检查缓存
检查本地缓存,查看是否已经缓存了该域名的DNS记录和资源。如果缓存有效且未过期,浏览器会直接使用缓存的结果,跳过后续的DNS解析步骤。没有IP记录,检查DNS缓存。
2、进行DNS解析
(1)本地DNS服务器:向本地DNS服务器发送查询请求。递归查询,如果没有,向根DNS服务器发起查询。
(2)根DNS服务器:返回负责.com顶级域的顶级域(TLD)DNS服务器地址。
(3)TLD DNS服务器:返回负责example.com的权威DNS服务器地址.
(4)权威DNS服务器:返回负责www.example.com的IP地址。
(5)服务器和操作系统会将解析结果缓存。
3、建立TCP连接(三次握手)
浏览器通过IP地址与服务器建立TCP连接。
浏览器向服务器发送SYN包,服务器回复SYN-ACK包,浏览器发送ACK包,连接建立。
4、发送HTTP请求:浏览器向服务器发送HTTP或HTTPS请求
5、接受服务器响应:服务器处理请求并生成响应
6、渲染画面:浏览器解析HTML文件,构建DOM树,加载资源,执行javascript代码。动态更新页面内容。浏览器结合CSS与DOM树,渲染页面并显示给用户。
7、关闭连接(四次挥手)
当页面加载完后,浏览器会关闭与服务器的TCP连接
浏览器发送FIN包,服务器回复ACK包,服务器发送FIN包,浏览器回复ACK包,连接关闭。
8、后续
Ajax请求:如果页面中有javascript代码发起ajax请求,浏览器会再次与服务器通信。
websocket连接:浏览器会与服务器建立持久连接。 - 在linux下,现在有一个拥有大量ip地址的txt文本文档,但是里面有很多重复的,如何快速去重?
1、使用sort和uniq命令:sort对文件内容排序,uniq去除重复行。sort ip.txt | uniq > unique_ips.txt 将结果保存到 unique_ips.txt 文件中。
2、使用awk命令:awk '!seen[$0]++' ip.txt > unique_ips.txt
3、python脚本去重(大文件时)

4、使用perl脚本:perl -ne 'print unless $seen{$_}++' ip.txt > unique_ips.txt
5、使用cat和uniq命令:cat读取文件内容(已经排完序)cat ip.txt | uniq > unique_ips.txt
6、导入数据库,利用数据库去重功能。 - 进程与线程
进程时CPU资源分配的最小单位,线程时cpu调度的最小单位,随着cpu性能越来越好,将资源分配和调度分开,就有了线程。线程是建立在进程的基础上的一次程序运行单位。 - 应急响应流程(PDCERF模型)
Prepare(准备):准备用来检测工具和人
Detection(检测):紧急事件监测:紧急事件检测:包括防火墙、系统、web服务器、IDS/WAF/SIEM中的日志,不正常或者执行了越权操作的用户,甚至还有管理的报告。
Containment(抑制):首先先控制受害范围、不要让攻击的影响继续蔓延到其他IT资产和业务环境,切记不要投入全部精力到封堵后门。寻找根源原因,彻底解决,封堵攻击源,把业务恢复到正常水平。
Eradication(根除)
Recover(恢复)
Follow-Up(跟踪):根据各种监控去确认有没有其他的攻击行为和攻击向量。

浙公网安备 33010602011771号