PRO_PYTHON_CODE Telegram 1023
πŸ–¨ΠšΠ°ΠΊ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ сканСр 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



tgoop.com/pro_python_code/1023
Create:
Last Update:

πŸ–¨ΠšΠ°ΠΊ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ сканСр 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

BY Python RU


Share with your friend now:
tgoop.com/pro_python_code/1023

View MORE
Open in Telegram


Telegram News

Date: |

Image: Telegram. β€œ[The defendant] could not shift his criminal liability,” Hui said. 2How to set up a Telegram channel? (A step-by-step tutorial) End-to-end encryption is an important feature in messaging, as it's the first step in protecting users from surveillance. Hashtags are a fast way to find the correct information on social media. To put your content out there, be sure to add hashtags to each post. We have two intelligent tips to give you:
from us


Telegram Python RU
FROM American