首页 > 编程语言 >Python黑客编程之暴力字典web扫描器

Python黑客编程之暴力字典web扫描器

时间:2023-02-11 20:11:48浏览次数:58  
标签:__ web word resume Python sys url words 扫描器

描述

  • 通过读取字典中的关键字,拼接成url,来测试目标站点文件目录结构

代码

  • 设置了一个resume参数,如果因为网络等问题导致扫描中断,重新启动扫描时可以将resume设置为上次扫描到的位置,从而继续进行扫描
import queue
import requests
import threading
import sys

AGENT = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36"
EXTENSIONS = [".php", ".bak", ".orig", "inc"]
TARGET = "http://testphp.vulnweb.com"
THREADS = 50
WORDLIST = "/usr/share/wordlist"

def get_words(resume=None):
    def extent_words(word):
        if "." in word:
            words.put(f"/{word}")
        else:
            words.put(f"/{word}/")

        for extension in EXTENSIONS:
            words.put(f"/{word}{extension}")

    with open(WORDLIST) as f:
        raw_words = f.read()

    found_resume = False
    words = queue.Queue()
    for word in raw_words.split():
        if resume is not None:
            if found_resume:
                extent_words(word)
            elif word == resume:
                found_resume = True
                print(f"Resuming wordlist from: {resume}")
        else:
            extent_words()
    return words

def dir_bruter(words):
    headers = {'User-Agent': AGENT}
    while not words.empty():
        url = f"{TARGET}{words.get()}"
        try:
            r = requests.get(url, headers=headers)
        except requests.exceptions.ConnectionError:
            sys.stderr.write('x')
            sys.stderr.flush()
            continue

        if r.status_code == 200:
            print(f"\nSuccess ({r.status_code}: {url})")
        elif r.status_code == 404:
            sys.stderr.write(".")
            sys.stderr.flush()
        else:
            print(f"{r.status_code} => {url}")

if __name__ == "__main__":
    words = get_words()
    print("Press return to continue.")
    sys.stdin.readline()
    for _ in range(THREADS):
        t = threading.Thread(Target=dir_bruter, args=(words,))
        t.start()

标签:__,web,word,resume,Python,sys,url,words,扫描器
From: https://www.cnblogs.com/z5onk0/p/17112464.html

相关文章

  • Python SQLite创建数据库和数据表及数据的增删改查
    SQLite是一款轻型的SQL类型数据库,处理速度快且占用资源非常低,Python自带,不需要配置不需要任何外部的依赖。数据库本身就是一个.db文件,非常适合存储本地数据。本文主要介绍......
  • 第 20 章 XML Web 服务
    20.1XML-RPC简介......................................34420.2使用XML-RPC进行通信.....................34520.2.1发送请求........................................
  • Vue_Webpack
    前端工程化模块化(js复用)组件化(UI复用,layui)规范化(各种规范)自动化(自动构建、自动部署、自动化测试)前端工程化指的是:在企业级的前端项目开发中,把前端开发所......
  • Python基础学习总结
    python基础内容解释器编译器:将其他语言翻译成机器语言。分类编译器有两种类型,编译和解释(翻译时间点的不同)。编译型语言:源程序交给编译器,统一编译,一次性执行解释型......
  • javaWeb04-作用域
    本主要讲述javaWeb项目的作用域作用域有:page【前端】,request【请求】,session【会话】,application【项目】主要介绍request,session和application作用域一.request作用域......
  • Thonny MicroPython 使用mpy-cross 生成MPY文件加速运行与加密
    安装mpy-cross  https://www.cnpython.com/pypi/mpy-cross  这里直接在Thonny的管理包模块进行安装 安装完成 使用方法可以参照上方官方文档  效果......
  • [oeasy]python0081_ANSI序列由来_终端机_VT100_DEC_VT选项_终端控制序列
    更多颜色回忆上次内容上次首先了解了RGB颜色设置可以把一些抽象的色彩名字落实到具体的RGB颜色计算机所做的一切其实就是量化、编码把生活的一切都进行数字化标准是ANS......
  • Python黑客编程之拓印web扫描器
    描述遍历cms网站的本地目录,作为参考来扫描远程网站的目录和文件实现用os.walk实现嵌套目录的遍历用多线程发起requests请求,考虑线程安全,变量应装在队列中而不是列表......
  • C++ 调用 Python 总结(一)
    PS:要转载请注明出处,本人版权所有。PS:这个只是基于《我自己》的理解,如果和你的原则及想法相冲突,请谅解,勿喷。前置说明  本文作为本人csdnblog的主站的备份。(BlogID......
  • [oeasy]python0081_ANSI序列由来_终端机_VT100_DEC_VT选项_终端控制序列
    更多颜色回忆上次内容上次首先了解了RGB颜色设置可以把一些抽象的色彩名字落实到具体的RGB颜色计算机所做的一切其实就是量化、编码把生活的一......