购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

4.1.2 子域名挖掘

域名可以分为顶级域名、一级域名、二级域名等。子域名(subdomain)是顶级域名(一级域名或父域名)的下一级。例如,mail.example.com和calendar.example.com是example.com的两个子域,而example.com则是顶级域.com的子域。在测试过程中,测试目标主站时如果未发现任何相关漏洞,此时通常会考虑挖掘目标系统的子域名。子域名挖掘方法有很多种,例如,搜索引擎、子域名破解、字典查询等。

下面将向大家介绍如何通过Python写一个简单的子域名挖掘工具。此处是通过Bing搜索引擎(网址为 https://cn.bing.com/ )进行子域名搜集。代码如下:


#! /usr/bin/env python
# _*_  coding:utf-8 _*_
import requests
from bs4 import BeautifulSoup
from urllib.parse import urlparse
import sys

def bing_search(site, pages):
    Subdomain = []
    headers = {'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/
        20100101 Firefox/60.0',
               'Accept': '*/*',
               'Accept-Language': 'en-US,en;q=0.5',
               'Accept-Encoding': 'gzip,deflate',
               'referer': "http://cn.bing.com/search?q=email+site%3abaidu.
                    com&qs=n&sp=-1&pq=emailsite%3abaidu.com&first=2&FORM=PERE1"
               }
    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"
        conn = requests.session()
        conn.get('http://cn.bing.com', headers=headers)
        html = conn.get(url, stream=True, headers=headers, timeout=8)
        soup = BeautifulSoup(html.content, 'html.parser')
        job_bt = soup.findAll('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__':
    # site=baidu.com
    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)

打开Linux系统终端,并执行命令Python3 subdomain.py baidu.com 15,输入baidu.com,表示对该域名进行子域名收集,数字15表示获取Ping搜索引擎页数,运行效果如下所示: jkhcQ+1OclYgDh/al0ub4v9wWMnjITH7lADZIfPL+SW7Lh3Vi2LH+avwb/XYMbQD

点击中间区域
呼出菜单
上一章
目录
下一章
×