SqliSniper:针对HTTP Header的基于时间SQL盲注模糊测试工具

本文主要是介绍SqliSniper:针对HTTP Header的基于时间SQL盲注模糊测试工具,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

关于SqliSniper

SqliSniper是一款基于Python开发的强大工具,该工具旨在检测HTTP请求Header中潜在的基于时间的SQL盲注问题。

该工具支持通过多线程形式快速扫描和识别目标应用程序中的潜在漏洞,可以大幅增强安全评估过程,同时确保了速度和效率。跟其他SQLi安全扫描工具的不同之处在于,SqliSniper具有内置的Discord通知功能,可以通过检测消除误报并发送警报。

功能介绍

1、基于时间的SQL盲注检测:确定HTTP Header中潜在的SQL注入漏洞;

2、多线程扫描:通过并行处理提供更快的扫描能力;

3、Discord通知:通过Discord webhook发送检测到的漏洞警报;

4、假阳性检查:实现响应时间分析,以区分误报;

5、支持自定义Payload和Header:允许用户自定义用于扫描目标的Payload和Header;

工具安装

由于该工具基于Python 3开发,因此我们首先需要在本地设备上安装并配置好最新版本的Python 3环境。

接下来,广大研究人员可以直接使用下列命令将该项目源码克隆至本地:

git clone https://github.com/danialhalo/SqliSniper.git

然后切换到项目目录中,使用pip3命令和项目提供的requirements.txt文件安装该工具所需的其他依赖组件:

cd SqliSniperpip3 install -r requirements.txt

最后,给工具脚本提供可执行权限即可:

chmod +x sqlisniper.py

工具使用

下面给出的是该工具支持的全部命令参数选项:

命令参数解析

-h, --help:显示工具帮助信息和退出;-u URL, --url URL:扫描单个目标URL;-r URLS_FILE, --urls_file URLS_FILE:包含目标URL列表的文件;-p, --pipeline:从pipeline读取目标URL;--proxy PROXY:拦截请求的代理,例如http://127.0.0.1:8080;--payload PAYLOAD:包含Payload的文件路径,默认为payloads.txt;--single-payload SINGLE_PAYLOAD:用于测试的单个Payload路径;--discord DISCORD:Discord Webhook URL;--headers HEADERS:包含Header的文件路径,默认为headers.txt;--threads THREADS:运行线程数量;

工具使用

扫描单个目标

./sqlisniper.py -u http://example.com

文件输入

./sqlisniper.py -r url.txt

URL管道输入

cat url.txt | ./sqlisniper.py -p

管道功能还支持与其他工具无缝集成,比如说,我们可以使用subfinder和httpx等工具,然后将它们的输出通过管道传输到SqliSniper进行大规模扫描:

subfinder -silent -d google.com | sort -u | httpx -silent | ./sqlisniper.py -p

使用自定义Payload执行扫描

./sqlisniper.py -u http://example.com --payload mssql_payloads.txt

在使用自定义Payload文件时,请确保你使用“%__TIME_OUT__%”设置了恰当的休眠时间。SqliSniper会反复地对休眠时间进行动态调整以减少误报。Payload文件样例如下所示:

ubuntu:~/sqlisniper$ cat payloads.txt0\"XOR(if(now()=sysdate(),sleep(%__TIME_OUT__%),0))XOR\"Z"0"XOR(if(now()=sysdate()%2Csleep(%__TIME_OUT__%)%2C0))XOR"Z"0'XOR(if(now()=sysdate(),sleep(%__TIME_OUT__%),0))XOR'Z

使用单个Payload执行扫描

./sqlisniper.py -r url.txt --single-payload "0'XOR(if(now()=sysdate(),sleep(%__TIME_OUT__%),0))XOR'Z"

使用自定义Header执行扫描

下面给出的是自定义HTTP Header文件样例:

ubuntu:~/sqlisniper$ cat headers.txtUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)X-Forwarded-For: 127.0.0.1

发送Discord警报通知

./sqlisniper.py -r url.txt --discord <web_hookurl>

多线程执行

./sqlisniper.py -r url.txt --threads 10

工具运行截图

许可证协议

本项目的开发与发布遵循MIT开源许可协议。

项目地址

SqliSniper:【GitHub传送门】

参考资料

https://twitter.com/DanialHalo

这篇关于SqliSniper:针对HTTP Header的基于时间SQL盲注模糊测试工具的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1013320

相关文章

Linux下MySQL数据库定时备份脚本与Crontab配置教学

《Linux下MySQL数据库定时备份脚本与Crontab配置教学》在生产环境中,数据库是核心资产之一,定期备份数据库可以有效防止意外数据丢失,本文将分享一份MySQL定时备份脚本,并讲解如何通过cr... 目录备份脚本详解脚本功能说明授权与可执行权限使用 Crontab 定时执行编辑 Crontab添加定

C++统计函数执行时间的最佳实践

《C++统计函数执行时间的最佳实践》在软件开发过程中,性能分析是优化程序的重要环节,了解函数的执行时间分布对于识别性能瓶颈至关重要,本文将分享一个C++函数执行时间统计工具,希望对大家有所帮助... 目录前言工具特性核心设计1. 数据结构设计2. 单例模式管理器3. RAII自动计时使用方法基本用法高级用法

HTTP 与 SpringBoot 参数提交与接收协议方式

《HTTP与SpringBoot参数提交与接收协议方式》HTTP参数提交方式包括URL查询、表单、JSON/XML、路径变量、头部、Cookie、GraphQL、WebSocket和SSE,依据... 目录HTTP 协议支持多种参数提交方式,主要取决于请求方法(Method)和内容类型(Content-Ty

MySQL中On duplicate key update的实现示例

《MySQL中Onduplicatekeyupdate的实现示例》ONDUPLICATEKEYUPDATE是一种MySQL的语法,它在插入新数据时,如果遇到唯一键冲突,则会执行更新操作,而不是抛... 目录1/ ON DUPLICATE KEY UPDATE的简介2/ ON DUPLICATE KEY UP

MySQL分库分表的实践示例

《MySQL分库分表的实践示例》MySQL分库分表适用于数据量大或并发压力高的场景,核心技术包括水平/垂直分片和分库,需应对分布式事务、跨库查询等挑战,通过中间件和解决方案实现,最佳实践为合理策略、备... 目录一、分库分表的触发条件1.1 数据量阈值1.2 并发压力二、分库分表的核心技术模块2.1 水平分

Python与MySQL实现数据库实时同步的详细步骤

《Python与MySQL实现数据库实时同步的详细步骤》在日常开发中,数据同步是一项常见的需求,本篇文章将使用Python和MySQL来实现数据库实时同步,我们将围绕数据变更捕获、数据处理和数据写入这... 目录前言摘要概述:数据同步方案1. 基本思路2. mysql Binlog 简介实现步骤与代码示例1

C# LiteDB处理时间序列数据的高性能解决方案

《C#LiteDB处理时间序列数据的高性能解决方案》LiteDB作为.NET生态下的轻量级嵌入式NoSQL数据库,一直是时间序列处理的优选方案,本文将为大家大家简单介绍一下LiteDB处理时间序列数... 目录为什么选择LiteDB处理时间序列数据第一章:LiteDB时间序列数据模型设计1.1 核心设计原则

Python 基于http.server模块实现简单http服务的代码举例

《Python基于http.server模块实现简单http服务的代码举例》Pythonhttp.server模块通过继承BaseHTTPRequestHandler处理HTTP请求,使用Threa... 目录测试环境代码实现相关介绍模块简介类及相关函数简介参考链接测试环境win11专业版python

使用shardingsphere实现mysql数据库分片方式

《使用shardingsphere实现mysql数据库分片方式》本文介绍如何使用ShardingSphere-JDBC在SpringBoot中实现MySQL水平分库,涵盖分片策略、路由算法及零侵入配置... 目录一、ShardingSphere 简介1.1 对比1.2 核心概念1.3 Sharding-Sp

使用Python的requests库来发送HTTP请求的操作指南

《使用Python的requests库来发送HTTP请求的操作指南》使用Python的requests库发送HTTP请求是非常简单和直观的,requests库提供了丰富的API,可以发送各种类型的HT... 目录前言1. 安装 requests 库2. 发送 GET 请求3. 发送 POST 请求4. 发送