(字典、子域名)合并去重 Python 脚本

前言

一般在做渗透测试的时候,前期对目标资产子域名进行信息搜集时,往往会从多个在线或者离线子域名采集工具中导出结果。然而每个工具平台导出的结果中都会有很多重复的子域名,如果靠手工对这些子域名结果进行合并去重的话,是非常的繁琐且低效率的,因此可以借助脚本工具替我们去完成这一复杂的整理工作,提高渗透效率。

0x01 脚本使用

将(字典、子域名)逐行保存到*.txt文件中,并且与脚本放在同一️目录下,然运行脚本即可:

代码语言:javascript
复制
 ~/ ls
a.com.txt       b.com.txt       merge_unique.py
 ~/ python merge_unique.py
查找当前目录下的txt文件:
共发现2个txt文件!
开始合并:
合并完毕!
开始去重:
去重完成!
 ~/ ls
a.com.txt             b.com.txt             merge_unique.py       out_merged_result.csv

执行完毕后,会将所有txt文件中的内容合并去重到新的 out_merged_result.csv 文件中。

0x02 脚本源码

Python合并去重脚本源码如下:

代码语言:javascript
复制
#coding=utf-8
import os
import pandas as pd
import glob

outFileName = 'out_merged_result.csv'

def merge():
txt_list = glob.glob('*.txt')
print(u'共发现%s个txt文件!'% len(txt_list))
print(u'开始合并:')
for i in txt_list:
fr = open(i,'r').read()
with open(outFileName,'a') as f:
f.write(fr)
print(u'合并完毕!')

def unique(file):
df = pd.read_csv(file, header=0, error_bad_lines=False, quotechar=None, quoting=3)
dataList = df.drop_duplicates()
dataList.to_csv(file)

if name == 'main':
print(u'查找当前目录下的txt文件:')
merge()
print(u'开始去重:')
unique(outFileName)
print(u'去重完成!')

参考文章