TGViewer
Python RU Python RU @pro_python_code · 12.3K subscribers
Post #1023 2.77K
🖨Как построить сканер SQL-инъекций на Python

SQL-инъекция – это техника инъекции кода, которая используется для выполнения SQL-запросов через данные, вводимые пользователем в уязвимое веб-приложение. Это одна из самых распространенных и опасных техник взлома веб-приложений.

▪Установим необходимые библиотеки для этого урока:
pip3 install requests bs4

▪Импортируем необходимые модули:
import requests
from bs4 import BeautifulSoup as bs
from urllib.parse import urljoin
from pprint import pprint

# initialize an HTTP session & set the browser
s = requests.Session()
s.headers["User-Agent"] = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Safari/537.36"


Мы также инициализировали сессию запросов и установили пользовательский агент.

▪Поскольку SQL-инъекция – это все о пользовательском вводе, нам нужно будет сначала извлечь веб-формы. Нам понадобятся следующие функции:
def get_all_forms(url):
"""Given a `url`, it returns all forms from the HTML content"""
soup = bs(s.get(url).content, "html.parser")
return soup.find_all("form")


def get_form_details(form):
"""
This function extracts all possible useful information about an HTML `form`
"""
details = {}
# get the form action (target url)
try:
action = form.attrs.get("action").lower()
except:
action = None
# get the form method (POST, GET, etc.)
method = form.attrs.get("method", "get").lower()
# get all the input details such as type and name
inputs = []
for input_tag in form.find_all("input"):
input_type = input_tag.attrs.get("type", "text")
input_name = input_tag.attrs.get("name")
input_value = input_tag.attrs.get("value", "")
inputs.append({"type": input_type, "name": input_name, "value": input_value})
# put everything to the resulting dictionary
details["action"] = action
details["method"] = method
details["inputs"] = inputs
return details


Функция get_all_forms() использует библиотеку BeautifulSoup для извлечения всех тегов формы из HTML и возвращает их в виде списка Python, а функция get_form_details() получает в качестве аргумента один объект тега формы и разбирает полезную информацию о форме, такую как действие (целевой URL), метод (GET, POST и т.д.) и все атрибуты поля ввода (тип, имя и значение).

▪Далее мы определяем функцию, которая сообщает нам, есть ли на веб-странице ошибки SQL, это будет удобно при проверке на уязвимость SQL-инъекции:

▪Продолжение

@pro_python_code
  • 👍 4
  • 🔥 3
  • ❤ 1
More from @pro_python_code
  1. Oct 4, 2026Hugging Face исследовали multi-harness RL: обучение с подкреплением сразу через Claude Cod…
  2. Oct 1, 2026DeepSeek Harness вышел на десктоп: плагины без терминала и задачи по расписанию DeepSeek в…
  3. Sep 30, 2026Пишем игру на Python: неоновая аркада с разбором кода и ИИ Pygame часто считают библиотеко…
  4. Sep 29, 2026photo post
  5. Sep 28, 2026photo post
  6. Sep 26, 2026🐧 Linux Cheat Sheet - шпаргалка по командам Linux Самая удобная шпаргалка по Linux и Bash…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →