• python信息收集之子域名


    python信息收集之子域名

    主要是以下3种思路:

    1. 字典爆破
    2. 搜索引擎
    3. 第三方网站

    0x00 背景知识

    list

    Python内置的一种数据类型是列表:list是一种有序的集合。

    >>> names = ['mark','sam','rachel']
    >>> names[0]      //使用索引访问列表元素
    'mark'
    >>> names[1]
    'sam'
    >>> names[2]
    'rachel'
    >>> names[-1]
    'rachel'
    >>> names[-2]
    'sam'
    >>> names[-3]
    'mark'
    >>> names[:]
    ['mark', 'sam', 'rachel']
    >>> names[0:3]
    ['mark', 'sam', 'rachel']
    >>> len(names)
    3
    >>> list1 = [1,2,3]
    >>> list2 = [4,5,6]
    >>> list3 = list1 + list2
    >>> list3
    [1, 2, 3, 4, 5, 6]
    >>> names.append('angel')    //追加元素到末尾
    >>> names
    ['mark', 'sam', 'rachel', 'angel']
    >>> names.insert(0,'insertname')    //插入元素到指定索引
    >>> names
    ['insertname', 'mark', 'sam', 'rachel', 'angel']
    >>> names.pop()     //默认删除list末尾元素
    'angel'
    >>> names
    ['insertname', 'mark', 'sam', 'rachel']
    >>> names.pop(0)    //删除指定索引位置元素
    'insertname'
    >>> names
    ['mark', 'sam', 'rachel']
    >>> names[0] = 'xiaoyuer'     //元素替换
    >>> names
    ['xiaoyuer', 'sam', 'rachel']
    >>>
    

    dict

    python内置了字典:dict全称dictionary,使用键-值(key-value)存储,具有极快的查找速度。

    >>> d = {'name':'mark', 'age':18}
    >>> d['name']
    'mark'
    >>> d['age']
    18
    

    操作键(key)

    for key in dic.keys():
    

    操作值(value)

    for value in dic.values():
    

    操作键(key)值(value)

    for k,v in dic.items():
    

    整数

    >>> dic = {'age': 18}
    >>> for i in range(5):
    ...         v = i
    ...         dic['age'] = v
    ...         print dic
    ...
    {'age': 0}
    {'age': 1}
    {'age': 2}
    {'age': 3}
    {'age': 4}
    

    字符串

    >>> with open('/Users/markzhang/Desktop/user.txt','r') as f:
    ...     lines = f.readlines()
    ...     for line in lines:
    ...         line = line.strip('
    ')
    ...         dic['name'] = line
    ...         print dic
    ...
    {'name': 'name1'}
    {'name': 'name2'}
    {'name': 'name3'}
    

    set

    set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。

    正则表达式

    1. 懒惰匹配
    .*?    ----匹配任意数量的重复,但是在能使整个匹配成功的前提下使用最少的重复
    
    1. 后向引用
    ()     ----匹配这个子表达式的文本
    

    0x01 字典爆破

    自定义加载字典爆破

    0x02 搜索引擎

    1. 百度
    # -*- coding: utf-8 -*-
    import requests
    import re
    
    url = 'http://www.baidu.com/s?wd=site%3Abaidu.com'
    data = {'pn':0}
    
    for v in data.values():
    	domains = []
    	for i in range(4):
    		i = i * 10
    		v = i
    		data['pn'] = v
    		res = requests.get(url,params=data).text.encode('utf-8')
    		#正则
    		pattern = re.compile(r'style="text-decoration:none;">(.*?)/&nbsp')
    		domain = re.findall(pattern,res)
    		domains += set(domain)
    
    print domains
    print '
    the number of domain is %d' %len(domains)
    for num in domains:
    	print num 
    
    1. 必应
    2. 谷歌

    0x03 第三方网站

  • 相关阅读:
    luogu P3168 [CQOI2015]任务查询系统
    luogu P2633 Count on a tree
    c++小游戏:洛谷彩票
    UVA514 铁轨 Rails:题解
    SP1805 HISTOGRA
    洛谷 P4363 [九省联考2018]一双木棋chess 题解
    比赛:大奔的方案solution
    【CYH-02】NOIp考砸后虐题赛:数学:题解
    【CYH-02】NOIp考砸后虐题赛:坐标:题解
    【CYH-02】NOIp考砸后虐题赛:转换式:题解
  • 原文地址:https://www.cnblogs.com/mark-zh/p/10309876.html
Copyright © 2020-2023  润新知