简单的目录扫描python脚本2.0

概述:
        本文介绍了一个基于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文件,后面应该还要改进改进,从而面对不一样的问题!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值