Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ мСТсайтовый скриптинг

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ XSS-ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΈ ΠΊΠ°ΠΊ тСстировщику Π½Π΅ ΠΏΡ€ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π΅Π΅

По ΠΌΠΎΠ΅ΠΌΡƒ наблюдСнию довольно ΠΌΠ½ΠΎΠ³ΠΎ тСстировщиков ΠΊΠΎΠ³Π΄Π°-Π»ΠΈΠ±ΠΎ ΡΠ»Ρ‹ΡˆΠ°Π»ΠΈ Ρ‚Π°ΠΊΠΎΠ΅ понятиС, ΠΊΠ°ΠΊ XSS-ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ. Но ΠΌΠ°Π»ΠΎ ΠΊΡ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ просто ΠΈ Π½Π° ΠΏΠ°Π»ΡŒΡ†Π°Ρ… Ρ€Π°ΡΡΠΊΠ°Π·Π°Ρ‚ΡŒ Π½Π° собСсСдовании ΠΏΡ€ΠΎ Π½Π΅Π΅. Или эффСктивно ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π²Π΅Π±-сайт Π½Π° Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ этой уязвимости. Π”Π°Π²Π°ΠΉΡ‚Π΅ вмСстС разбСрСмся со всСм этим ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΈ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ сами Π½Π°ΠΉΡ‚ΠΈ Π½Π΅ΡΠ»ΠΎΠΆΠ½ΡƒΡŽ XSS-ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ Π½Π° Π΄Π΅ΠΌΠΎ-страницС, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ я ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΠ» ΠΊ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅.

Если Π²Ρ‹ Π³ΡƒΡ€Ρƒ тСстирования бСзопасности ΠΈ Π½Π° Ρ€Π°Π·-Π΄Π²Π° участвуСтС Π² Π±Π°ΡƒΠ½Ρ‚ΠΈ-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… ΠΊΡ€ΡƒΠΏΠ½Ρ‹Ρ… IT-ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ, Π° количСство Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹Ρ… Π²Π°ΠΌΠΈ XSS исчисляСтся дСсятками ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ сотнями β€” ΠΌΠΎΠΆΠ½ΠΎ смСло ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΌΠΈΠΌΠΎ этой ΡΡ‚Π°Ρ‚ΡŒΠΈ. Если ΠΆΠ΅ Π²Ρ‹ Π½ΠΎΠ²ΠΈΡ‡ΠΎΠΊ Π² Ρ‚Π΅ΠΌΠ΅ ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚Π΅ ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΠΎΠ²Π°Ρ‚ΡŒΡΡ поиском уязвимостСй β€” Π΄ΠΎΠ±Ρ€ΠΎ ΠΏΠΎΠΆΠ°Π»ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄ ΠΊΠ°Ρ‚.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ мСТсайтовый скриптинг. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ мСТсайтовый скриптинг. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ мСТсайтовый скриптинг. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ мСТсайтовый скриптинг. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ мСТсайтовый скриптинг

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅

XSS (Π°Π½Π³Π». Cross-Site Scripting β€” «мСТсайтовый скриптинг») β€” довольно распространСнная ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ΡŒ Π½Π° мноТСствС Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π•Π΅ ΡΡƒΡ‚ΡŒ довольно проста, Π·Π»ΠΎΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊΡƒ удаСтся Π²Π½Π΅Π΄Ρ€ΠΈΡ‚ΡŒ Π½Π° страницу JavaScript-ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ Π±Ρ‹Π» прСдусмотрСн Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ. Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° ΠΆΠ΅Ρ€Ρ‚Π²Ρ‹ (ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ) Π±ΡƒΠ΄ΡƒΡ‚ Π·Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π½Π° страницу прилоТСния, ΠΊΡƒΠ΄Π° этот ΠΊΠΎΠ΄ Π±Ρ‹Π» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½. А дальшС сущСствуСт нСсколько сцСнариСв развития.

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ: Π·Π»ΠΎΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊΡƒ удастся Π·Π°ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ Π²ΠΎΠΉΡ‚ΠΈ Π² Π΅Π³ΠΎ Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚.

Π’Ρ‚ΠΎΡ€ΠΎΠΉ: Π·Π»ΠΎΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅Π·Π°ΠΌΠ΅Ρ‚Π½ΠΎ для ΠΆΠ΅Ρ€Ρ‚Π²Ρ‹ ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π½Π° Π΄Ρ€ΡƒΠ³ΡƒΡŽ страницу-ΠΊΠ»ΠΎΠ½. Π­Ρ‚Π° страница ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½ΠΎ Ρ‚ΠΎΠΉ, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ рассчитывал ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ. Но Π²ΠΎΡ‚ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‚ΡŒ ΠΎΠ½Π° Π±ΡƒΠ΄Π΅Ρ‚ Π·Π»ΠΎΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊΡƒ. Если ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π΅ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ ΠΏΠΎΠ΄ΠΌΠ΅Π½Ρ‹ ΠΈ Π½Π° этой страницС Π²Π²Π΅Π΄Π΅Ρ‚ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ sensitive data, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π»ΠΈΡ‡Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅, ΠΎΠ½ΠΈ окаТутся Ρƒ Π·Π»ΠΎΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊΠ°.

ВрСтий… Π΄Π° Π² ΠΎΠ±Ρ‰Π΅ΠΌ-Ρ‚ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ Ρ‡Π΅Π³ΠΎ Π΅Ρ‰Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ. ΠŸΠΎΡ‡Ρ‚ΠΈ всС, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ JavaScript, становится доступным для Π·Π»ΠΎΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊΠ°. Π§ΡƒΡ‚ΡŒ Π½ΠΈΠΆΠ΅ ΠΌΡ‹ рассмотрим ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Ρ‚Π°ΠΊΠΈΡ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ². А ΠΏΠΎΠΊΠ° Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ Ρ‡ΡƒΡ‚ΡŒ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎΠ±ΡΡƒΠ΄ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π½Π½ΠΎ устроСна ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ. И ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π·Π»ΠΎΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊΡƒ удаСтся Π²Π½Π΅Π΄Ρ€ΠΈΡ‚ΡŒ свой ΠΊΠΎΠ΄ Π² Ρ‡ΡƒΠΆΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±Π΅Π· доступа ΠΊ Π΅Π³ΠΎ исходникам.

НСбольшоС ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅. Вся информация Π΄Π°Π»Π΅Π΅ прСдставлСна ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π² ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… цСлях. ВСстировщик Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡƒΠΌΠ΅Ρ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ своС Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° уязвимости. Однако, использованиС XSS-уязвимостСй Π½Π° Ρ‡ΡƒΠΆΠΈΡ… рСсурсах являСтся Π½Π΅Π·Π°ΠΊΠΎΠ½Π½Ρ‹ΠΌ.

Если Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎ Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ российскоС Π·Π°ΠΊΠΎΠ½ΠΎΠ΄Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ, ΠΊΠΎΠ³Π΄Π° ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ тСстируСт Ρ‡ΡƒΠΆΠΎΠΉ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ Π½Π° ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚ уязвимостСй ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ½ΠΈΠΊΠ°Π΅Ρ‚ Π² Ρ‡ΡƒΠΆΡƒΡŽ ΡΠ΅Ρ‚ΡŒ Π±Π΅Π· Π²Π΅Π΄ΠΎΠΌΠ° ΠΈ согласия Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π°, Π΅Π³ΠΎ дСйствия ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ расцСнСны ΠΊΠ°ΠΊ Π½Π΅ΠΏΡ€Π°Π²ΠΎΠΌΠ΅Ρ€Π½Ρ‹Π΅.

Как устроСна ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ?

ΠŸΡ€Π΅ΠΆΠ΄Π΅ всСго, ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π½Π½ΠΎ удаСтся Π²Π½Π΅Π΄Ρ€ΠΈΡ‚ΡŒ Π½Π° страницу JavaScript-ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Ρ‚Π°ΠΌ Ρ€Π°Π½ΡŒΡˆΠ΅ Π½Π΅ Π±Ρ‹Π»ΠΎ? И ΠΊΠ°ΠΊ получаСтся Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΠΈΡ‚ΡŒ этот ΠΊΠΎΠ΄ срСди Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ?

НапримСр, ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ JavaScript-ΠΊΠΎΠ΄ Π² ΠΏΠΎΠ»Π΅ Π²Π²ΠΎΠ΄Π°, тСкст ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ сохраняСтся ΠΈ Π² дальнСйшСм отобраТаСтся Π½Π° страницС для всСх ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅ для Π²Π²ΠΎΠ΄Π° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ сСбС Π½Π° страницС профиля ΡΠΎΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ сСти ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Π½Π° Ρ„ΠΎΡ€ΡƒΠΌΠ΅.

Π—Π»ΠΎΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊ Π²Π²ΠΎΠ΄ΠΈΡ‚ тСкст (ΠΈ Π·Π° ΠΎΠ΄Π½ΠΎ врСдоносный ΠΊΠΎΠ΄), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ сохраняСтся Π½Π° страницС. Когда Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ Π·Π°ΠΉΠ΄ΡƒΡ‚ Π½Π° эту ΠΆΠ΅ страницу, вмСстС с тСкстом ΠΎΠ½ΠΈ загрузят ΠΈ JavaScript-ΠΊΠΎΠ΄ Π·Π»ΠΎΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊΠ°. ИмСнно Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ этот ΠΊΠΎΠ΄ ΠΎΡ‚Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ сработаСт, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ссли тСкст ΠΏΡ€ΠΈ сохранСнии Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ обСзопасСн. О Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, ΠΈ ΠΏΠΎΡ‡Π΅ΠΌΡƒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΈΠ½ΠΎΠ³Π΄Π° Π·Π°Π±Ρ‹Π²Π°ΡŽΡ‚ ΠΎΠ± этом, ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ Ρ‡ΡƒΡ‚ΡŒ ΠΏΠΎΠ·ΠΆΠ΅.

Π­Ρ‚ΠΎ лишь самый простой ΠΈ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚ΠΎΠ³ΠΎ, Π³Π΄Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ спрятана ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ. Π‘ΠΎΠ»Π΅Π΅ интСрСсный ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΌΡ‹ с Π²Π°ΠΌΠΈ Ρ‡ΡƒΡ‚ΡŒ Π½ΠΈΠΆΠ΅ рассмотрим Π½Π° ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½ΠΎΠΉ Π΄Π΅ΠΌΠΎ-страничкС.

А ΠΏΠΎΠΊΠ° Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒΡΡ дальшС.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ Ρ‚Π°ΠΊΠΈΠ΅ ошибки часто Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‚ΡΡ Π½Π° Π²Π΅Π±-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ…?

Π‘ΡƒΡ‚ΡŒ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΡ‚ΡŒ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ тСкст ΠΎΡ‚ тСкста, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ являСтся CSS, HTML ΠΈΠ»ΠΈ JavaScript-ΠΊΠΎΠ΄ΠΎΠΌ. Он Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ всС, Ρ‡Ρ‚ΠΎ находится ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ‚Π΅Π³Π°ΠΌΠΈ

Π’ случаС, Ссли страница являСтся уязвимой, послС Π²Π²ΠΎΠ΄Π° этого ΠΊΠΎΠ΄Π° Π½Π° страницС появится Π²ΠΎΡ‚ Ρ‚Π°ΠΊΠΎΠ΅ окошко:

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ мСТсайтовый скриптинг. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ мСТсайтовый скриптинг. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ мСТсайтовый скриптинг. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ мСТсайтовый скриптинг. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ мСТсайтовый скриптинг

Оно ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ·Π½Π°Ρ‡Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ наш JavaScript-ΠΊΠΎΠ΄ исполнился ΠΈ ΠΌΡ‹ нашли XSS-ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ.

Π˜Ρ‚Π°ΠΊ, Π²Π²ΠΎΠ΄ΠΈΠΌ ΠΊΠΎΠ΄ ΠΈ Π²ΠΈΠ΄ΠΈΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅:

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ мСТсайтовый скриптинг. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ мСТсайтовый скриптинг. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ мСТсайтовый скриптинг. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ мСТсайтовый скриптинг. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ мСТсайтовый скриптинг

Π€ΠΎΡ€ΠΌΠ° Π½Π΅ позволяСт Π½Π°ΠΌ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΈΡ‚ΡŒ поиск ΠΏΠΎ Ρ‚Π°ΠΊΠΎΠΌΡƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Ρ„ΠΎΡ€ΠΌΠ° валидируСтся ΠΈ Ρ…ΠΎΡ‡Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с Π±ΡƒΠΊΠ²Π°ΠΌΠΈ ΠΈ Ρ†ΠΈΡ„Ρ€Π°ΠΌΠΈ. На ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ взгляд каТСтся, Ρ‡Ρ‚ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ всС ΡƒΡ‡Π΅Π» ΠΈ Π·Π°Ρ‰ΠΈΡ‚ΠΈΠ» страницу ΠΎΡ‚ XSS, Π½ΠΎ это Π½Π΅ совсСм Ρ‚Π°ΠΊ.

ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡ΡƒΡ‚ΡŒ Π²Ρ‹ΡˆΠ΅ ΠΌΡ‹ с Π²Π°ΠΌΠΈ Π·Π°ΠΌΠ΅Ρ‚ΠΈΠ»ΠΈ, Ρ‡Ρ‚ΠΎ тСкст, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ Π²Π²ΠΎΠ΄ΠΈΠΌ Π² ΠΏΠΎΠ»Π΅ поиска, отобраТаСтся Π² URL Π² Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠΌ GET-ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π΅? Имя этого ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° β€œq”, Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ β€” Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π²Π²ΠΎΠ΄ΠΈΠΌ Π² ΠΏΠΎΠ»Π΅ поиска. Π­Ρ‚ΠΎ сдСлано для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ URL вмСстС с этой самой строкой поиска ΠΈ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ€Π°Π· ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ страницу сразу с Π½ΡƒΠΆΠ½Ρ‹ΠΌΠΈ Π°Π²Ρ‚ΠΎΡ€Π°ΠΌΠΈ.

НапримСр, Π²ΠΎΡ‚ Ρ‚Π°ΠΊΠΎΠΉ URL ΠΎΡ‚ΠΊΡ€ΠΎΠ΅Ρ‚ страницу сразу Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с ΠΊΠ½ΠΈΠ³Π°ΠΌΠΈ РСя БрэдбСри: playground.learnqa.ru/demo/xss?q=Π Π΅ΠΉ+БрэдбСри

Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Ρ„ΠΎΡ€ΠΌΡ‹, Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΡŽ URL Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π½Π΅ ΠΌΠΎΠ³ β€” любой ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π² своСм Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ввСсти любой URL, ΠΊΠ°ΠΊΠΎΠΉ Π·Π°Ρ…ΠΎΡ‡Π΅Ρ‚, Π² Ρ‚ΠΎΠΌ числС ΠΈ с Π»ΡŽΠ±Ρ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ GET-ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. Π—Π°Π΄Π°Ρ‡Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Π² этом случаС β€” Π½Π΅ Π·Π°Π±Ρ‹Ρ‚ΡŒ ΡƒΡ‡Π΅ΡΡ‚ΡŒ всС Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ ΠΈ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ значСния этого GET-ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°.

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΠΌ, Π½Π΅ Π·Π°Π±Ρ‹Π» Π»ΠΈ наш Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ всС ΡƒΡ‡Π΅ΡΡ‚ΡŒ Ρ‚ΡƒΡ‚. ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ Π² GET-ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ β€œq” ΠΏΠΎΠ΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‚ самый JavaScript-ΠΊΠΎΠ΄: https://playground.learnqa.ru/demo/xss?q=

ΠŸΠ΅Ρ€Π΅ΠΉΠ΄Ρ ΠΏΠΎ этому URL ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π½Π° страницС появилось окошко со Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ 123. Но ΠΏΠΎΡ‡Π΅ΠΌΡƒ?

ВсС довольно просто. ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅, ΠΊΠΎΠ³Π΄Π° сайт Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°ΠΉΡ‚ΠΈ Π½ΡƒΠΆΠ½Ρ‹Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΏΠΎ Π·Π°Π΄Π°Π½Π½ΠΎΠΌΡƒ поисковому запросу, ΠΎΠ½ тСкст этого поискового запроса Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π² тСкстС ошибкС? Мол, Π½Π΅ нашли Π½ΠΈΡ‡Π΅Π³ΠΎ ΠΏΠΎ запросу β€œΠ±Π»Π°-бла”. Π’ΠΎΡ‚ вмСсто этого β€œΠ±Π»Π°-бла” Ρƒ нас Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ JavaScript-ΠΊΠΎΠ΄ с Π°Π»Π΅Ρ€Ρ‚ΠΎΠΌ. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ написал Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΡŽ поля Π²Π²ΠΎΠ΄Π° ΠΈ Ρ€Π΅ΡˆΠΈΠ», Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊ ΠΎΠ½ Π·Π°Ρ‰ΠΈΡ‚ΠΈΠ» сайт ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ JavaScript ΠΌΠΎΠ³ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ Π² поисковом запросС. И Π½Π΅ стал ΡΠΊΡ€Π°Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ тСкст ошибки. Нам ΠΆΠ΅ ΡƒΠ΄Π°Π»ΠΎΡΡŒ ΠΎΠ±ΠΎΠΉΡ‚ΠΈ Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΡŽ Ρ‡Π΅Ρ€Π΅Π· URL, помСняв Ρ‚Π°ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ поискового запроса.

Π Π°Π΄ΠΈ интСрСса Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ΅ΠΌ вывСсти Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ нашСй сСссионной cookie, для этого вмСсто Π² URL Π½Π°Π΄ΠΎ ΠΏΠΎΠ΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΊΠΎΠ΄:

Π‘ этим я ΡƒΠΆΠ΅ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡŽ ΠΏΠΎΠΈΠ³Ρ€Π°Ρ‚ΡŒΡΡ Π²Π°ΠΌ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ. πŸ™‚

Найдя ΠΎΡˆΠΈΠ±ΠΊΡƒ, стоит ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ β€” ΠΎΠ½ΠΈ Π΅Π΅ исправят.

Бпособов Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΊΡƒ довольно ΠΌΠ½ΠΎΠ³ΠΎ. Π­ΠΊΡ€Π°Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ тСкст β€” Π½Π΅ СдинствСнный ΠΈΠ· Π½ΠΈΡ…. Π•Ρ‰Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡ€Π΅Ρ‚ΠΈΡ‚ΡŒ самому JavaScript Π²ΠΈΠ΄Π΅Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ cookie. Для этого Ρƒ cookie Π΅ΡΡ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ β€œhttp only”. Если ΠΎΠ½ выставлСн Π² TRUE, JavaScript Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ смоТСт ΡƒΠ·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ такая cookie Π²ΠΎΠΎΠ±Ρ‰Π΅ выставлСна ΠΈ Π½Π΅ смоТСт Π΅Π΅ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π·Π»ΠΎΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊΡƒ Π΄Π°ΠΆΠ΅ Π² Ρ‚ΠΎΠΌ случаС, Ссли Π΅ΠΌΡƒ удастся Π½Π°ΠΉΡ‚ΠΈ XSS Π½Π° вашСм ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅.

ВсС это β€” лишь ΠΌΠ°Π»Ρ‹ΠΉ, Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ ΠΏΠΎΠ»Π½Ρ‹ΠΉ список манипуляций, ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰ΠΈΠΉ XSS-уязвимости. Как писалось Π²Ρ‹ΡˆΠ΅ β€” ΠΏΡ€ΠΈ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠΈ XSS Π² Ρ…ΠΎΠ΄Π΅ тСстирования Π»ΡƒΡ‡ΡˆΠ΅ всСго ΠΏΠΎΠΎΠ±Ρ‰Π°Ρ‚ΡŒΡΡ с программистами.

Если Π’Π°ΠΌ интСрСсно Π·Π½Π°Ρ‚ΡŒ большС ΠΏΡ€ΠΎ тСстированиС бСзопасности, хочСтся Π»ΡƒΡ‡ΡˆΠ΅ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ Π² устройствС ΠΊΠ»ΠΈΠ΅Π½Ρ‚-сСрвСрной Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹, ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΈ ΠΎΡ‚Ρ‚ΠΎΡ‡ΠΈΡ‚ΡŒ самыС эффСктивныС способы поиска уязвимостСй Π½Π° настоящСм Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚Π΅ Π½Π° ΠΌΠΎΠΉ курс β€œΠ’Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ бСзопасности”. Вся Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ° информация Π΅ΡΡ‚ΡŒ Π² ΠΌΠΎΠ΅ΠΌ ΠΏΡ€ΠΎΡ„ΠΈΠ»Π΅.

Вас ΠΆΠ΄Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ полСзная ΠΈ нуТная тСория Π±Π΅Π· Π²ΠΎΠ΄Ρ‹ ΠΈ большоС количСство практичСских ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² ΠΈ Π·Π°Π΄Π°Π½ΠΈΠΉ. Π’Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ мноТСство Π²Π΅Π±-страниц, Π½Π°ΠΏΠΈΡ‡ΠΊΠ°Π½Π½Ρ‹Ρ… самыми Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ уязвимостями. Π˜Ρ‚ΠΎΠ³ΠΎΠ²ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ станСт большоС исслСдованиС Π»ΠΈΠ±ΠΎ вашСго Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Π»ΠΈΠ±ΠΎ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Ρ‚Π°ΠΊΠΈΡ… Π³ΠΈΠ³Π°Π½Ρ‚ΠΎΠ² ΠΊΠ°ΠΊ Google, Facebook, Twitter ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ПолноС пособиС ΠΏΠΎ мСТсайтовому скриптингу

XSS – это Ρ‚ΠΈΠΏ уязвимости ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния, свойствСнный Web-прилоТСниям, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт Π°Ρ‚Π°ΠΊΡƒΡŽΡ‰Π΅ΠΌΡƒ Π²Π½Π΅Π΄Ρ€ΠΈΡ‚ΡŒ клиСнтский сцСнарий Π² web-страницы, просматриваСмыС Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ мСТсайтовый скриптинг. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ мСТсайтовый скриптинг. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ мСТсайтовый скриптинг. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ мСТсайтовый скриптинг. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ мСТсайтовый скриптинг

Автор: Ahmed Elhady Mohamed
ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄: www.SecurityLab.ru

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

Π’ Wikipedia содСрТится ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ для XSS: Β«ΠœΠ΅ΠΆΡΠ°ΠΉΡ‚ΠΎΠ²Ρ‹ΠΉ скритинг (XSS) – это Ρ‚ΠΈΠΏ уязвимости ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния, свойствСнный Web-прилоТСниям (ΠΏΡƒΡ‚Π΅ΠΌ ΠΎΠ±Ρ…ΠΎΠ΄Π° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ бСзопасности Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°)Β», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт Π°Ρ‚Π°ΠΊΡƒΡŽΡ‰Π΅ΠΌΡƒ Π²Π½Π΅Π΄Ρ€ΠΈΡ‚ΡŒ клиСнтский сцСнарий Π² web-страницы, просматриваСмыС Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ. Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ мСТсайтового скриптинга ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π°Ρ‚Π°ΠΊΡƒΡŽΡ‰ΠΈΠΌ для ΠΎΠ±Ρ…ΠΎΠ΄Π° Ρ‚Π°ΠΊΠΈΡ… ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠ² бСзопасности ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ° Сдинства происхоТдСния. Богласно Π΄Π°Π½Π½Ρ‹ΠΌ Symantec Π·Π° 2007 Π³ΠΎΠ΄, XSS уязвимости составили 80.5% ΠΎΡ‚ ΠΎΠ±Ρ‰Π΅Π³ΠΎ числа Π±Ρ€Π΅ΡˆΠ΅ΠΉ, ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹Ρ… Π½Π° сайтах. Π Π΅ΠΉΡ‚ΠΈΠ½Π³ опасности Ρ‚Π°ΠΊΠΈΡ… уязвимостСй ΠΌΠΎΠΆΠ΅Ρ‚ Π²Π°Ρ€ΡŒΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² зависимости ΠΎΡ‚ ваТности Π΄Π°Π½Π½Ρ‹Ρ…, хранящихся Π½Π° уязвимом сайтС ΠΈ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠ² Π·Π°Ρ‰ΠΈΡ‚Ρ‹Β».
Π’ΠΊΡ€Π°Ρ‚Ρ†Π΅, XSS ΠΈΠ»ΠΈ CSS (Cross-site Scripting, Π°Π±Π±Ρ€Π΅Π²ΠΈΠ°Ρ‚ΡƒΡ€Π°, которая Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Cascading Style Sheets – Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ каскадных стилСй) являСтся довольно распространСнной ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒΡŽ срСди Web-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. XSS позволяСт Π°Ρ‚Π°ΠΊΡƒΡŽΡ‰Π΅ΠΌΡƒ Π²Π½Π΅Π΄Ρ€ΠΈΡ‚ΡŒ врСдоносный ΠΊΠΎΠ΄ Π½Π° страницу ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Π³Π΄Π΅ этот ΠΊΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½. ΠŸΡ€ΠΈΡ‡ΠΈΠ½ΠΎΠΉ этому ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π΄ΠΎΠ²Π΅Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° прилоТСния ΠΊ Π²Ρ…ΠΎΠ΄Π½Ρ‹ΠΌ Π΄Π°Π½Π½Ρ‹ΠΌ ΠΈΠ»ΠΈ нСкоррСктная Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ….

XSS опасСн

XSS Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ являСтся ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒΡŽ высокой стСпСни опасности, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для измСнСния DOM-ΠΌΠΎΠ΄Π΅Π»ΠΈ сайта, Ρ‡Ρ‚ΠΎ Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΠΏΠΎΡ…ΠΈΡ‚ΠΈΡ‚ΡŒ ΡƒΡ‡Π΅Ρ‚Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… администратора сайта ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ уязвимым ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ.

КакиС Ρ†Π΅Π»ΠΈ прСслСдуСт Π°Ρ‚Π°ΠΊΡƒΡŽΡ‰ΠΈΠΉ?

Π’ΠΈΠΏΡ‹ XSS

БущСствуСт Ρ‚Ρ€ΠΈ Ρ‚ΠΈΠΏΠ° XSS уязвимостСй:

Π”Π°Π»Π΅Π΅ ΠΌΡ‹ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ обсудим ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΡ… этих Ρ‚ΠΈΠΏΠΎΠ².

ΠŸΠΎΡΡ‚ΠΎΡΠ½Π½Ρ‹ΠΉ (Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹ΠΉ) XSS

ВикипСдия Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€ΠΈΠ·ΡƒΠ΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹ΠΉ XSS ΠΊΠ°ΠΊ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Ρ€Π°Π·Ρ€ΡƒΡˆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ‚ΠΈΠΏ Π°Ρ‚Π°ΠΊ. Π₯Ρ€Π°Π½ΠΈΠΌΡ‹ΠΉ XSS Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½, ΠΊΠΎΠ³Π΄Π° Π·Π»ΠΎΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊΡƒ удаСтся Π²Π½Π΅Π΄Ρ€ΠΈΡ‚ΡŒ Π½Π° сСрвСр врСдоносный ΠΊΠΎΠ΄, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΠΉΡΡ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ ΠΊ ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠΉ страницС. ΠšΠ»Π°ΡΡΠΈΡ‡Π΅ΡΠΊΠΈΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ этой уязвимости ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ„ΠΎΡ€ΡƒΠΌΡ‹, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΎ ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Π² HTML Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ Π±Π΅Π· ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ.
Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹ΠΉ XSS Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚, ΠΊΠΎΠ³Π΄Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡŽΡ‚ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΡƒΡŽ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡŽ ΠΏΡ€ΠΈ сохранСнии Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Π΅ Π² Π‘Π” Π½Π° сСрвСрС ΠΈΠ»ΠΈ Π² ΠΏΡ€ΠΈ записи этих Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ„Π°ΠΉΠ»Ρ‹, Π° Π·Π°Ρ‚Π΅ΠΌ выводят эти Π΄Π°Π½Π½Ρ‹Π΅ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ.

ДСмонстрация Ρ…Ρ€Π°Π½ΠΈΠΌΠΎΠ³ΠΎ XSS

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ PHP сцСнария, уязвимого ΠΊ Ρ…Ρ€Π°Π½ΠΈΠΌΠΎΠΌΡƒ XSS:

Π’ ΠΊΠΎΠ΄Π΅ Π½Π΅ осущСствляСтся коррСктная ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² β€œmessage” ΠΈ β€œname” ΠΏΠ΅Ρ€Π΅Π΄ сохранСниСм Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ guestbook. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΏΡ€ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π΅ этих Π΄Π°Π½Π½Ρ‹Ρ… Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ сущСствуСт Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ врСдоносного JavaScript ΠΊΠΎΠ΄Π°.

Π’ дСмонстрационных цСлях ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ ΠΏΡ€ΠΎΡΠΊΡΠΏΠ»ΡƒΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ эту ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ DVWA.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ мСТсайтовый скриптинг. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ мСТсайтовый скриптинг. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ мСТсайтовый скриптинг. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ мСТсайтовый скриптинг. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ мСТсайтовый скриптинг

ПослС ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ этой Ρ„ΠΎΡ€ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ нашСго JavaScript ΠΊΠΎΠ΄Π°:

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ мСТсайтовый скриптинг. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ мСТсайтовый скриптинг. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ мСТсайтовый скриптинг. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ мСТсайтовый скриптинг. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ мСТсайтовый скриптинг

НСпостоянный (ΠΎΡ‚Ρ€Π°ΠΆΠ΅Π½Π½Ρ‹ΠΉ) XSS

Богласно Wikipedia, нСпостоянный XSS являСтся Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ распространСнным Ρ‚ΠΈΠΏΠΎΠΌ XSS. НСпостоянный XSS ΠΈΠΌΠ΅Π΅Ρ‚ мСсто, ΠΊΠΎΠ³Π΄Π° Π΄Π°Π½Π½Ρ‹Π΅, прСдоставляСмыС Web-ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² Π² строкС запроса ΠΈΠ»ΠΈ HTML Ρ„ΠΎΡ€ΠΌΠ΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΎΡ‚Π²Π΅Ρ‚Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ Π±Π΅Π· ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ этих Π΄Π°Π½Π½Ρ‹Ρ….

ДСмонстрация ΠΎΡ‚Ρ€Π°ΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ XSS

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°, уязвимого ΠΊ ΠΎΡ‚Ρ€Π°ΠΆΠ΅Π½Π½ΠΎΠΌΡƒ XSS:

Как Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°, очистка Π΄Π°Π½Π½Ρ‹Ρ… Π½Π΅ осущСствляСтся для ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° β€œname” ΠΏΠ΅Ρ€Π΅Π΄ Π΅Π³ΠΎ Π²Ρ‹Π²ΠΎΠ΄ΠΎΠΌ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ссли Π² Π½Π΅Π³ΠΎ Π²Π½Π΅Π΄Ρ€ΠΈΡ‚ΡŒ JavaScript сцСнарий, это сцСнарий Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½.

ΠœΡ‹ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ DVWA для дСмонстрации этой уязвимости:

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ мСТсайтовый скриптинг. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ мСТсайтовый скриптинг. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ мСТсайтовый скриптинг. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ мСТсайтовый скриптинг. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ мСТсайтовый скриптинг

Π”Π°Π²Π°ΠΉΡ‚Π΅ Π²Π½Π΅Π΄Ρ€ΠΈΠΌ ΠΊΠΎΠ΄ β€œβ€ Π² элСмСнт Ρ„ΠΎΡ€ΠΌΡ‹:

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ мСТсайтовый скриптинг. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ мСТсайтовый скриптинг. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ мСТсайтовый скриптинг. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ мСТсайтовый скриптинг. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ мСТсайтовый скриптинг

XSS Π² DOM-ΠΌΠΎΠ΄Π΅Π»ΠΈ

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, XSS Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ нСпосрСдствСнно Π²Π½ΡƒΡ‚Ρ€ΠΈ JavaScript сцСнария. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ ΠΊ этой уязвимости ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ»ΡƒΠΆΠΈΡ‚ΡŒ сцСнарий, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· URL Ρ‡Π΅Ρ€Π΅Π· location.* DOM ΠΈΠ»ΠΈ посрСдством XMLHttpRequest запроса, ΠΈ Π·Π°Ρ‚Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΈΡ… Π±Π΅Π· Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ для создания динамичСских HTML ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².

ДСмонстрация XSS Π² DOM-ΠΌΠΎΠ΄Π΅Π»ΠΈ

Для ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΌΡ‹ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ сцСнариСм, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ язык интСрфСйса. Π―Π·Ρ‹ΠΊ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ пСрСдаСтся посрСдством URL Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π΅ β€œdefault”. ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° языка интСрфСйса осущСствляСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Доступ ΠΊ этой страницС осущСствляСтся ΠΏΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ адрСсу: http://www.some.site/page.html?default=French

Для эксплуатации XSS уязвимости Π² DOM-ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΌΡ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ запрос:

Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ JavaScript сцСнарий Π½Π΅ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π²Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ HTML ΠΊΠΎΠ΄, поэтому просто Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ ΠΈΡ… Π½Π° страницС. Π—Π°Ρ‚Π΅ΠΌ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ этот ΠΊΠΎΠ΄ ΠΈ выполняСт сцСнарий alert(document.cookie).

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ эксплуатации уязвимостСй мСТсайтового скриптинга.

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ эксплуатация XSS

Π”Π°Π»Π΅ΠΊΠΎ Π½Π΅ всС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ Π·Π°Ρ‰ΠΈΡ‚ΠΈΡ‚ΡŒ сайт ΠΎΡ‚ XSS. НиТС ΠΌΡ‹ рассмотрим самыС популярныС Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ ΠΎΠ±Ρ…ΠΎΠ΄Π° Ρ‚Π°ΠΊΠΈΡ… Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ².

ΠœΠ΅Ρ‚ΠΎΠ΄ 1: Π·Π°ΠΌΠ΅Π½Π° Β«

Π‘Ρ‚ΠΎΠΈΡ‚ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ использованиС alert(β€œXSS”) для тСстирования XSS Π½Π΅ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ сайтов Π±Π»ΠΎΠΊΠΈΡ€ΡƒΡŽΡ‚ сцСнарии ΠΏΠΎ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΌΡƒ слову Β«XSSΒ».

ΠœΠ΅Ρ‚ΠΎΠ΄ 2: использованиС magic quotes

ΠŸΡ€ΠΈΠΌΠ΅Π½ΡΡ этот ΠΌΠ΅Ρ‚ΠΎΠ΄, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Β«addslashes()Β» языка PHP, которая добавляСт символ Β«\Β» ΠΏΠ΅Ρ€Π΅Π΄ Π»ΡŽΠ±Ρ‹ΠΌ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌ символом. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΊΠΎΠ΄, написанный Π½Π° JavaScript, Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½.

БущСствуСт нСсколько способов ΠΎΠ±ΠΎΠΉΡ‚ΠΈ Ρ‚Π°ΠΊΡƒΡŽ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡŽ. ΠžΡΡ‚Π°Π½ΠΎΠ²ΠΈΠΌΡΡ Π½Π° Π΄Π²ΡƒΡ… ΠΈΠ· Π½ΠΈΡ….

Как Π·Π»ΠΎΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠΊΡ€Π°ΡΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ ΠΊΡƒΠΊΠΈ?

На ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ взгляд, Ρ‡Ρ‚ΠΎ ΠΊΡ€Π°ΠΆΠ° Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΊΡƒΠΊΠΈ – это слоТная ΠΈ кропотливая Ρ€Π°Π±ΠΎΡ‚Π°. На самом Π΄Π΅Π»Π΅ для ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ³ΠΎ хищСния Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΊΡƒΠΊΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ лишь ΠΎΠ±Ρ‰ΠΈΠ΅ Π½Π°Π²Ρ‹ΠΊΠΈ программирования ΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ XSS уязвимости.

Для дСмонстрации ΠΌΡ‹ создадим сцСнарий collect_cookie.php Π½Π° языкС PHP, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ Π½Π° сСрвСрС любой ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅ΠΉ хостинг. ПослС этого Π±ΡƒΠ΄Π΅Ρ‚ Π²Π½Π΅Π΄Ρ€Π΅Π½ ΠΊΠΎΠ΄ Π½Π° языкС JavaScript, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΡ…ΠΈΡ‰Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ ΠΊΡƒΠΊΠΈ ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈΡ… Π½Π° наш сайт. Когда php-Ρ„Π°ΠΉΠ» ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ Π΄Π°Π½Π½Ρ‹Π΅, ΠΎΠ½ сохранит ΠΈΡ… Π² Ρ„Π°ΠΉΠ» stolen_cookies.txt.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΡ…ΠΈΡ‚ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ ΠΊΡƒΠΊΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Ρ‚Ρ€Π΅Ρ… ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΡ…:

ΠŸΠ΅Ρ€Π²Π°Ρ ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π°Ρ: скрипт collect_cookie.php

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ PHP-скрипт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ использован для сбора Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΊΡƒΠΊΠΈ ΠΈ ΠΈΡ… запись Π² Ρ„Π°ΠΉΠ» stolen_cookie.txt

ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, Π½Π°ΠΆΠΌΠΈΡ‚Π΅ href=»http://www.google.com/»>здСсь, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π½Π° ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΡƒΡŽ страницу’;
?>

РазбСрСмся, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Π΄Π°Π½Π½Ρ‹ΠΉ скрипт:

Π’ Π΄Π°Π½Π½ΠΎΠΉ строкС происходит сохранСния значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Β«cookiesΒ» ΠΈΠ· GET-запроса Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Β«collectedCookieΒ»
$date=date(«l ds of F Y h:i:s A»);

Π—Π΄Π΅ΡΡŒ происходит сохранСниС Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ соСдинСния, ΠΏΠΎ Π½Π΅ΠΌΡƒ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ врСмя ΠΊΡ€Π°ΠΆΠΈ cookies.

Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ user_agent ΠΆΠ΅Ρ€Ρ‚Π²Ρ‹ для осущСствлСния Π±ΡƒΠ΄ΡƒΡ‰ΠΈΡ… Π°Ρ‚Π°ΠΊ, Ссли ΠΎΠ½ΠΈ ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ.

Π’ этой строкС происходит созданиС Ρ„Π°ΠΉΠ»Π° stolen_cookie.txt, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π±ΡƒΠ΄ΡƒΡ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ ΠΏΠΎΡ…ΠΈΡ‰Π΅Π½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅.

fwrite($file,»DATE:$date || USER AGENT:$user_agent || COOKIE:$collectedCookie \n»);

Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅: (β€œΠ”ΠΠ’Π: || USER AGENT || COOKIE”)

echo ‘Π˜Π·Π²ΠΈΠ½ΠΈΡ‚Π΅, сайт находится Π² состоянии Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, Π½Π°ΠΆΠΌΠΈΡ‚Π΅ href=»http://www.google.com/»>здСсь, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π½Π° ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΡƒΡŽ страницу’;

ΠžΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΠ΅Ρ‚ΡΡ Π²Ρ‹Π²ΠΎΠ΄ Π½Π° экран тСкста (β€œΠ˜Π·Π²ΠΈΠ½ΠΈΡ‚Π΅, сайт находится Π² состоянии разработки”) ΠΈ ссылки, вСдущая Π½Π° страницу google.com.
ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ шаг ΠΊ сбору ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ cookies Π·Π°ΠΊΠΎΠ½Ρ‡Π΅Π½.

Вторая ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π°Ρ: JavaScript-ΠΊΠΎΠ΄

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ JavaScript-ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. МоТно Π²Π½Π΅Π΄Ρ€ΠΈΡ‚ΡŒ любой ΠΈΠ· Π½ΠΈΠΆΠ΅ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… сцСнариСв:

Π”Π°Π½Π½Ρ‹ΠΉ скрипт Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Ρ€Π΅Π°ΠΊΡ†ΠΈΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π½Π° экран ссылку Π½Π° наш сайт. Если ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π°ΠΆΠΌΠ΅Ρ‚ Π½Π° ΠΏΠΎΠΊΠ°Π·Π°Π½Π½ΡƒΡŽ Π΅ΠΌΡƒ ссылку, Ρ‚ΠΎ ΠΎΠ½ ΠΏΠΎΠΏΠ°Π΄Π΅Ρ‚ Π½Π° наш сайт ΠΈ Π΅Π³ΠΎ Ρ„Π°ΠΉΠ»Ρ‹ ΠΊΡƒΠΊΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΡƒΠΊΡ€Π°Π΄Π΅Π½Ρ‹.

Π­Ρ‚ΠΎΡ‚ скрипт Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… дСйствий со стороны ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Π’ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ случаС Π½Π° сайт ΠΆΠ΅Ρ€Ρ‚Π²Ρ‹ внСдряСтся скрытый IFrame, Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΡ‹ΠΉ для Π³Π»Π°Π· ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

Π’ ΠΈΡ‚ΠΎΠ³Π΅ ΡƒΠΊΡ€Π°Π΄Π΅Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΊΡƒΠΊΠΈ окаТутся Π² Ρ„Π°ΠΉΠ»Π΅ stolen_cookie.txt. По ссылкС Π½ΠΈΠΆΠ΅ доступно Π²ΠΈΠ΄Π΅ΠΎ, Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΡ€Π°ΡΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ ΠΊΡƒΠΊΠΈ: http://www.youtube.com/watch?v=ZeLyJnhz4ak

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ BeEF?

BeEF (сокращСниС ΠΎΡ‚ Browser Exploitation Framework) – ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° для эксплуатации Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ². BeEF ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·Π½Ρ‹Ρ… Π°Ρ‚Π°ΠΊ Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ с Ρ†Π΅Π»ΡŒΡŽ ΠΈΡ… Π·Π°Ρ…Π²Π°Ρ‚Π°. НаличиС этого инструмСнта Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΠ±Π»Π΅Π³Ρ‡Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Ρ€ΡƒΡ‚ΠΈΠ½Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΡƒΠΆΠ΅ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹.

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ опСрация Π·Π°Ρ…Π²Π°Ρ‚Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°-Π·ΠΎΠΌΠ±ΠΈ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π°, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ прилоТСния beef (Browser Exploitation Framework) ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Ρ…Π²Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ мноТСство ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠ²-Π·ΠΎΠΌΠ±ΠΈ (Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ находятся Π²Π½ΡƒΡ‚Ρ€ΠΈ Π±ΠΎΡ‚Π½Π΅Ρ‚Π°).

На ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΌ сайтС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° BeEF содСрТится ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ описаниС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹: Β«Browser Exploitation Framework (BeEF) – это мощная ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½Π°Ρ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°. Π’ BeEF Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ послСдниС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π°Ρ‚Π°ΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ спСциалисты Π² области тСстов Π½Π° ΠΏΡ€ΠΎΠ½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠ΅ с Π±ΠΎΠ³Π°Ρ‚Ρ‹ΠΌ практичСским ΠΎΠΏΡ‹Ρ‚ΠΎΠΌ Π°Ρ‚Π°ΠΊ Π½Π° клиСнтскиС прилоТСния. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ бСзопасности, BeEF ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ Π½Π° ΡΠΊΡΠΏΠ»ΡƒΠ°Ρ‚Π°Ρ†ΠΈΡŽ уязвимостСй Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°Ρ… для получСния контроля Π½Π°Π΄ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠΌ. Π”Π°Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ разрабатываСтся ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ для Π»Π΅Π³Π°Π»ΡŒΠ½Ρ‹Ρ… исслСдований ΠΈ тСстов Π½Π° ΠΏΡ€ΠΎΠ½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠ΅.Β»

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ BeEF с сайта ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° http://beefproject.com.

Как ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ BeEF?

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ мСТсайтовый скриптинг. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ мСТсайтовый скриптинг. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ мСТсайтовый скриптинг. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ мСТсайтовый скриптинг. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ мСТсайтовый скриптинг

ПослС запуска beef-ng Π½Π° экранС ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒΡΡ консоль прилоТСния:

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ мСТсайтовый скриптинг. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ мСТсайтовый скриптинг. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ мСТсайтовый скриптинг. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ мСТсайтовый скриптинг. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ мСТсайтовый скриптинг

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ панСль управлСния BeEF, пСрСйдя ΠΏΠΎ ссылкС ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Β«beefΒ»/Β«beefΒ» Π² качСствС Π»ΠΎΠ³ΠΈΠ½Π° ΠΈ пароля.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ мСТсайтовый скриптинг. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ мСТсайтовый скриптинг. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ мСТсайтовый скриптинг. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ мСТсайтовый скриптинг. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ мСТсайтовый скриптинг

НСобходимо ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ JavaScript-ΠΊΠΎΠ΄ Π½Π° сСрвСр ΠΈΠ»ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΠΆΠ΅Ρ€Ρ‚Π²Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°Ρ…Π²Π°Ρ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€-Π·ΠΎΠΌΠ±ΠΈ. Код выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

НиТС ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ список Π·Π°Ρ…Π²Π°Ρ‡Π΅Π½Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠ² Π·ΠΎΠΌΠ±ΠΈ ΠΈ ΠΈΡ… статус присутствия Π² сСти.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΡƒ Commands

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ мСТсайтовый скриптинг. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ мСТсайтовый скриптинг. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ мСТсайтовый скриптинг. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ мСТсайтовый скриптинг. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ мСТсайтовый скриптинг

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ мСТсайтовый скриптинг. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ мСТсайтовый скриптинг. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ мСТсайтовый скриптинг. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ мСТсайтовый скриптинг. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ мСТсайтовый скриптинг

Как ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, сущСствуСт довольно ΠΌΠ½ΠΎΠ³ΠΎ эксплоитов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ. НапримСр, ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ misc->alert dialog. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΎΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, ΠΊΠ°ΠΊΠΎΠΉ Π·Π°Ρ…ΠΎΡ‚ΠΈΡ‚Π΅.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ мСТсайтовый скриптинг. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ мСТсайтовый скриптинг. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ мСТсайтовый скриптинг. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ мСТсайтовый скриптинг. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ мСТсайтовый скриптинг

НиТС Π²ΠΈΠ΄Π΅Π½ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚. Как ΠΌΡ‹ ΠΈ ΠΎΠΆΠΈΠ΄Π°Π»ΠΈ, скрипт выполнился, ΠΈ появилось окошко с ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ΠΌ.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ мСТсайтовый скриптинг. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ мСТсайтовый скриптинг. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ мСТсайтовый скриптинг. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ мСТсайтовый скриптинг. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ мСТсайтовый скриптинг

Как Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅, процСсс ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½. Π’Π°ΠΌ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΈ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ. Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ beef ΠΈ metasploit заслуТиваСт ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ внимания. На Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Command Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ metasploit. Π—Π°ΠΉΠ΄ΠΈΡ‚Π΅ Ρ‚ΡƒΠ΄Π° ΠΈ посмотритС, насколько Π±ΠΎΠ³Π°Ρ‚Ρ‹ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» прСдоставляСт ΠΌΠΎΠ΄ΡƒΠ»ΡŒ metasploit. Π’Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ страницу, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ любой эксплоит ΠΈΠ· Π½Π°Π±ΠΎΡ€Π° metasploit ΠΈ Π»ΡŽΠ±ΡƒΡŽ Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Π΅ΠΌΡƒΡŽ ΠΏΠΎΠ»Π΅Π·Π½ΡƒΡŽ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ.

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ информация ΠΎ beef располоТСна ΠΏΠΎ адрСсу: https://github.com/beefproject/beef/wiki

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Как ΠΌΡ‹ ΡƒΠ±Π΅Π΄ΠΈΠ»ΠΈΡΡŒ, наш JavaScript-ΠΊΠΎΠ΄ Π±Ρ‹Π» Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½. Π’Π°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ ΠΈ врСдоносныС ΠΊΠΎΠ΄Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ распространСны Π² ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅. BeEF Π΄Π°Π΅Ρ‚ Π°Ρ‚Π°ΠΊΡƒΡŽΡ‰Π΅ΠΌΡƒ ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ΅ количСство ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² Π΄Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠΈΡ… Π°Ρ‚Π°ΠΊΠ°Ρ…, для получСния ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ доступа.

ΠœΡ‹ надССмся, Ρ‡Ρ‚ΠΎ привСдСнная информация окаТСтся для вас ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ, Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ ΠΌΡ‹ прСдоставим Π΅Ρ‰Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠ³ΠΎ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π° для изучСния.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π°Ρ‚Π°ΠΊΠ° с использованиСм мСТсайтового скриптинга? ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΈ описаниС

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ мСТсайтовый скриптинг. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ мСТсайтовый скриптинг. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ мСТсайтовый скриптинг. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ мСТсайтовый скриптинг. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ мСТсайтовый скриптинг

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ мСТсайтовый скриптинг?

Атаки с использованиСм мСТсайтового скриптинга ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ врСдоносного ΠΊΠΎΠ΄Π° Π½Π° Π΄ΠΎΠ²Π΅Ρ€Π΅Π½Π½Ρ‹Π΅ Π²Π΅Π±-сайты. Π’ процСссС Π°Ρ‚Π°ΠΊΠΈ происходит Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ врСдоносных скриптов Π² ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ Π²Π΅Π±-сайта. Π—Π°Ρ‚Π΅ΠΌ эти скрипты Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ Π² динамичСский ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΡ‹ΠΉ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ ΠΆΠ΅Ρ€Ρ‚Π²Ρ‹. Π‘Ρ€Π°ΡƒΠ·Π΅Ρ€ ΠΆΠ΅Ρ€Ρ‚Π²Ρ‹ Π½Π΅ Π·Π½Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ врСдоносныС скрипты Π½Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π΄ΠΎΠ²Π΅Ρ€Π΅Π½Π½Ρ‹ΠΌΠΈ, ΠΈ выполняСт ΠΈΡ….

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ врСдоносныС скрипты ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ Ρ„Π°ΠΉΠ»Π°ΠΌ cookie, ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°ΠΌ сСансов, ΠΈ ΠΏΡ€ΠΎΡ‡Π΅ΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, сохранСнной Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠΌ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ Π½Π° этом сайтС. Π—Π»ΠΎΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊΠΈ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ мСТсайтовый скриптинг для распространСния врСдоносных ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, пСрСзаписи содСрТимого Π²Π΅Π±-сайтов, создания ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π² ΡΠΎΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… сСтях ΠΈ Ρ„ΠΈΡˆΠΈΠ½Π³Π° с Ρ†Π΅Π»ΡŒΡŽ получСния ΡƒΡ‡Π΅Ρ‚Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ. ΠœΠ΅ΠΆΡΠ°ΠΉΡ‚ΠΎΠ²Ρ‹ΠΉ скриптинг отличаСтся ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… Π²Π΅Π±-Π°Ρ‚Π°ΠΊ Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π½Π΅ Π½Π°Ρ†Π΅Π»Π΅Π½ нСпосрСдствСнно Π½Π° само ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ – риску ΠΏΠΎΠ΄Π²Π΅Ρ€Π³Π°ΡŽΡ‚ΡΡ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ Π²Π΅Π±-прилоТСния.

Как Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ мСТсайтовый скриптинг?

ΠŸΡ€ΠΈ Π°Ρ‚Π°ΠΊΠ΅ с использованиСм мСТсайтового скриптинга уязвимый сайт Π½ΡƒΠΆΠ΅Π½ лишь для выполнСния Π½Π° устройствах ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ врСдоносных скриптов. Часто Π² этих цСлях ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ JavaScript, Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ любой клиСнтский язык. ΠšΠΈΠ±Π΅Ρ€ΠΏΡ€Π΅ΡΡ‚ΡƒΠΏΠ½ΠΈΠΊΠΈ Π½Π°Ρ†Π΅Π»ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π½Π° Π²Π΅Π±-сайты с уязвимыми функциями, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹ΠΌΠΈ для Π²Π²ΠΎΠ΄Π° Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ: панСлями поиска, полями для Π²Π²ΠΎΠ΄Π° ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π², Ρ„ΠΎΡ€ΠΌΠ°ΠΌΠΈ Π²Ρ…ΠΎΠ΄Π°. Они Π²Π½Π΅Π΄Ρ€ΡΡŽΡ‚ врСдоносный ΠΊΠΎΠ΄ Π½Π° Π»Π΅Π³Π°Π»ΡŒΠ½Ρ‹Π΅ Π²Π΅Π±-сайты, ΠΏΠΎ сути, заставляя Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Ρ‹ ΠΎΠ±ΠΌΠ°Π½Π½Ρ‹ΠΌ ΠΏΡƒΡ‚Π΅ΠΌ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ врСдоносныС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ сайта.

JavaScript запускаСтся Π½Π° страницС Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° ΠΆΠ΅Ρ€Ρ‚Π²Ρ‹, Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Ρ‡Π΅Π³ΠΎ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ²ΡˆΠ΅ΠΌ Π²Ρ…ΠΎΠ΄ Π² систСму, ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΡƒΠΊΡ€Π°Π΄Π΅Π½Ρ‹ ΠΈΠ· сСанса. Π­Ρ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π·Π»ΠΎΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊΠ°ΠΌΠΈ для Π°Ρ‚Π°ΠΊ Π½Π° администраторов сайтов ΠΈ Π²Π·Π»ΠΎΠΌΠ° самих сайтов.

Π’ зависимости ΠΎΡ‚ способа внСдрСния ΠΊΠΎΠ΄Π°, врСдоносный ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°ΠΆΠ΅ Π½Π΅ Π½Π° самой Π²Π΅Π±-страницС, Π° ΡΠ²Π»ΡΡ‚ΡŒΡΡ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ элСмСнтом, каТущимся Ρ‡Π°ΡΡ‚ΡŒΡŽ Π²Π΅Π±-сайта Π½Π° ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ Π°Ρ‚Π°ΠΊΠΈ. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ иллюзию ΠΊΠΎΠΌΠΏΡ€ΠΎΠΌΠ΅Ρ‚Π°Ρ†ΠΈΠΈ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Π΅Π±-сайта, хотя это Π½Π΅ Ρ‚Π°ΠΊ.

Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ способы ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π°Ρ‚Π°ΠΊΡƒ с использованиСм мСТсайтового скриптинга. НапримСр, Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ скрипта ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒΡΡ автоматичСски ΠΏΡ€ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ страницы ΠΈΠ»ΠΈ ΠΏΡ€ΠΈ Π½Π°Π²Π΅Π΄Π΅Π½ΠΈΠΈ курсора Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ элСмСнты страницы, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ гипСрссылки. Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях Π°Ρ‚Π°ΠΊΠ° с использованиСм мСТсайтового скриптинга осущСствляСтся Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΈΠ· сообщСния элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹. НСкоторыС Π°Ρ‚Π°ΠΊΠΈ с использованиСм мСТсайтового скриптинга Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Ρ†Π΅Π»ΠΈ; Π·Π»ΠΎΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊΠΈ просто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ уязвимости Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΈΠ»ΠΈ Π½Π° сайтС, ΠΈ любой ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚Π°Ρ‚ΡŒ ΠΈΡ… ΠΆΠ΅Ρ€Ρ‚Π²ΠΎΠΉ.

Π’ зависимости ΠΎΡ‚ ΠΌΠ°ΡΡˆΡ‚Π°Π±Π° Π°Ρ‚Π°ΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ скомпромСтированы ΡƒΡ‡Π΅Ρ‚Π½Ρ‹Π΅ записи ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ троянскиС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ содСрТимоС страницы, Ρ‡Ρ‚ΠΎ заставит ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Ρ€Π°ΡΠΊΡ€Ρ‹Ρ‚ΡŒ Π»ΠΈΡ‡Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅. ΠœΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ раскрыты Ρ„Π°ΠΉΠ»Ρ‹ cookie сСансов, Ρ‡Ρ‚ΠΎ позволяСт Π·Π»ΠΎΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊΠ°ΠΌ Π²Ρ‹Π΄Π°Π²Π°Ρ‚ΡŒ сСбя Π·Π° Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… Π»ΠΈΡ‡Π½Ρ‹Π΅ ΡƒΡ‡Π΅Ρ‚Π½Ρ‹Π΅ записи.

УспСшная Π°Ρ‚Π°ΠΊΠ° с использованиСм мСТсайтового скриптинга ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ катастрофичСскиС послСдствия для Ρ€Π΅ΠΏΡƒΡ‚Π°Ρ†ΠΈΠΈ ΠΎΠ½Π»Π°ΠΉΠ½-ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ ΠΈ ΠΈΡ… Π²Π·Π°ΠΈΠΌΠΎΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΉ с ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌΠΈ. К соТалСнию, уязвимости, Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‰ΠΈΠ΅ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ΅ осущСствлСниС Π°Ρ‚Π°ΠΊ с использованиСм мСТсайтового скриптинга, ΡΠ²Π»ΡΡŽΡ‚ΡΡ довольно распространСнными. ΠŸΡ€ΠΈ Ρ‚Π°ΠΊΠΈΡ… Π°Ρ‚Π°ΠΊΠ°Ρ… ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ уязвимости Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… срСдах программирования, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ VBScript, Flash, ActiveX ΠΈ JavaScript. Π’ ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ эти Π°Ρ‚Π°ΠΊΠΈ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ Π½Π° JavaScript ΠΈΠ·-Π·Π° Π΅Π³ΠΎ тСсной ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ с Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎΠΌ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ². Π‘ΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π° Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ популярных ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ… Π΄Π΅Π»Π°Π΅Ρ‚ Π°Ρ‚Π°ΠΊΠΈ с использованиСм мСТсайтового скриптинга опасными ΠΈ ΡˆΠΈΡ€ΠΎΠΊΠΎ распространСнными.

ВоздСйствиС мСТсайтового скриптинга

Π—Π»ΠΎΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ уязвимости для ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… врСдоносных дСйствий:

Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях Π°Ρ‚Π°ΠΊΠΈ с использованиСм мСТсайтового скриптинга ΠΌΠΎΠ³ΡƒΡ‚ привСсти ΠΊ ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΊΠΎΠΌΠΏΡ€ΠΎΠΌΠ΅Ρ‚Π°Ρ†ΠΈΠΈ ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записи ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Π—Π»ΠΎΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠ±ΠΌΠ°Π½Π½Ρ‹ΠΌ ΠΏΡƒΡ‚Π΅ΠΌ Π·Π°ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ввСсти ΡƒΡ‡Π΅Ρ‚Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π² поддСльной Ρ„ΠΎΡ€ΠΌΠ΅, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π·Π°Ρ‚Π΅ΠΌ ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ всю ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ. Π£Ρ‡Π΅Ρ‚Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для ΠΊΡ€Π°ΠΆΠΈ Π»ΠΈΡ‡Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ финансового ΠΌΠΎΡˆΠ΅Π½Π½ΠΈΡ‡Π΅ΡΡ‚Π²Π°.

Π’ΠΈΠ΄Ρ‹ Π°Ρ‚Π°ΠΊ с использованиСм мСТсайтового скриптинга

Атаки с использованиСм мСТсайтового скриптинга ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½Π° Ρ‚Ρ€ΠΈ основныС ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ: Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹Π΅, ΠΎΡ‚Ρ€Π°ΠΆΠ΅Π½Π½Ρ‹Π΅ ΠΈ Π½Π° основС DOM.

Π₯Ρ€Π°Π½ΠΈΠΌΡ‹Π΅ (постоянныС)

Π₯Ρ€Π°Π½ΠΈΠΌΡ‹Π΅ (постоянныС) мСТсайтовыС скрипты ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ опасными. Атаки с ΠΈΡ… использованиСм Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚ ΠΏΡ€ΠΈ сохранСнии Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ Π΄Π°Π½Π½Ρ‹Ρ… с ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΈΡ… ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π½Π° Π²Π΅Π±-страницС. Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ Ρ‚ΠΎΡ‡ΠΊΠΈ Π²Ρ…ΠΎΠ΄Π° Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹Ρ… мСТсайтовых скриптов – это Ρ„ΠΎΡ€ΡƒΠΌΡ‹, ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Π² Π±Π»ΠΎΠ³Π°Ρ…, ΠΏΡ€ΠΎΡ„ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈ поля для Π²Π²ΠΎΠ΄Π° ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Π—Π»ΠΎΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ эту ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ, внСдряя мСТсайтовыС скрипты Π½Π° популярныС страницы сайта ΠΈΠ»ΠΈ пСрСдавая ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ссылку для ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° Π½Π° страницу, ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‰ΡƒΡŽ сохранСнный скрипт. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π·Π°Ρ…ΠΎΠ΄ΠΈΡ‚ Π½Π° страницу, ΠΈ скрипт выполняСтся Π΅Π³ΠΎ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠΌ Π½Π° сторонС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°.

ΠžΡ‚Ρ€Π°ΠΆΠ΅Π½Π½Ρ‹Π΅ (нСпостоянныС)

ΠžΡ‚Ρ€Π°ΠΆΠ΅Π½Π½Ρ‹ΠΉ (нСпостоянный) – это Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ распространСнный Ρ‚ΠΈΠΏ мСТсайтового скриптинга. Π’ этом случаС скрипт Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ²Π»ΡΡ‚ΡŒΡΡ Ρ‡Π°ΡΡ‚ΡŒΡŽ запроса, ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π½Π° Π²Π΅Π±-сСрвСр. Π—Π°Ρ‚Π΅ΠΌ запрос возвращаСтся (отраТаСтся) ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΡ‚Π²Π΅Ρ‚ HTTP Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· запроса HTTP. Π—Π»ΠΎΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ врСдоносныС ссылки, Ρ„ΠΈΡˆΠΈΠ½Π³ΠΎΠ²Ρ‹Π΅ элСктронныС письма ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΡΠΎΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΠΈΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±ΠΌΠ°Π½Π½Ρ‹ΠΌ ΠΏΡƒΡ‚Π΅ΠΌ Π·Π°ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ запрос Π½Π° сСрвСр. ΠžΡ‚Ρ€Π°ΠΆΠ΅Π½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π·Π°Ρ‚Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ скрипта Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

ΠžΡ‚Ρ€Π°ΠΆΠ΅Π½Π½Ρ‹ΠΉ мСТсайтовый скриптинг Π½Π΅ являСтся постоянной Π°Ρ‚Π°ΠΊΠΎΠΉ, поэтому Π·Π»ΠΎΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ врСдоносный скрипт ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ. Π’Π°ΠΊΠΈΠ΅ Π°Ρ‚Π°ΠΊΠΈ часто ΡΠΎΠ²Π΅Ρ€ΡˆΠ°ΡŽΡ‚ΡΡ Ρ‡Π΅Ρ€Π΅Π· ΡΠΎΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ сСти.

ΠœΠ΅ΠΆΡΠ°ΠΉΡ‚ΠΎΠ²Ρ‹ΠΉ скриптинг Π½Π° основС DOM

ΠœΠ΅ΠΆΡΠ°ΠΉΡ‚ΠΎΠ²Ρ‹ΠΉ скриптинг Π½Π° основС DOM ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ DOM-ΠΌΠΎΠ΄Π΅Π»ΠΈ (Document Object Model – ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°), Π° Π½Π΅ HTML. Π’ ΠΎΡ‚Ρ€Π°ΠΆΠ΅Π½Π½Ρ‹Ρ… ΠΈ Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹Ρ… Π°Ρ‚Π°ΠΊΠ°Ρ… с использованиСм мСТсайтового скриптинга Π΄Π°Π½Π½Ρ‹Π΅, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ эксплуатации уязвимости, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ Π½Π° страницС ΠΎΡ‚Π²Π΅Ρ‚Π°. Однако ΠΏΡ€ΠΈ мСТсайтовом скриптингС Π½Π° основС DOM исходный HTML-ΠΊΠΎΠ΄ Π°Ρ‚Π°ΠΊΠΈ ΠΈ ΠΎΡ‚Π²Π΅Ρ‚ Π±ΡƒΠ΄ΡƒΡ‚ ΡΠΎΠ²ΠΏΠ°Π΄Π°Ρ‚ΡŒ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Ρ‹ Π² ΠΎΡ‚Π²Π΅Ρ‚Π΅ Π½Π° запрос, ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² срСдС выполнСния ΠΈΠ»ΠΈ ΠΏΡ€ΠΈ исслСдовании DOM-ΠΌΠΎΠ΄Π΅Π»ΠΈ страниц.

Атаки с использованиСм мСТсайтового скриптинга Π½Π° основС DOM часто Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π½Π° сторонС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, Π° врСдоносная Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Π½Π΅ отправляСтся Π½Π° сСрвСр. Π­Ρ‚ΠΎ Π΅Ρ‰Π΅ большС затрудняСт ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ Ρ‚Π°ΠΊΠΈΡ… Π°Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ сСтСвых экранов Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Ρ‚Π°ΠΊ ΠΈ для ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΠΎΠ² ΠΏΠΎ бСзопасности, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΡ… Π°Π½Π°Π»ΠΈΠ· ΠΆΡƒΡ€Π½Π°Π»ΠΎΠ² сСрвСров, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ΠΈ Π½Π΅ видят самой Π°Ρ‚Π°ΠΊΠΈ. Π§Π°Ρ‰Π΅ всСго ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ DOM: Π²Π΅Π±-адрСс (document.URL), якорная Ρ‡Π°ΡΡ‚ΡŒ Π²Π΅Π±-адрСса (location.hash) ΠΈ адрСс страницы, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±Ρ‹Π» ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ (document.referrer).

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ мСТсайтовый скриптинг. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ мСТсайтовый скриптинг. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ мСТсайтовый скриптинг. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ мСТсайтовый скриптинг. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ мСТсайтовый скриптинг

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Π°Ρ‚Π°ΠΊ с использованиСм мСТсайтового скриптинга

ΠŸΡ€ΠΈ просмотрС Π²Π΅Π±-сайта, посвящСнного элСктронной ΠΊΠΎΠΌΠΌΠ΅Ρ€Ρ†ΠΈΠΈ, Π·Π»ΠΎΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ²Π°Π΅Ρ‚ ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΡƒΡŽ Π²ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ HTML-Ρ‚Π΅Π³ΠΈ Π² Ρ€Π°Π·Π΄Π΅Π» ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² сайта. ВстроСнныС Ρ‚Π΅Π³ΠΈ становятся постоянной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ страницы: Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΈΡ… вмСстС с ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ исходного ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ страницы.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ доступС ΠΊ страницС ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½Π½Ρ‹ΠΉ Π² ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ HTML-Ρ‚Π΅Π³ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ„Π°ΠΉΠ» JavaScript, Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½Π½Ρ‹ΠΉ Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΌ сайтС, ΠΈ позволяСт ΡƒΠΊΡ€Π°ΡΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ cookie сСансов посСтитСлСй страницы.

Π€Π°ΠΉΠ»Ρ‹ cookie сСансов ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π·Π»ΠΎΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊΠ°ΠΌ Π²Π·Π»Π°ΠΌΡ‹Π²Π°Ρ‚ΡŒ ΡƒΡ‡Π΅Ρ‚Π½Ρ‹Π΅ записи посСтитСлСй ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ доступ ΠΊ ΠΈΡ… Π»ΠΈΡ‡Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΈ финансовым Π΄Π°Π½Π½Ρ‹ΠΌ. ΠœΠ΅ΠΆΠ΄Ρƒ Ρ‚Π΅ΠΌ, посСтитСли страницы, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π΄Π°ΠΆΠ΅ Π½Π΅ ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΈΠ»ΠΈ Π΄ΠΎ Ρ€Π°Π·Π΄Π΅Π»Π° ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π², ΠΈ Π½Π΅ ΠΏΠΎΠ΄ΠΎΠ·Ρ€Π΅Π²Π°ΡŽΡ‚ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»Π° Π°Ρ‚Π°ΠΊΠ°.

Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΎΡ‚Ρ€Π°ΠΆΠ΅Π½Π½ΠΎΠΉ Π°Ρ‚Π°ΠΊΠΈ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ скрипт активируСтся ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π΅ ΠΏΠΎ ссылкС, для сохранСнной Π°Ρ‚Π°ΠΊΠΈ достаточно, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ посСтил ΡΠΊΠΎΠΌΠΏΡ€ΠΎΠΌΠ΅Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ Π²Π΅Π±-страницу. Π­Ρ‚ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ ΠΌΠ°ΡΡˆΡ‚Π°Π± Π°Ρ‚Π°ΠΊΠΈ, подвСргая опасности всСх посСтитСлСй страницы, нСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, насколько ΠΎΠ½ΠΈ остороТны.

Π‘ Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния Π·Π»ΠΎΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊΠ°, постоянныС Π°Ρ‚Π°ΠΊΠΈ с использованиСм мСТсайтового скриптинга слоТнСС Π² ΠΏΠ»Π°Π½Π΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈΠ·-Π·Π° трудностСй с ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΊΠ°ΠΊ Π²Π΅Π±-сайта, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠ΄Π΅Ρ‚ Ρ‚Ρ€Π°Ρ„ΠΈΠΊ, Ρ‚Π°ΠΊ ΠΈ Π²Π΅Π±-сайта с уязвимостями, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΌΠΈ Π²ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ постоянныС скрипты.

ΠŸΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ Π°Ρ‚Π°ΠΊ с использованиСм мСТсайтового скриптинга

Π§Ρ‚ΠΎΠ±Ρ‹ свСсти ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΡƒ уязвимости, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Π² Π°Ρ‚Π°ΠΊΠ°Ρ… мСТсайтового скриптинга, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΈ Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Ρ‹ Π²Π΅Π±-сайтов Π΄ΠΎΠ»ΠΆΠ½Ρ‹:

Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΡΡ‚Π°Ρ‚ΡŒ ΠΆΠ΅Ρ€Ρ‚Π²ΠΎΠΉ Π°Ρ‚Π°ΠΊΠΈ с использованиСм мСТсайтового скриптинга, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹:

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *