【网络攻防技术】实验一——域名信息收集

编程知识 更新时间:2023-05-03 04:04:44

一、实验要求

本次实验主要考察大家的编程能力及子域名的信息收集方法,在文件 夹“Lab1_code”提供了使用 Bing 搜索引擎的域名收集功能。请对该 代码进行扩展,使其可支持百度搜索引擎的域名收集功能。需要实现 如下功能:

  1. 支持百度搜索引擎的域名提取,其中从百度搜索引擎提取的域名 需为真实域名,而非百度的域名跳转链接;
  2. 可扩充其他功能,比如域名所在的标题等信息。

二、实验步骤

  1. 导入模块,分别用来请求网页、处理获取的到的网页源码数据、用于处理url
import requests                          #用于请求网页
from bs4 import BeautifulSoup            #用于处理获取的到的网页源码数据
from urllib.parse import urlparse        #用于处理url
  1. 定义采用百度搜索引擎,同时定义空列表、请求头与请求url
def baidu_search():
    Subdomain = []           #定义一个空列表用于存储收集到的子域名
    #定义请求头,绕过反爬机制
    hearders = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.63 Safari/537.36 Edg/93.0.961.38',
        'Accept': '*/*',  
        'referer':'https://www.baidu/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=1&tn=baidu&wd=site%3Apku.edu&fenlei=256&oq=site%253Awechat&rsv_pq=d3dc168d0016c859&rsv_t=09c89Z6QKcJ4xzJZrwCCrEG%2BhqUFqgggnvrkWjvfq5N%2Bqk8ZXAviJT3HLZY&rqlang=cn&rsv_enter=0&rsv_dl=tb&rsv_btype=t&inputT=13893&rsv_sug3=21&rsv_sug4=15260',
        'cookie':'BAIDUID=9AAFB781E7A495630A3E99603C647298:FG=1; BIDUPSID=7C9932C0E0306D481FA23A4047DAC370; PSTM=1572779713; __yjs_duid=1_26c1cd348283567d4c94df518bbb60851624975916759; BD_UPN=12314753; BDORZ=B490B5EBF6F3CD402E515D22BCDA1598; H_PS_PSSID=34443_34380_34144_31254_34004_34524_34585_34092_34106_26350_34557; delPer=0; BD_CK_SAM=1; PSINO=1; H_PS_645EC=09c89Z6QKcJ4xzJZrwCCrEG%2BhqUFqgggnvrkWjvfq5N%2Bqk8ZXAviJT3HLZY; BA_HECTOR=81a18ka584012hakqq1gjk7fi0r; BDSVRTM=10; WWW_ST=1631198807201'
    }
    #定义请求url
    url = "https://www.baidu//s?ie=utf-8&mod=1&isbd=1&isid=d3dc168d0016c859&ie=utf-8&f=8&rsv_bp=1&rsv_idx=1&tn=baidu&wd=site%3Apku.edu&fenlei=256&oq=site%253Awechat&rsv_pq=d3dc168d0016c859&rsv_t=09c89Z6QKcJ4xzJZrwCCrEG%2BhqUFqgggnvrkWjvfq5N%2Bqk8ZXAviJT3HLZY&rqlang=cn&rsv_enter=0&rsv_dl=tb&rsv_btype=t&inputT=13893&rsv_sug3=21&rsv_sug4=15260&bs=site%3Awechat&rsv_sid=undefined&_ss=1&clist=&hsug=&f4s=1&csor=15&_cr1=33613"
    resp = requests.get(url,headers=hearders)           #访问url,获取网页源码
    
  1. 创建BeautifulSoup对象,使用find_all()查找源码中所有返回网址信息的内容
 soup = BeautifulSoup(resp.content,'html.parser')    #创建一个BeautifulSoup对象,第一个参数是网页源码,第二个参数是Beautiful Soup 使用的 HTML 解析器,
 job_bt = soup.find_all("div",class_="result")                        #find_all()查找源码中所有返回网址信息的内容
  1. 查找域名并存入域名表
    for i in job_bt:
        div = i.find("div",class_="f13")   #进入有域名的最外面的标签
        a_target = div.find("a",class_="c-showurl c-color-gray")  #进入含有域名的标签中
        link = a_target.text       #找到网址原本的域名

        name=i.h3.a.string    #查a标签的string
        #复原原本的域名
        link = str("http" + "://" + link)
        abstract = i.find("div",class_="c-abstract").text  #获取描述
        domain = link+"\t"+name+"\n"+"\t"+abstract
        if domain in Subdomain:              #如果解析后的domain存在于Subdomain中则跳过,否则将domain存入子域名表中
            pass
        else:
            Subdomain.append(domain)
            print(domain)
  1. 域名收集结果(采用pku.edu作为顶级域名)

更多推荐

【网络攻防技术】实验一——域名信息收集

本文发布于:2023-04-30 12:37:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/15eeb7534095a943d75a353a895dfd19.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:攻防   域名   技术   网络   信息

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!

  • 114508文章数
  • 28954阅读数
  • 0评论数