概述:
本文介绍了一个基于Python的简单目录扫描工具,它可以自动检索网页源代码中的关键字,并将结果保存到指定的文件中。通过使用Python的requests库,该工具提供了一种高效、灵活的方法,可用于网络安全测试和网站管理等领域。
这次,我在1.0版本中进行了一个升级,感觉1.0太麻烦了,每次都要进入到代码中去修改字典,修改输出的文件名,关键字啊什么的,这次使用命令行就可以更改了!
import argparse
import requests
def httpContext(file_name, keyword, output_file):
with open(file_name, 'r', encoding='utf-8') as good_file:
for line in good_file:
url = line.strip() # 去除行末尾的换行符
response = requests.get(url) # 发送请求
contents = response.text.lower() # 获取响应的源代码并转换为小写
if keyword in contents:
with open(output_file, 'a', encoding='utf-8') as output:
output.write(url + '\n')
def main(args):
url = args.url # 目标 URL
dir_file = args.dir_file # 存储目录的文件名
output_file = args.output_file # 输出结果的文件名
keyword = args.keyword # 在网站源码中查询的关键字
keyword_output_file = args.keyword_output_file # 找到关键字的网页 URL 的输出文件名
with open(dir_file, 'r', encoding='utf-8') as f, open(output_file, 'w', encoding='utf-8') as good_file, \
open(keyword_output_file, 'w', encoding='utf-8') as keyword_file:
for line in f:
dir = line.strip() # 去除行末尾的换行符
full_url = url + dir # 拼接URL
try:
response = requests.get(full_url)
status_code = response.status_code
print(f"[{status_code}]{full_url}")
if status_code == 200:
good_file.write(full_url + '\n')
if keyword in response.text:
keyword_file.write(full_url + '\n')
except requests.exceptions.RequestException as e:
print(f"An error occurred: {e}")
httpContext(output_file, keyword, keyword_output_file)
if __name__ == '__main__':
parser = argparse.ArgumentParser(description='Directory Scanner')
parser.add_argument('-w', '--dir_file', type=str, help='Directory file name')
parser.add_argument('-u', '--url', type=str, help='Target URL')
parser.add_argument('-o', '--output_file', type=str, help='Output file name (if status code is 200)')
parser.add_argument('-k', '--keyword', type=str, help='Keyword to search in website source code')
parser.add_argument('-ko', '--keyword_output_file', type=str, help='Output file name for URLs with keyword')
args = parser.parse_args()
main(args)
如何使用:
python main.py -w DIR.txt -u http://127.0.0.1/ -o output.txt -k 'keyword' -ko keyword_urls.txt
args.dir_file
:目录文件名参数的值。args.url
:目标 URL 参数的值。args.output_file
:输出文件名参数的值(如果状态码为 200)。args.keyword
:要在网站源代码中搜索的关键字参数的值。args.keyword_output_file
:带有关键字的 URL 的输出文件名参数的值。
-w
: 目录文件名-u
: 目标 URL-o
: 输出文件名(如果状态码为200时)-k
: 在网站源码中查询的关键字-ko
: 找到关键字时的网页 URL
来运行一下:
字典DIR.txt
help一下看看参数
运行一下:
发现还是可以运行,并且自动创建了txt文件,后面应该还要改进改进,从而面对不一样的问题!