|
Ots python教程_使用Python开发子域扫描器查找特定网站的子域可让您探索该网站的完整域基础结构。在涉及针对道德黑客的渗透测试中的信息收集阶段时,构建这样的工具确实非常方便。 手动搜索子域将花费很多时间。幸运的是,我们不必这样做,在本教程中,我们将使用请求库在Python中构建一个子域扫描程序。让我们开始吧! 安装它: pip3 install requests 我们将在此处使用的方法是蛮行强制的,换句话说,只要我们收到服务器的响应,就将测试该特定域的所有常见子域名,这表明该子域仍然存在。 打开一个新的Python文件并继续,让我们使用google.com进行演示,我之所以使用它是因为google虽然有很多子域: import requests # the domain to scan for subdomains domain = "google.com" 现在我们需要扫描一个大的子域列表,我仅使用100个子域进行演示,但是在现实世界中,如果您真的想发现所有子域,则必须使用更大的列表,请查看此github。存储库,最多包含1万个子域。 我在当前目录中有一个文件“ subdomains.txt”,请确保您也这样做(在此存储库中选择列表): # read all subdomains file = open("subdomains.txt") # read all content content = file.read() # split by new lines subdomains = content.splitlines() 现在,子域列表包含了我们要测试的子域,让我们进行暴力破解: for subdomain in subdomains: # construct the url url = f"http://{subdomain}.{domain}" try: # if this raises an ERROR, that means the subdomain does not exist requests.get(url) except requests.ConnectionError: # if the subdomain does not exist, just pass, print nothing pass else: print("[+] Discovered subdomain:", url) 首先,我们建立适合发送请求的URL,然后使用requests.get()函数从服务器获取HTTP响应,这将在服务器不响应时引发ConnectionError异常,这就是我们包装的原因在try / except块中。 最后,如果未引发异常,则子域存在。 这是运行脚本时结果的一部分: 您会注意到,运行此过程的速度相当慢,这取决于您的Internet连接,但是如果您想加快扫描过程的速度,可以使用多个线程进行扫描,我已经编写了一个线程,请在此处进行检查。 另外,考虑将结果写入文件中,而不只是打印到控制台中,这将使您在执行脚本之后稍后探索发现的子域。 好了,我们完成了,现在您知道如何发现您真正想要的任何网站的子域! |