一般在做渗透测试的时候,前期对目标资产子域名进行信息搜集时,往往会从多个在线或者离线子域名采集工具中导出结果。然而每个工具平台导出的结果中都会有很多重复的子域名,如果靠手工对这些子域名结果进行合并去重的话,是非常的繁琐且低效率的,因此可以借助脚本工具替我们去完成这一复杂的整理工作,提高渗透效率。
将(字典、子域名)逐行保存到*.txt文件中,并且与脚本放在同一️目录下,然运行脚本即可:
~/ 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
文件中。
Python合并去重脚本源码如下:
#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'去重完成!')