子域名挖掘,子域名爆破,Python脚本编写(Python安全攻防)。

子域名挖掘,子域名爆破,Python脚本编写(Python安全攻防)。,第1张

域名挖掘,子域名爆破,Python脚本编写(Python安全攻防)。 1.什么是域名。

域名(Domain Name),又称网域,是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时对计算机的定位标识(有时也指地理位置)。 由于IP地址具有不方便记忆并且不能显示地址组织的名称和性质等缺点,人们设计出了域名,并通过网域名称系统(DNS,Domain Name System)来将域名和IP地址相互映射,使人更方便地访问互联网,而不用去记住能够被机器直接读取的IP地址数串。

域名有级别之分,可以分为顶级域名(一级域名)、二级域名、三级域名、多级域名
二级三级和多级则是此网站的子域名。例如:顶级域名:miduoqi.com,二级域名:www.miduoqi.com; 三级域名:.............
 

2.子域名挖掘的收集原理

常用的收集方式有字典爆破,DNS信息收集,证书查询,爬虫提取子域名等,咱们这次脚本是通过搜索引擎进行子域名搜集。

1.字典爆破
字典爆破就是通过收集来的字典,拼接到顶级域名前面,然后通过自动化工具进行访问,判断返回结果,从而跑出子域名是否存在。
爆破处理接货主要是依赖于字典的精准度,一本好的字典可以让你事半功倍。

2.DNS信息收集
DNS原理就是搜集DNS的解析历史,通过查询dns记录来获取到对方的解析记录,从而获取到子域名,正常来说你的域名经DNS解析过一般就会搜到。

3.证书查询
通过HTTPS 证书,ssl证书等搜集子域名记录。

4.爬虫提取子域名
可以利用爬虫从页面源代码中提取子域名。
原理介绍参考:

(11条消息) 信息搜集-子域名挖掘_小刚的博客-CSDN博客_子域名挖掘https://blog.csdn.net/weixin_43221560/article/details/109118270

3.脚本编写

(1)创建名为子域名挖掘的py文件,导入一些需要用的python模块

#requests库内置了不同的方法来发送不同类型的http请求
import requests                      
 #BS主要功能是从网页抓取数据,提供一些简单的、python 式的函数用来处理导航、搜索、修改分析树等功能
from bs4 import BeautifulSoup  
#模块主要用于解析url中的参数,对url按照一定格式进行 拆分或拼接,将url分为6个部分,返回一个包含6个字符串项目的元组:协议、位置、路径、参数、查询、片段     
from urllib.parse import urlparse   
import sys 

(2)通过bing搜索引擎来进行子域名搜集s

def bing_search(site,pages):
    Subdomain = []
    headers = {         #HTTP Headers是HTTP请求和相应的核心,它承载了关于客户端浏览器,请求页面,服务器等相关的信息
        'User-Agent': 'Mozilla/5.0 (x11; Linux x86_64;rv:68.0)Gecko/20100101 Firefox/68.0',   #是Http协议中的一部分,属于头域的组成部分,是一种向访问网站提供你所使用的浏览器类型、 *** 作系统及版本、CPU 类型、浏览器渲染引擎、浏览器语言、浏览器插件等信息的标识
        'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',#属于请求报头,代表发送端(客户端)希望接受的数据类型
        'Referer': "https://cn.bing.com",  #表示一个来源
        'cookie': "MUID=3B46E5B***********78X&T=6"   #类型为“小型文本文件”,是某些网站为了辨别用户身份,进行Session跟踪而储存在用户本地终端上的数据(通常经过加密),由用户客户端计算机暂时或永久保存的信息
    }
    for i in range(1,int(pages)+1):
        url = "https://cn.bing.com/search?q=site%3a"+site+"&go=Search&qs=ds&first="+ str((int(i)-1)*10) +"&FORM=PERE"
        html = requests.get(url,headers=headers)     #获取HTML网页,对应HTTP的GET
        soup = BeautifulSoup(html.content,'html.parser')
        job_bt = soup.findAll('h2')     #返回一个包含HTML文档标题标签h2的列表
        for i in job_bt:
            link = i.a.get('href')
            domain = str(urlparse(link).scheme + "://" +urlparse(link).netloc)  #储存子域名
            if domain in Subdomain:
                pass
            else:
                Subdomain.append(domain)
                print(domain)
if __name__ == '__main__':
    if len(sys.argv) == 3:
        site = sys.argv[1]
        page = sys.argv[2]
    else:
        print("usage: %s baidu.com 10" % sys.argv[0])         #输出帮助信息
        sys.exit(-1)
    Subdomain = bing_search(site,page)

  (3) 结果:输入python 子域名挖掘.py baidu.com 5

以上总结或许能帮助到你,或许帮助不到你,但还是希望能帮助到你,如有疑问、歧义,直接私信留言会及时修正发布;非常期待你的点赞和分享哟,谢谢!

 

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5571617.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-14
下一篇 2022-12-14

发表评论

登录后才能评论

评论列表(0条)

保存