1. 介绍
提取多个关键字的行
2. 用于场景
只检测授权目标,一般情况下批量资产收集后和批量扫描前用于资产过滤,防止渗透没有权限授权的渗透资产。
批量资产收集后,像fofa,批量工具子域名爆破,jslink提取之后。
批量扫描前,像rad+xray,awvs,afrog,nulei之前
3. 代码部分
如果关键字是
xjtu.edu.cn
mubiao里面有下面这种zzzs.xjtu.edu.cn.w.xxx.cn
结果就会是
zzzs.xjtu.edu.cn
zzzs.xjtu.edu.cn.w.xxx.cn
zzzsms.xjtu.edu.cn
但是这个脚本可以用来处理这种:http://zzzs.xjtu.edu.cn/web/admin.php 提取关键字的行了
f = open('guanjianzi.txt','r',encoding='utf-8')
q = open('jieguo.txt','a+',encoding='utf-8')
line1 = f.readlines()
for l in line1:
p = open('mubiao.txt', 'r', encoding='utf-8')
line2 = p.readlines()
for ll in line2:
# print(ll)
if l.strip() in ll:
# print(ll)
# print(l)
#print(l.strip())
q.writelines(ll)
p.close()
f.close()
q.close()
经常遇到,改进下:如果关键字是
1.xjtu.edu.cn
mubiao里面有下面这种
zzzs.xjtu.edu.cn
zzzs.xjtu.edu.cn.w.xxx.cn
zzzsms.xjtu.edu.cn
zzzs1.xjtu.edu.cn
zzzs1.xjtu.edu.cn.w.xxx.cn
zzzsms.1xjtu.edu.cn
结果也只会是(右侧匹配机制)
zzzs1.xjtu.edu.cn
就不适合 这种: http://zzzs.xjtu.edu.cn/web/admin.php 提取关键字的行了。
# 读取guanjianzi.txt文件中的关键字列表
with open('guanjianzi.txt', 'r', encoding='utf-8') as gjz_file:
keywords = gjz_file.read().splitlines()
# 初始化一个空列表来存储匹配的行
matching_lines = []
# 打开并处理mubiao.txt文件
with open('mubiao.txt', 'r', encoding='utf-8') as chuli_file:
for line in chuli_file:
# 遍历关键字列表,检查当前行是否以任何关键字结束
for keyword in keywords:
if line.rstrip().endswith(keyword):
# 如果找到匹配项,将该行添加到匹配行列表中
matching_lines.append(line)
break # 找到匹配项后,跳出内层循环
# 将匹配的行写入jieguo.txt文件
with open('jieguo.txt', 'w', encoding='utf-8') as jieguo_file:
jieguo_file.writelines(matching_lines)
print("匹配的行已保存到jieguo.txt文件中。")
4. 用法
python38 提取多个关键字的行.py
guanjianzi.txt 放入授权的根域名或者授权子域名 ,ip地址等
mubiao.txt 放入你收集的不完全确认授权资产。
jieguo,txt 就是运行后的授权资产结果。