Веб-версияОткрыть в Telegram

Пост🖨Как построить сканер SQL-инъекций на Python

22 июня 2023
P
Python RU
🖨Как построить сканер 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
46 · 2.8K ·

Рядом в ленте

PPython RUPython itertools.compress. Удобный способ фильтрации данных ▪Видео @pro_python_codePPython RU🖥 Полезные приемы с кодом для аналитиков данных на Python 1. Python itertools groupby удобный способ группировки - https://www.youtube.com/watch?v=Rt1gl4fM62k 2
это сообщение
PPython RUКак ускорить ваш код на Python Python — это универсальный язык программирования, который широко используется в различных областях, таких как веб-разработка, анаPPython RU10 проектов Python для оттачивания навыков Python, универсальный и широко используемый язык программирования, предоставляет разработчикам уникальное сочетание м

Открытая публичная лента из поискового индекса ChatCrawler — «Google по публичному Telegram»; обновляется по мере обхода площадки. Время — UTC.

Только публичный контент, официальный API Telegram. О проекте · Вопросы · Чего мы не делаем · Убрать страницу из выдачи · Каталог · Поиск · Как мы считаем