赞
踩
目录
这里我是根据整个渗透测试的流程进行安全开发,后期有时间,将所有写的整合为一个GUI工具或是web平台
安全开发实战http://t.csdnimg.cn/25N7H
CDN,全称为内容分发网络(Content Delivery Network),是一种优化网络内容传输的技术手段。
CDN的工作原理主要是通过在多个地理位置部署服务器节点,将网站的内容如网页、图片、视频等缓存到这些节点上。当用户请求访问某个网站时,CDN会根据用户的地理位置,将请求重定向到距离用户最近的服务器节点,从而加快内容的加载速度,提高访问效率。
当然在渗透中,网站存在cdn会影响我们判断网站的真实IP,会影响我们的进一步渗透
- # 识别目标是否存在CDN
- # 执行nslookup命令,通过返回结果的ip数目来判断
- # os.system: 结果只能打印出来看
- # cdn_data = os.system("nslookup www.baidu.com")
- # print(cdn_data)
- # cdn_cmd = os.popen("nslookup www.baidu.com")
- import os
-
- # nslookup: 这是一个标准的网络管理命令行工具,用于查询DNS记录,以确定给定域名的IP地址
- cdn_cmd = os.popen("nslookup www.baidu.com")
- cdn_data = cdn_cmd.read()
- print(cdn_data) # 可以进行注释
输出的结果:发现存在乱码
- ��Ȩ��Ӧ��:
- 服务器: UnKnown
- Address: fe80::2af7:d6ff:fe96:9e70
-
- 名称: www.a.shifen.com
- Addresses: 2409:8c20:6:1135:0:ff:b027:210c
- 2409:8c20:6:1d55:0:ff:b09c:7d77
- 36.155.132.76
- 36.155.132.3
- Aliases: www.baidu.com
可以使用这个,也可以使用上面的,总的来说没有什么影响,只是会在后续的批量监测中,会出现很多杂乱的乱码数据
- # 通过指定编码方式为gbk解决存在乱码
- import subprocess
-
- # nslookup: 这是一个标准的网络管理命令行工具,用于查询DNS记录,以确定给定域名的IP地址
- cdn_cmd = subprocess.Popen(["nslookup", "www.baidu.com"], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
- cdn_data, error = cdn_cmd.communicate()
- cdn_data = cdn_data.decode("gbk")
- print(cdn_data)
- 服务器: UnKnown
- Address: fe80::2af7:d6ff:fe96:9e70
-
- 名称: www.a.shifen.com
- Addresses: 2409:8c20:6:1d55:0:ff:b09c:7d77
- 2409:8c20:6:1135:0:ff:b027:210c
- 36.155.132.3
- 36.155.132.76
- Aliases: www.baidu.com
这里为了输出结果更加显眼也为了后续能够为写批量监测方便,使用了第三方库,将目标存在CDN输出的颜色为红色
- import os
- # 用于打印带颜色的文字
- from colorama import init
- from colorama import Fore
-
- # nslookup: 这是一个标准的网络管理命令行工具,用于查询DNS记录,以确定给定域名的IP地址
- cdn_cmd = os.popen("nslookup www.baidu.com")
- cdn_data = cdn_cmd.read()
- print(cdn_data) # 测试时使用,测试完后,直接注释,具体看个人操作
- # 通过.的个数;来判断,如果没有cdn,那么.的个数是8-10个,.超过10个基本判断有cdn
- # 当然如果出现网络问题.也会超过10个具体需要增加一些其他的判断
- point_count = cdn_data.count(".")
- if point_count > 10:
- print(Fore.RED + "目标存在CDN")
- # print("目标存在CDN")
- else:
- print("目标不存在CDN")
- import os
- # 用于打印带颜色的文字
- from colorama import Fore
-
- # nslookup: 这是一个标准的网络管理命令行工具,用于查询DNS记录,以确定给定域名的IP地址
- url = str(input("请输入要监测cdn的url:"))
- cdn_cmd = os.popen(f"nslookup {url}")
- cdn_data = cdn_cmd.read()
- print(cdn_data)
- # 通过.的个数;来判断,如果没有cdn,那么.的个数是8-10个,.超过10个基本判断有cdn
- # 当然如果出现网络问题.也会超过10个具体需要增加一些其他的判断
- point_count = cdn_data.count(".")
- if point_count > 10:
- print(Fore.RED + f"{url}存在CDN")
- # print("目标存在CDN")
- else:
- print(f"{url}不存在CDN")
这里会因为第一次写的那个会输出乱码数据,这里,还是使用第二种,解决乱码,并进行初试
url.txt
www.baidu.com www.bing.com
- import subprocess
- # 用于打印带颜色的文字
- from colorama import Fore
-
- with open("url.txt", "r") as f:
- for url in f.readlines(): # 读取每一行
- # nslookup: 这是一个标准的网络管理命令行工具,用于查询DNS记录,以确定给定域名的IP地址
- cdn_cmd = subprocess.Popen(["nslookup", "www.baidu.com"], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
- cdn_data, error = cdn_cmd.communicate()
- cdn_data = cdn_data.decode("gbk")
- # print(url)
- # print(cdn_data)
- # 通过.的个数;来判断,如果没有cdn,那么.的个数是8-10个,.超过10个基本判断有cdn
- # 当然如果出现网络问题.也会超过10个具体需要增加一些其他的判断
- point_count = cdn_data.count(".")
- if point_count > 10:
- with open("cdn存在.txt", "a") as w:
- cdn_url = f"{url}存在CDN"
-
- w.write(cdn_url+"\n")
- print(Fore.RED + f"{url}存在CDN")
- # print(f"{url}存在CDN")
- else:
- with open("cdn不存在.txt", "a") as w:
- n_cdn_url = f"{url}不存在CDN"
-
- w.write(n_cdn_url+"\n")
- print(f"{url}不存在CDN")
写入数据时,不能增加颜色,不然会出现写入数据中出现
[31mwww.baidu.com 存在CDN[31mwww.bing.com存在CDN
存储数据以及输出数据时,第一行读入的数据总是会出现,如图所示的状况,并且存入数据后也会出现如图所示的状况
第一次尝试解决,是将在读入数据时,指定数据从第二行数据读起并将url.txt第一行设置为空行,结果返回了数组,并且返回了失败数据,但是发现了换行符,考虑到是因为自动增加换行符的原因
在拼接之前,先去掉换行符,在写入数据时重新加上换行符
- with open("cdn存在.txt", "a") as w:
- url = str(url).rstrip()
- cdn_url = f"{url}存在CDN"
-
- w.write(cdn_url+"\n")
- print(Fore.RED + f"{url}存在CDN")
- import subprocess
- # 用于打印带颜色的文字
- from colorama import Fore
-
- with open("url.txt", "r") as f:
- for url in f.readlines(): # 读取每一行
- # nslookup: 这是一个标准的网络管理命令行工具,用于查询DNS记录,以确定给定域名的IP地址
- cdn_cmd = subprocess.Popen(["nslookup", "www.baidu.com"], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
- cdn_data, error = cdn_cmd.communicate()
- cdn_data = cdn_data.decode("gbk")
- # print(url)
- # print(cdn_data)
- # 通过.的个数;来判断,如果没有cdn,那么.的个数是8-10个,.超过10个基本判断有cdn
- # 当然如果出现网络问题.也会超过10个具体需要增加一些其他的判断
- point_count = cdn_data.count(".")
- if point_count > 10:
- with open("cdn存在.txt", "a") as w:
- url = str(url).rstrip()
- cdn_url = f"{url}存在CDN"
-
- w.write(cdn_url+"\n")
- print(Fore.RED + f"{url}存在CDN")
- # print(f"{url}存在CDN")
- else:
- with open("cdn不存在.txt", "a") as w:
- url = str(url).rstrip()
- n_cdn_url = f"{url}不存在CDN"
-
- w.write(n_cdn_url+"\n")
- print(f"{url}不存在CDN")
这里因为是以追加(a+)的方式写入,所以会出现第一行为空行
渗透学习过程中,不仅需要学习实战技巧,更要懂得开发实战工具,来辅助自己学习和进行进一步渗透利用,这里是围绕整个渗透测试的流程来进行开发,整体适合小白,当然我现在也在学习阶段,还是会出现很多开发过程中的问题,需要进行进一步解决.
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。