python信息收集之子域名
python信息收集之子域名
主要是以下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('\n')
... dic['name'] = line
... print dic
...
{'name': 'name1'}
{'name': 'name2'}
{'name': 'name3'}
set
set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。
正则表达式
- 懒惰匹配
.*? ----匹配任意数量的重复,但是在能使整个匹配成功的前提下使用最少的重复
- 后向引用
() ----匹配这个子表达式的文本
0x01 字典爆破
自定义加载字典爆破
0x02 搜索引擎
- 百度
# -*- 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;">(.*?)/ ')
domain = re.findall(pattern,res)
domains += set(domain)
print domains
print '\nthe number of domain is %d' %len(domains)
for num in domains:
print num
- 必应
- 谷歌
0x03 第三方网站
python信息收集之子域名的更多相关文章
- python信息收集(一)
在渗透测试初期,需要进行大量的信息收集.一般情况下,信息收集可以分为两大类----被动信息收集和主动信息收集. 其中,被动信息收集主要是通过各种公开的渠道来获取目标系统的信息,例如:站 ...
- python 信息收集器和CMS识别脚本
前言: 信息收集是渗透测试重要的一部分 这次我总结了前几次写的经验,将其 进化了一下 正文: 信息收集脚本的功能: 1.端口扫描 2.子域名挖掘 3.DNS查询 4.whois查询 5.旁站查询 CM ...
- python信息收集(二)
在第二层主机发现中,除了使用arping命令外,还可以使用Kali下自带的一个工具----netdiscover. netdiscover是一个专门用于二层主机发现的工具,它有两种扫 ...
- python信息收集(四)
在前三篇中,我们介绍了使用python脚本发现二层.三层的主机设备,接下来我们介绍使用python发现第四层主机. 在TCP/IP协议中,第四层为传输层,主要使用的通信协议为TCP协议 ...
- python信息收集(三)
前两篇介绍了利用python编写一些脚本实现二层主机的发现,这一篇介绍一下三层主机的发现. 一般来说,三层主机的发现主要是通过ICMP协议来实现的.其中ICMP协议中的ping命令可以 ...
- src挖掘过程之信息收集
信息收集 1.厂商域名 2.厂商ip段 3.厂商业务信息 域名收集 1.基于SSL证书查询 2.第三方网站接口查询 3.Github 4.DNS解析记录 5.子域名枚举等 基于 ...
- APT 信息收集——shodan.io ,fofa.so、 MX 及 邮件。mx记录查询。censys.io查询子域名。
信息收集 目标是某特殊机构,外网结构简单,防护严密.经探测发现其多个子机构由一家网站建设公司建设. 对子域名进行挖掘,确定目标ip分布范围及主要出口ip. 很多网站主站的访问量会比较大.往往主站都是挂 ...
- 基于Python的渗透测试信息收集系统的设计和实现
信息收集系统的设计和实现 渗透测试是保卫网络安全的一种有效且必要的技术手段,而渗透测试的本质就是信息收集,信息搜集整理可为后续的情报跟进提供强大的保证,目标资产信息搜集的广度,决定渗透过程的复杂程度, ...
- kali-dmitry 域名信息收集
DMirty:用来收集以下信息: 1. 端口扫描 2. whois主机IP和域名信息 3. 从Netcraft.com获取主机信息 4. 子域名 5. 域名中包含的邮件地址 1.使用方法: Deepm ...
随机推荐
- Postgres——pgadmin复制无主键单表至本地数据库
数据库中存在无主键单表gongan_address_all ,需要将余杭区数据导出成另外一张表,因为数据量太大,sql语句效率太差. 通过sql语句查询出余杭区数据,并导出成csv,sql等格式,再导 ...
- input输入完成后监听
clearTimeout(serachtimer); serachtimer=setTimeout(function(){ xxxxxxx //这里写处理的方法 },1000)
- attr 和 prop 的区别
在高版本的jquery引入prop方法后,什么时候该用prop?什么时候用attr?它们两个之间有什么区别?这些问题就出现了. 关于它们两个的区别,网上的答案很多.这里谈谈我的心得,我的心得很简单: ...
- MySQL - 用户变量
MySQL用户变量:基于会话变量实现的,可以暂存值,并传递给同一连接里的下一条sql使用的变量,当客户端连接退出时,变量会被释放. MySQL用户变量应用场景:同一连接,未关闭情况下,帮你暂存一些计算 ...
- sql server 查看锁表SQL【转】
1.select * from sys.dm_tran_locks或sp_LOCK 查看request_node 字段中为'X'(排他锁)或'IX'(意向排他锁)2.用sp_who2 + pid(进程 ...
- Android中五大字符串总结(String、StringBuffer、StringBuilder、Spanna
https://www.aliyun.com/jiaocheng/2861.html?spm=5176.100033.1.35.2ed56b03CbsYFK 摘要:String.StringBuffe ...
- node起一个简单服务,打开本地项目或文件浏览
1.安装nodejs 2.在项目文件夹目录下创建一个js文件,命名server.js(自定义名称),内容如下 var http = require('http'); var fs = require( ...
- uname命令详解
1.简介: uname命令用于打印当前系统相关信息(内核版本号.硬件架构.主机名称和操作系统类型等). 2.命令语法: uname (选项) 3.选项: -a或--all:显示全部的信息: -m或-- ...
- vue 关键词模糊查询
页面html,绑定的列表数据为datas,关键词为 select_words,如下图 其中d.accounts和d.roleName是需要进行搜索的字段,也可以进行大小写都可以
- Swagger注解
swagger注解说明 1.与模型相关的注解,用在bean上面 @ApiModel:用在bean上,对模型类做注释: @ApiModelProperty:用在属性上,对属性做注释 2.与接口相关的注 ...