开发实战(1)–Cdn
这里我是根据整个渗透测试的流程进行安全开发
1.信息收集阶段
1.1判断CDN是否存在
1.1.1, One
1 2 3 4 5 6 7 8 9 10 11 12
|
import os
cdn_cmd = os.popen("nslookup www.baidu.com") cdn_data = cdn_cmd.read() print(cdn_data)
|
输出的结果:发现存在乱码
1 2 3 4 5 6 7 8 9 10
| ��Ȩ��Ӧ��: 服务器: 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
|
1.1.2,Two(改进)
可以使用这个,也可以使用上面的,总的来说没有什么影响,只是会在后续的批量监测中,会出现很多杂乱的乱码数据
1 2 3 4 5 6 7 8
| import subprocess
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)
|
1 2 3 4 5 6 7 8 9
| 服务器: 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
|
1.1.3,进行整合
这里为了输出结果更加显眼也为了后续能够为写批量监测方便,使用了第三方库,将目标存在CDN输出的颜色为红色
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| import os
from colorama import init from colorama import Fore
cdn_cmd = os.popen("nslookup www.baidu.com") cdn_data = cdn_cmd.read() print(cdn_data)
point_count = cdn_data.count(".") if point_count > 10: print(Fore.RED + "目标存在CDN") else: print("目标不存在CDN")
|
增加输入功能
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| import os
from colorama import Fore
url = str(input("请输入要监测cdn的url:")) cdn_cmd = os.popen(f"nslookup {url}") cdn_data = cdn_cmd.read() print(cdn_data)
point_count = cdn_data.count(".") if point_count > 10: print(Fore.RED + f"{url}存在CDN") else: print(f"{url}不存在CDN")
|
1.1.4 批量读取+监测+存储(进行测试)
这里会因为第一次写的那个会输出乱码数据,这里,还是使用第二种,解决乱码,并进行初试
url.txt
1 2
| www.baidu.com www.bing.com
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| import subprocess
from colorama import Fore
with open("url.txt", "r") as f: for url in f.readlines(): 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")
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") else: with open("cdn不存在.txt", "a") as w: n_cdn_url = f"{url}不存在CDN"
w.write(n_cdn_url+"\n") print(f"{url}不存在CDN")
|
问题1:
写入数据时,不能增加颜色,不然会出现写入数据中出现
1 2
| [31mwww.baidu.com 存在CDN[31mwww.bing.com存在CDN
|
问题2:
存储数据以及输出数据时,第一行读入的数据总是会出现,如图所示的状况,并且存入数据后也会出现如图所示的状况
第一次尝试解决,是将在读入数据时,指定数据从第二行数据读起并将url.txt第一行设置为空行,结果返回了数组,并且返回了失败数据,但是发现了换行符,考虑到是因为自动增加换行符的原因
解决方案:
在拼接之前,先去掉换行符,在写入数据时重新加上换行符
1 2 3 4 5 6
| 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")
|
1.1.4 基本编写完成
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| import subprocess
from colorama import Fore
with open("url.txt", "r") as f: for url in f.readlines(): 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")
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") 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")
|
命令框中:
cdn存在.txt
这里因为是以**追加(a+)**的方式写入,所以会出现第一行为空行
总结
1
| 渗透学习过程中,不仅需要学习实战技巧,更要懂得开发实战工具,来辅助自己学习和进行进一步渗透利用,这里是围绕整个渗透测试的流程来进行开发,整体适合小白,当然我现在也在学习阶段,还是会出现很多开发过程中的问题,需要进行进一步解决.
|
评论区
欢迎你留下宝贵的意见,昵称输入QQ号会显示QQ头像哦~