Server-Side Request Forgery [SSRF]
1. ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅:
ΠΠΎΠ΄Π΄Π΅Π»ΠΊΠ° Π·Π°ΠΏΡΠΎΡΠΎΠ² Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ ΡΠ΅ΡΠ²Π΅ΡΠ° (ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ·Π²Π΅ΡΡΠ½Π°Ρ ΠΊΠ°ΠΊ SSRF) - ΡΡΠΎ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡ Π²Π΅Π±-Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π·Π»ΠΎΡΠΌΡΡΠ»Π΅Π½Π½ΠΈΠΊΡ Π·Π°ΡΡΠ°Π²ΠΈΡΡ ΡΠ΅ΡΠ²Π΅ΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ HTTP-Π·Π°ΠΏΡΠΎΡΡ ΠΊ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΠΎΠΌΡ Π΄ΠΎΠΌΠ΅Π½Ρ ΠΏΠΎ Π²ΡΠ±ΠΎΡΡ Π·Π»ΠΎΡΠΌΡΡΠ»Π΅Π½Π½ΠΈΠΊΠ°.
ΠΡΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ SSRF-Π°ΡΠ°ΠΊΠ΅ Π·Π»ΠΎΡΠΌΡΡΠ»Π΅Π½Π½ΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ Π·Π°ΡΡΠ°Π²ΠΈΡΡ ΡΠ΅ΡΠ²Π΅Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΡΠΎΠ»ΡΠΊΠΎ Ρ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΌΠΈ ΡΠ΅ΡΠ²ΠΈΡΠ°ΠΌΠΈ Π² ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ΅ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ. Π Π΄ΡΡΠ³ΠΈΡ ΡΠ»ΡΡΠ°ΡΡ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ Π·Π°ΡΡΠ°Π²ΠΈΡΡ ΡΠ΅ΡΠ²Π΅Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡΡΡ ΠΊ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠΌ Π²Π½Π΅ΡΠ½ΠΈΠΌ ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌ, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΡΡΠ΅ΡΠΊΠ΅ ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΡ Π΄Π°Π½Π½ΡΡ , ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ ΡΡΠ΅ΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π΄Π»Ρ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ.
Π£ΡΠΏΠ΅ΡΠ½Π°Ρ Π°ΡΠ°ΠΊΠ° SSRF ΡΠ°ΡΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ Π½Π΅ΡΠ°Π½ΠΊΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠΌ ΠΈΠ»ΠΈ Π΄ΠΎΡΡΡΠΏΡ ΠΊ Π΄Π°Π½Π½ΡΠΌ Π² ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ, ΠΊΠ°ΠΊ Π² ΡΠ°ΠΌΠΎΠΌ ΡΡΠ·Π²ΠΈΠΌΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, ΡΠ°ΠΊ ΠΈ Π² Π΄ΡΡΠ³ΠΈΡ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ , Ρ ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΠΌΠΎΠΆΠ΅Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠΈΡΡΠ°ΡΠΈΡΡ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡ SSRF ΠΌΠΎΠΆΠ΅Ρ Π΄Π°ΠΆΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡΡ Π·Π»ΠΎΡΠΌΡΡΠ»Π΅Π½Π½ΠΈΠΊΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ.
2. Π’ΠΈΠΏΠΈΡΠ½ΡΠΉ ΡΡΠ·Π²ΠΈΠΌΡΠΉ ΠΊΠΎΠ΄:
ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΈ ΠΏΠΎΡΠ΅ΠΌΡ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡ SSRF. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ Π½ΠΈΠΆΠ΅ ΠΊΠΎΠ΄ ΠΎΡΠΊΡΡΠ²Π°Π΅Ρ ΡΠ΅ΡΡΡΡ, ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½ΡΠΉ ΠΏΠΎ Π·Π°Π΄Π°Π½Π½ΠΎΠΌΡ $url, Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΡΠ°Π½Π°ΡΠΈΠΈ ΠΈΠ»ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ, Π·Π»ΠΎΡΠΌΡΡΠ»Π΅Π½Π½ΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ, ΠΏΠΎΠ΄Π΄Π΅Π»ΡΠ²Π°Ρ Π·Π°ΠΏΡΠΎΡ ΠΊ Π»ΡΠ±ΠΎΠΌΡ URL, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ½ ΠΏΠΎΠΆΠ΅Π»Π°Π΅Ρ.
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π°ΠΊΠΎΠ½Π½ΡΠ΅ ΠΏΡΠΈΡΠΈΠ½Ρ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈΡΡ ΠΎΠ΄ΡΡΠΈΡ Π·Π°ΠΏΡΠΎΡΠΎΠ² Ρ Π²Π°ΡΠ΅Π³ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠ°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠΎΡΠΎΠ½Π½ΠΈΡ API (ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΠ»Π°ΡΠ΅ΠΆΠ΅ΠΉ, ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΡΡΠ΅ΡΠΎΠ² ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ ΠΈ Ρ.Π΄.), ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΠ·ΡΡΠΈΡΡ ΠΈ Π½Π°ΠΉΡΠΈ ΡΠΏΠΎΡΠΎΠ±Ρ Π·Π°ΡΠΈΡΡ ΠΎΡ SSRF.
3. Π‘ΠΌΡΠ³ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠΉ:
3.1. ΠΠ΅Π»ΡΠ΅ ΡΠΏΠΈΡΠΊΠΈ Π΄ΠΎΠΌΠ΅Π½ΠΎΠ² HTTP-Π·Π°ΠΏΡΠΎΡΠΎΠ²:
ΠΡΠ΅Π²ΠΈΠ΄Π½ΡΠΌ ΠΏΠ΅ΡΠ²ΡΠΌ ΡΡΠΎΠ²Π½Π΅ΠΌ Π·Π°ΡΠΈΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π±Π΅Π»ΠΎΠ³ΠΎ ΡΠΏΠΈΡΠΊΠ° Π΄ΠΎΠΌΠ΅Π½ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ ΠΠΠΠΠ’Π, ΡΡΠΎ Π²Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°ΡΡ.
ΠΡΠΎΠ³ΠΎ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΠ·Π±Π΅Π³Π°ΡΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ, ΠΊΠ°ΠΊ ΡΠΆΠ΅ Π³ΠΎΠ²ΠΎΡΠΈΠ»ΠΎΡΡ, Π²Ρ, ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ, ΡΠΆΠ΅ ΠΠΠΠΠ’Π, ΠΊΠ°ΠΊΠΈΠ΅ Π΄ΠΎΠΌΠ΅Π½Ρ Π±ΡΠ΄Π΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ Π²ΡΠ·ΠΎΠ²ΠΎΠ² API. ΠΡΠΈ ΡΡΠΎΠΌ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π°Π΄Π°ΠΏΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ²ΠΎΠΉ ΠΊΠΎΠ΄ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ SDK (ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ) Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ API ΠΈΠ»ΠΈ ΠΏΡΠΎΡΡΠΎ Π½Π°ΡΡΡΠΎΠΈΡΡ ΠΌΠ°ΡΡΡΡΡΡ Π΄Π»Ρ ΡΡΠΈΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ² API Π² ΡΠ°ΠΌΠΎΠΌ ΠΊΠΎΠ΄Π΅, Π° Π½Π΅ Π±ΡΠ°ΡΡ ΠΈΡ ΠΈΠ· ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° url.
3.2. ΠΠ΅ΠΆΡΠ΅ΡΠ΅Π²ΡΠ΅ ΡΠΊΡΠ°Π½Ρ ΡΠ΅ΡΠ΅Π²ΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ:
Π¦Π΅Π»Ρ Π·Π°ΡΠΈΡΡ ΡΠ΅ΡΠ΅Π²ΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ - Π½Π΅ Π΄ΠΎΠΏΡΡΡΠΈΡΡ, ΡΡΠΎΠ±Ρ Π²Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ VulnerableApplication Π²ΡΠΏΠΎΠ»Π½ΡΠ»ΠΎ Π²ΡΠ·ΠΎΠ²Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π±ΡΠ΄ΡΡ Π΄ΠΎΡΡΡΠΏΠ½Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½Π½ΡΠ΅ ΠΌΠ°ΡΡΡΡΡΡ, ΡΡΠΎΠ±Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΡΡ Π΅Π³ΠΎ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠ΅ΡΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΠΌΠΈ, Ρ ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΠΎΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ.
ΠΠ»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π»Π΅Π³ΠΈΡΠΈΠΌΠ½ΡΡ ΠΏΠΎΡΠΎΠΊΠΎΠ² Π·Π΄Π΅ΡΡ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π±ΡΠ°Π½Π΄ΠΌΠ°ΡΡΡΠ°, ΠΊΠ°ΠΊ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ, ΡΠ°ΠΊ ΠΈ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½Π½ΠΎΠ΅ Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅.
Π ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Π½ΠΈΠΆΠ΅ ΡΡ Π΅ΠΌΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Firewall ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Π΄ΠΎΡΡΡΠΏΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ, Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, Π΄Π»Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Π²ΠΎΠ·Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΡΠ·Π²ΠΈΠΌΠΎΠ³ΠΎ ΠΊ SSRF:
ΠΠΎΠΌΠΈΠΌΠΎ ΡΡΠΎΠ³ΠΎ ΡΠΈΠΏΠ° Π±ΡΠ°Π½Π΄ΠΌΠ°ΡΡΡΠ°, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠ΅ΡΠ΅ΠΉ.
4. ΠΡΠ²ΠΎΠ΄Ρ:
ΠΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅ΡΡ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ HTTP-Π·Π°ΠΏΡΠΎΡΡ, Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ Π½Π΅ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Ρ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ API ΠΈ Ρ. Π΄. ΠΡΡ ΠΎΠ΄Ρ ΠΈΠ· ΡΡΠΎΠ³ΠΎ, ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΡ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΡΡΠΎΠ³ΠΎ ΡΠΎΠ±Π»ΡΠ΄Π°ΡΡ Π±Π΅Π»ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½Π½ΡΡ Π΄ΠΎΠΌΠ΅Π½ΠΎΠ²/ΡΠ°ΠΉΡΠΎΠ², ΠΊ ΠΊΠΎΡΠΎΡΡΠΌ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ Π΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅; ΡΡΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΎ Π½Π° ΡΠ΅ΡΠ΅Π²ΠΎΠΌ ΡΡΠΎΠ²Π½Π΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π±ΡΠ°Π½Π΄ΠΌΠ°ΡΡΡΠΎΠ².
Last updated