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

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

chanra1n1年前 (2023-09-19)信息安全8214

前言

在这之前,我们发布了一篇《(原创)基于SQLMAP和Google实现自动挖洞 仅用于学习和方法研究》,今天开源的是其配套的后续程序,能够实现结果上传,并保存至数据库中,方便查看。

注意:下面的程序没有进行安全增强,可能会带来SQL注入问题,请在内网搭建使用即可。

摘要

在今天的博客中,我们将介绍两个PHP程序。第一个程序用于处理上传的ZIP文件,提取其中的CSV文件,并将CSV文件的内容保存到服务器上的指定目录。第二个程序用于将这些CSV文件中的数据插入到MySQL数据库中,以便进一步分析和管理。我们将详细解释这两个程序的功能和用法。

正文

第一个PHP程序:处理ZIP文件上传

这个PHP程序的主要功能是处理用户上传的ZIP文件,提取其中的CSV文件,并将符合特定命名规则的CSV文件保存到服务器上的指定目录。以下是该程序的主要部分

<?php
$uploadDirectory = './results/';
$zipDirectory = './uploaded_zips/';

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    if (!empty($_FILES['zip']['name'])) {
        $zipFile = $_FILES['zip']['tmp_name'];

        // 检查文件是否是ZIP压缩包
        if (is_uploaded_file($zipFile) && pathinfo($_FILES['zip']['name'], PATHINFO_EXTENSION) === 'zip') {
            // 创建目录以存放ZIP文件
            if (!file_exists($zipDirectory)) {
                mkdir($zipDirectory, 0755, true);
            }

            $zipFilePath = $zipDirectory . $_FILES['zip']['name'];

            // 移动上传的ZIP文件到目标目录
            if (move_uploaded_file($zipFile, $zipFilePath)) {
                $zip = new ZipArchive();
                
                // 打开ZIP文件
                if ($zip->open($zipFilePath) === true) {
                    $csvCount = 0; // 计数CSV文件数
                    $csvsWithResultsPrefix = 0; // 计数以"results"开头的CSV文件数
                    
                    // 遍历ZIP文件中的所有文件
                    for ($i = 0; $i < $zip->numFiles; $i++) {
                        $fileInfo = $zip->statIndex($i);
                        $csvFileName = $fileInfo['name'];

                        // 检查文件是否是CSV文件
                        if (pathinfo($csvFileName, PATHINFO_EXTENSION) === 'csv') {
                            $csvCount++;

                            // 检查文件名是否以"results"开头
                            if (strpos($csvFileName, 'results') === 0) {
                                $csvsWithResultsPrefix++;

                                // 解压文件到目标目录
                                $csvFilePath = $uploadDirectory . $csvFileName;
                                file_put_contents($csvFilePath, $zip->getFromIndex($i));
                            }
                        }
                    }

                    $zip->close();

                    // 删除上传的ZIP文件
                    unlink($zipFilePath);

                    if ($csvCount > 0 && $csvCount === $csvsWithResultsPrefix) {
                        echo "所有CSV文件均以'results'开头并已保存至目标目录。";
                    } else {
                        echo "已丢弃不符合要求的CSV文件和ZIP文件。";
                    }
                } else {
                    echo "无法打开ZIP文件。";
                }
            } else {
                echo "无法移动上传的ZIP文件。";
            }
        } else {
            echo "请选择一个ZIP文件上传。";
        }
    } else {
        echo "请选择一个ZIP文件上传。";
    }
}
?>

第二个PHP程序:将CSV数据插入MySQL数据库

这个PHP程序的主要功能是将CSV文件中的数据插入到MySQL数据库中,以便进一步分析和管理。以下是该程序的主要部分:

<?php
// MySQL数据库连接信息,请根据实际情况填写
$host = '127.0.0.1';
$username = 'abc';
$password = 'abc';
$database = 'abc';

// 连接MySQL数据库
$conn = mysqli_connect($host, $username, $password, $database);

// 检查连接是否成功
if (!$conn) {
    die("连接数据库失败: " . mysqli_connect_error());
}

// 文件夹路径
$folderPath = './results'; // 请替换成实际的文件夹路径

// 扫描文件夹并处理CSV文件
$files = glob($folderPath . '/results*.csv');
foreach ($files as $file) {
    // 读取CSV文件
    if (($handle = fopen($file, "r")) !== FALSE) {
        while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
            // 跳过首行
            if ($data[0] === 'Target URL') {
                continue;
            }

            // 提取数据
            $targetURL = $data[0];
            $place = $data[1];
            $parameter = $data[2];
            $technique = $data[3];
            $note = $data[4];

            // 使用参数化查询插入数据到MySQL数据库
            $query = "INSERT INTO SQLVulnerabilityLibrary (TargetURL, Place, Parameter, Technique, Note) VALUES (?, ?, ?, ?, ?)";
            $stmt = mysqli_prepare($conn, $query);
            mysqli_stmt_bind_param($stmt, "sssss", $targetURL, $place, $parameter, $technique, $note);

            if (mysqli_stmt_execute($stmt)) {
                echo "插入成功: $targetURL\n";
            } else {
                echo "插入失败: " . mysqli_error($conn) . "\n";
            }

            mysqli_stmt_close($stmt);
        }
        fclose($handle);
    } else {
        echo "无法打开文件: $file\n";
    }
}

// 关闭数据库连接
mysqli_close($conn);
?>

联合应用

接下来,你可以自己设计一个php程序,或者任意语言的程序,链接数据库即可进行查询。当然,你也可以设计定时程序,对漏洞进行验证,也可以插入Mail功能。

这个查询的就不开源了,非常简单的一个数据库查值,没必要开放了。

image.png



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

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

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

分享给朋友:

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

密码学绪论

密码学绪论

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

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

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

注意,本程序仅用于学习和方法研究,不得进行实际使用。下面的程序是一个Python脚本,用于执行sqlmap命令的多线程批处理工具。以下是对程序的主要特点和功能的介绍:文件检查和初始化:程序开始时会检查是否存在keywords.txt和type.txt文件。如果这两个文件不存在,程序将输出错误消息并退...

(原创)通过Python编写Xray批量测试脚本 仅用于学习和方法研究

(原创)通过Python编写Xray批量测试脚本 仅用于学习和方法研究

简介: Xray 批量控制工具是一款功能强大的网络扫描工具,旨在帮助安全专业人员发现和评估网络应用程序中的漏洞。本工具结合了高度定制化的扫描功能和多线程处理,使用户能够高效地扫描多个目标并快速获取漏洞信息。在这篇介绍中,我们将深入了解Xray批量控制工具的主要特点和用途。主要特点:多线程扫描: Xr...

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

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

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