πΠΠ°ΠΊ Π½Π°ΠΉΡΠΈ ΡΡΠ·Π²ΠΈΠΌΡΠ΅ SQL ΡΠ°ΠΉΡΡ: 5 ΠΏΡΠΎΡΡΡΡ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² Π΄Π»Ρ SEO ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈπ
ΠΠ»Ρ ΠΏΠΎΠΈΡΠΊΠ° ΡΡΠ·Π²ΠΈΠΌΡΡ SQL-ΡΠ°ΠΉΡΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ΅Ρ Π½ΠΈΠΊΡ, ΠΈΠ·Π²Π΅ΡΡΠ½ΡΡ ΠΊΠ°ΠΊ SQL-ΠΈΠ½ΡΠ΅ΠΊΡΠΈΡ. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π·Π»ΠΎΡΠΌΡΡΠ»Π΅Π½Π½ΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ Π²Π½Π΅Π΄ΡΠΈΡΡ Π²ΡΠ΅Π΄ΠΎΠ½ΠΎΡΠ½ΡΠΉ SQL-ΠΊΠΎΠ΄ Π² Π·Π°ΠΏΡΠΎΡΡ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ , ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌ Π½Π΅Π³Π°ΡΠΈΠ²Π½ΡΠΌ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΡΠΌ, Π²ΠΊΠ»ΡΡΠ°Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π½Π΅ΡΠ°Π½ΠΊΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ .
ΠΠ»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ SQL-ΠΈΠ½ΡΠ΅ΠΊΡΠΈΠΈ, Π·Π»ΠΎΡΠΌΡΡΠ»Π΅Π½Π½ΠΈΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π°ΠΉΡΠΈ ΡΡΠ·Π²ΠΈΠΌΡΡ ΡΠΎΡΠΊΡ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π³Π΄Π΅ Π²Ρ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π΅ Π½Π°Π΄Π»Π΅ΠΆΠ°ΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΡΠΈΠ»ΡΡΡΡΡΡΡΡ ΠΈΠ»ΠΈ ΡΠΊΡΠ°Π½ΠΈΡΡΡΡΡΡ.
ΠΠ΄Π½ΠΈΠΌ ΠΈΠ· ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΏΠΎΠΈΡΠΊΠ° ΡΡΠ·Π²ΠΈΠΌΡΡ SQL-ΡΠ°ΠΉΡΠΎΠ² ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΠΎΠΈΡΠΊΠ° ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠ΅ΠΉ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ SQLMap ΠΈΠ»ΠΈ Havij. ΠΡΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΊΠ°Π½ΠΈΡΡΡΡ Π²Π΅Π±-ΡΠ°ΠΉΡΡ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ SQL-ΠΈΠ½ΡΠ΅ΠΊΡΠΈΠΈ, ΡΡΠΎΠ±Ρ Π½Π°ΠΉΡΠΈ ΡΡΠ·Π²ΠΈΠΌΡΠ΅ ΡΠΎΡΠΊΠΈ Π²Ρ ΠΎΠ΄Π°.
ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡΠΈΠΌΠ΅Ρ SQL-ΠΈΠ½ΡΠ΅ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ° ΡΡΠ·Π²ΠΈΠΌΡΡ SQL-ΡΠ°ΠΉΡΠΎΠ²:
SELECT * FROM users WHERE username = 'admin' AND password = 'password' OR '1'='1';
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅, Π΅ΡΠ»ΠΈ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΡΠ·Π²ΠΈΠΌΠΎ ΠΊ SQL-ΠΈΠ½ΡΠ΅ΠΊΡΠΈΠΈ, ΡΠΎ ΡΡΠ»ΠΎΠ²ΠΈΠ΅ '1'='1' Π±ΡΠ΄Π΅Ρ Π²ΡΠ΅Π³Π΄Π° ΠΈΡΡΠΈΠ½Π½ΡΠΌ, ΠΈ Π·Π»ΠΎΡΠΌΡΡΠ»Π΅Π½Π½ΠΈΠΊ ΡΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ Π΄Π°Π½Π½ΡΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Π±Π΅Π· Π·Π½Π°Π½ΠΈΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ³ΠΎ ΠΏΠ°ΡΠΎΠ»Ρ.
ΠΠ΅ΡΠ°Π»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ
ΠΠ°ΠΊ Π½Π°ΠΉΡΠΈ ΡΡΠ·Π²ΠΈΠΌΡΠ΅ SQL ΡΠ°ΠΉΡΡ?
SQL-ΠΈΠ½ΡΠ΅ΠΊΡΠΈΠΈ ΡΠ²Π»ΡΡΡΡΡ ΠΎΠ΄Π½ΠΈΠΌΠΈ ΠΈΠ· ΡΠ°ΠΌΡΡ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΡ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠ΅ΠΉ Π² Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ . ΠΡΠΈ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ, ΠΊΠΎΠ³Π΄Π° Π²Π΅Π±-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Π½Π΅ ΡΠΏΡΠ°Π²Π»ΡΡΡΡΡ Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡΡ Π²Π²ΠΎΠ΄Π° Π΄Π°Π½Π½ΡΡ Π² SQL-Π·Π°ΠΏΡΠΎΡΡ. ΠΠ»ΠΎΡΠΌΡΡΠ»Π΅Π½Π½ΠΈΠΊΠΈ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ SQL-ΠΈΠ½ΡΠ΅ΠΊΡΠΈΠΈ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π½Π΅ΡΠ°Π½ΠΊΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π±Π°Π·Π°ΠΌ Π΄Π°Π½Π½ΡΡ ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π²ΡΠ΅Π΄ΠΎΠ½ΠΎΡΠ½ΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ. Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ Π½Π°ΠΉΡΠΈ ΡΡΠ·Π²ΠΈΠΌΡΠ΅ SQL-ΡΠ°ΠΉΡΡ ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠΈΡΡ ΡΠ°ΠΊΠΈΠ΅ Π°ΡΠ°ΠΊΠΈ.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ SQL-ΠΈΠ½ΡΠ΅ΠΊΡΠΈΠΈ?
SQL-ΠΈΠ½ΡΠ΅ΠΊΡΠΈΡ - ΡΡΠΎ ΠΌΠ΅ΡΠΎΠ΄ Π°ΡΠ°ΠΊΠΈ, ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΌ Π·Π»ΠΎΡΠΌΡΡΠ»Π΅Π½Π½ΠΈΠΊ Π²Π²ΠΎΠ΄ΠΈΡ Π²ΡΠ΅Π΄ΠΎΠ½ΠΎΡΠ½ΡΠΉ SQL-ΠΊΠΎΠ΄ Π² Π·Π°ΠΏΡΠΎΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΡΠΎΠΌ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ ΡΠ΅ΡΠ²Π΅ΡΠ°. ΠΡΠ»ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π½Π΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ Π²Π²ΠΎΠ΄, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π½Π΅ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΡΡ SQL-Π·Π°ΠΏΡΠΎΡΠΎΠ². ΠΠ»ΠΎΡΠΌΡΡΠ»Π΅Π½Π½ΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅, Π΄Π°ΠΆΠ΅ ΡΠ΄Π°Π»ΠΈΡΡ ΠΈΠ»ΠΈ ΠΏΠΎΠ²ΡΠ΅Π΄ΠΈΡΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ . Π¦Π΅Π»ΡΡ Π°ΡΠ°ΠΊΡΡΡΠ΅Π³ΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΠ°ΡΠΎΠ»Π΅ΠΉ, ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΡ Π΄Π°Π½Π½ΡΡ ΠΈ Π΄ΡΡΠ³ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ.
ΠΠ°ΠΊ Π½Π°ΠΉΡΠΈ ΡΡΠ·Π²ΠΈΠΌΡΠ΅ SQL-ΡΠ°ΠΉΡΡ?
ΠΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² Π½Π°ΠΉΡΠΈ ΡΡΠ·Π²ΠΈΠΌΡΠ΅ SQL-ΡΠ°ΠΉΡΡ. ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΈΠ· Π½ΠΈΡ .
1. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ° Π΄Π»Ρ ΡΠΊΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠ΅ΠΉ
Π‘ΡΡΠ΅ΡΡΠ²ΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ SQLMap, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠΌΠΎΡΡ Π² ΠΏΠΎΠΈΡΠΊΠ΅ ΡΡΠ·Π²ΠΈΠΌΡΡ SQL-ΡΠ°ΠΉΡΠΎΠ². ΠΡΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΠΌΠΎΠ³ΡΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΡΠΊΡΠΏΠ»ΡΠ°ΡΠ°ΡΠΈΡ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠ΅ΠΉ SQL-ΠΈΠ½ΡΠ΅ΠΊΡΠΈΠΈ. ΠΠ½ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ, Π°Π½Π°Π»ΠΈΠ·ΠΈΡΡΡ ΡΡΡΡΠΊΡΡΡΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΈ ΠΎΡΠΏΡΠ°Π²Π»ΡΡ Π²ΡΠ΅Π΄ΠΎΠ½ΠΎΡΠ½ΡΠ΅ SQL-Π·Π°ΠΏΡΠΎΡΡ, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ, ΡΡΡΠ΅ΡΡΠ²ΡΡΡ Π»ΠΈ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ.
import requests
url = "http://example.com/login.php"
data = {
"username": "admin' OR '1'='1",
"password": "password"
}
response = requests.post(url, data=data)
Π ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²ΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌ Π·Π°ΠΏΡΠΎΡ Π½Π° ΡΡΡΠ°Π½ΠΈΡΡ Π²Ρ
ΠΎΠ΄Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
Π΄Π°Π½Π½ΡΡ
ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. ΠΡΠ»ΠΈ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ Π²Π²ΠΎΠ΄ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π΄ΠΎΠ»ΠΆΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΡΠ΅ΡΠ½ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠ°, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π² Π½Π°ΡΠ΅ΠΌ Π²Π²ΠΎΠ΄Π΅ SQL-Π·Π°ΠΏΡΠΎΡ Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ: 'admin' OR '1'='1'
, ΡΡΠΎ Π²ΡΠ΅Π³Π΄Π° Π²Π΅ΡΠ½ΠΎ.
2. Π ΡΡΠ½ΠΎΠΉ Π°Π½Π°Π»ΠΈΠ· Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
Π ΡΡΠ½ΠΎΠΉ Π°Π½Π°Π»ΠΈΠ· Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ»ΠΎΠΆΠ½ΡΠΌ, Π½ΠΎ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌ. Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΌΠΎΠ³ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΎΡΠΏΡΠ°Π²Π»ΡΡ Π²ΡΠ΅Π΄ΠΎΠ½ΠΎΡΠ½ΡΠ΅ Π²Π²ΠΎΠ΄Ρ Π² ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΏΠΎΠ»Ρ ΠΈ Π½Π°Π±Π»ΡΠ΄Π°Ρ Π·Π° ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ ΠΏΡΠΈΠ·Π½Π°ΠΊΠΈ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ SQL-ΠΈΠ½ΡΠ΅ΠΊΡΠΈΠΈ ΠΌΠΎΠ³ΡΡ Π²ΠΊΠ»ΡΡΠ°ΡΡ ΠΎΡΠΈΠ±ΠΊΠΈ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ , Π²ΡΠ²ΠΎΠ΄ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, ΠΎΡΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΠ΅ ΠΎΡ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΈΠ»ΠΈ Π΄ΠΎΠ»Π³ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π·Π°ΠΏΡΠΎΡΠΎΠ².
import requests
url = "http://example.com/search.php"
query = "SELECT * FROM users WHERE username = 'admin' AND password = 'password'"
response = requests.get(url, params={"q": query})
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ Π·Π°ΠΏΡΠΎΡ Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ "admin" ΠΈ ΠΏΠ°ΡΠΎΠ»Π΅ΠΌ "password". ΠΡΠ»ΠΈ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡ SQL-ΠΈΠ½ΡΠ΅ΠΊΡΠΈΠΈ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π·Π°ΠΏΡΠΎΡ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΠΎΠ±Ρ ΠΌΡ ΠΌΠΎΠ³Π»ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ Π΄Π°Π½Π½ΡΠΌ Π΄ΡΡΠ³ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π½Π΅ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ.
ΠΠ°ΠΊ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠΈΡΡ SQL-ΠΈΠ½ΡΠ΅ΠΊΡΠΈΠΈ?
ΠΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ΅Π½ΠΈΠ΅ SQL-ΠΈΠ½ΡΠ΅ΠΊΡΠΈΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ Π²Π°ΠΆΠ½ΡΠΌ Π°ΡΠΏΠ΅ΠΊΡΠΎΠΌ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΠΎΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠΌΠΎΠ³ΡΡ Π²Π°ΠΌ Π·Π°ΡΠΈΡΠΈΡΡ ΡΠ²ΠΎΠΈ ΡΠ°ΠΉΡΡ ΠΎΡ ΡΠ°ΠΊΠΈΡ Π°ΡΠ°ΠΊ.
1. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²Π»Π΅Π½Π½ΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ
ΠΠΎΠ΄Π³ΠΎΡΠΎΠ²Π»Π΅Π½Π½ΡΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ ΠΎΡΠ΄Π΅Π»ΠΈΡΡ ΠΊΠΎΠ΄ SQL ΠΎΡ Π΄Π°Π½Π½ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. ΠΠΌΠ΅ΡΡΠΎ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎΠΉ Π²ΡΡΠ°Π²ΠΊΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π² SQL-Π·Π°ΠΏΡΠΎΡΡ, ΠΊΠΎΠ΄ SQL ΠΈ Π΄Π°Π½Π½ΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ. ΠΡΠΎ Π΄Π΅Π»Π°Π΅Ρ Π·Π°ΠΏΡΠΎΡΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠΌΠΈ ΠΎΡ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠ΅ΠΉ SQL-ΠΈΠ½ΡΠ΅ΠΊΡΠΈΠΈ.
import sqlite3
connection = sqlite3.connect("example.db")
cursor = connection.cursor()
username = "admin' OR '1'='1"
password = "password"
cursor.execute("SELECT * FROM users WHERE username = ? AND password = ?", (username, password))
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ SQLite Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ . ΠΠ°ΠΌΠ΅ΡΡΡΠ΅, ΡΡΠΎ ΠΌΡ Π½Π΅ Π²ΡΡΠ°Π²Π»ΡΠ΅ΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π½Π°ΠΏΡΡΠΌΡΡ Π² Π·Π°ΠΏΡΠΎΡ. ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ, ΠΌΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΊΠ°ΠΊ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π²ΠΎΠΏΡΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π·Π½Π°ΠΊΠΈ. SQLite ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ ΡΡΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΊΠ°ΠΊ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ SQL-ΠΈΠ½ΡΠ΅ΠΊΡΠΈΠΈ.
2. Π€ΠΈΠ»ΡΡΡΠ°ΡΠΈΡ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π²Π²ΠΎΠ΄Π° Π΄Π°Π½Π½ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ
Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΈΠ»ΡΡΡΠΎΠ²Π°ΡΡ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ Π²Π²ΠΎΠ΄ Π΄Π°Π½Π½ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Π² SQL-Π·Π°ΠΏΡΠΎΡΠ°Ρ . Π€ΠΈΠ»ΡΡΡΠ°ΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π²ΠΊΠ»ΡΡΠ°ΡΡ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΡΠΊΡΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Ρ Π² SQL-ΠΈΠ½ΡΠ΅ΠΊΡΠΈΡΡ . ΠΡΠΎΠ²Π΅ΡΠΊΠ° Π΄Π°Π½Π½ΡΡ ΡΠ°ΠΊΠΆΠ΅ Π²Π°ΠΆΠ½Π°, ΡΡΠΎΠ±Ρ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, ΡΡΠΎ ΠΎΠ½ΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΠΎΠΌΡ ΡΠΎΡΠΌΠ°ΡΡ ΠΈΠ»ΠΈ ΡΠΈΠΏΡ.
import re
def sanitize_input(input_str):
# Π£Π΄Π°Π»ΠΈΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ, Π²ΠΊΠ»ΡΡΠ°Ρ ΠΎΠ΄ΠΈΠ½Π°ΡΠ½ΡΡ ΠΊΠ°Π²ΡΡΠΊΡ
sanitized_str = re.sub(r"[^a-zA-Z0-9]", "", input_str)
return sanitized_str
username = sanitize_input("admin' OR '1'='1")
password = "password"
cursor.execute("SELECT * FROM users WHERE username = ? AND password = ?", (username, password))
Π€ΡΠ½ΠΊΡΠΈΡ sanitize_input
ΡΠ΄Π°Π»ΡΠ΅Ρ Π²ΡΠ΅ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ ΠΈΠ· Π²Π²ΠΎΠ΄Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. ΠΡΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠΈΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ ΠΏΠΎΠΏΡΡΠΊΠΈ SQL-ΠΈΠ½ΡΠ΅ΠΊΡΠΈΠΉ, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΡ Π½Π΅ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π·Π°ΡΠΈΡΠ°Π΅Ρ ΠΎΡ ΡΡΠΎΠΉ ΡΠ³ΡΠΎΠ·Ρ.
3. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π·Π°ΡΠΈΡΠ΅Π½Π½ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ
Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ , ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²Π»Π΅Π½Π½ΡΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ ORM-ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΈ. ΠΡΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ Π·Π°ΡΠΈΡΡ ΠΎΡ SQL-ΠΈΠ½ΡΠ΅ΠΊΡΠΈΠΉ ΠΈ Π΄ΡΡΠ³ΠΈΡ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠ΅ΠΉ.
ΠΠ΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠΎΠ³ΠΎ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Π»ΠΈ Π²Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΠΈΠ»ΠΈ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΡΠ΅ΡΠ΅ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²ΡΡΡΠ½ΡΡ, Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ SQL-ΠΈΠ½ΡΠ΅ΠΊΡΠΈΠΉ ΠΈ Π·Π½Π°ΡΡ, ΠΊΠ°ΠΊ ΠΈΡ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠΈΡΡ. ΠΠ°ΡΠΈΡΠ° ΠΎΡ SQL-ΠΈΠ½ΡΠ΅ΠΊΡΠΈΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ Π²Π°ΠΆΠ½ΡΠΌ Π°ΡΠΏΠ΅ΠΊΡΠΎΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΡ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.