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

相关文章

Mysql中设计数据表的过程解析

《Mysql中设计数据表的过程解析》数据库约束通过NOTNULL、UNIQUE、DEFAULT、主键和外键等规则保障数据完整性,自动校验数据,减少人工错误,提升数据一致性和业务逻辑严谨性,本文介绍My... 目录1.引言2.NOT NULL——制定某列不可以存储NULL值2.UNIQUE——保证某一列的每一

解密SQL查询语句执行的过程

《解密SQL查询语句执行的过程》文章讲解了SQL语句的执行流程,涵盖解析、优化、执行三个核心阶段,并介绍执行计划查看方法EXPLAIN,同时提出性能优化技巧如合理使用索引、避免SELECT*、JOIN... 目录1. SQL语句的基本结构2. SQL语句的执行过程3. SQL语句的执行计划4. 常见的性能优

SQL Server 中的 WITH (NOLOCK) 示例详解

《SQLServer中的WITH(NOLOCK)示例详解》SQLServer中的WITH(NOLOCK)是一种表提示,等同于READUNCOMMITTED隔离级别,允许查询在不获取共享锁的情... 目录SQL Server 中的 WITH (NOLOCK) 详解一、WITH (NOLOCK) 的本质二、工作

MySQL 强制使用特定索引的操作

《MySQL强制使用特定索引的操作》MySQL可通过FORCEINDEX、USEINDEX等语法强制查询使用特定索引,但优化器可能不采纳,需结合EXPLAIN分析执行计划,避免性能下降,注意版本差异... 目录1. 使用FORCE INDEX语法2. 使用USE INDEX语法3. 使用IGNORE IND

SQL Server安装时候没有中文选项的解决方法

《SQLServer安装时候没有中文选项的解决方法》用户安装SQLServer时界面全英文,无中文选项,通过修改安装设置中的国家或地区为中文中国,重启安装程序后界面恢复中文,解决了问题,对SQLSe... 你是不是在安装SQL Server时候发现安装界面和别人不同,并且无论如何都没有中文选项?这个问题也

2025版mysql8.0.41 winx64 手动安装详细教程

《2025版mysql8.0.41winx64手动安装详细教程》本文指导Windows系统下MySQL安装配置,包含解压、设置环境变量、my.ini配置、初始化密码获取、服务安装与手动启动等步骤,... 目录一、下载安装包二、配置环境变量三、安装配置四、启动 mysql 服务,修改密码一、下载安装包安装地

MySQL CTE (Common Table Expressions)示例全解析

《MySQLCTE(CommonTableExpressions)示例全解析》MySQL8.0引入CTE,支持递归查询,可创建临时命名结果集,提升复杂查询的可读性与维护性,适用于层次结构数据处... 目录基本语法CTE 主要特点非递归 CTE简单 CTE 示例多 CTE 示例递归 CTE基本递归 CTE 结

Java获取当前时间String类型和Date类型方式

《Java获取当前时间String类型和Date类型方式》:本文主要介绍Java获取当前时间String类型和Date类型方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录Java获取当前时间String和Date类型String类型和Date类型输出结果总结Java获取

Python实现批量提取BLF文件时间戳

《Python实现批量提取BLF文件时间戳》BLF(BinaryLoggingFormat)作为Vector公司推出的CAN总线数据记录格式,被广泛用于存储车辆通信数据,本文将使用Python轻松提取... 目录一、为什么需要批量处理 BLF 文件二、核心代码解析:从文件遍历到数据导出1. 环境准备与依赖库

MySQL多实例管理如何在一台主机上运行多个mysql

《MySQL多实例管理如何在一台主机上运行多个mysql》文章详解了在Linux主机上通过二进制方式安装MySQL多实例的步骤,涵盖端口配置、数据目录准备、初始化与启动流程,以及排错方法,适用于构建读... 目录一、什么是mysql多实例二、二进制方式安装MySQL1.获取二进制代码包2.安装基础依赖3.清