Vedroid & Mikas
Vedroid Vedroid
Π― Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ Π·Π°ΠΌΠ΅Ρ‚ΠΈΠ» косяк Π² систСмС Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½ΠΎΠ²ΠΎΠΉ AR-ΠΈΠ³Ρ€Ρ‹ – ΠΏΠΎΡ…ΠΎΠΆΠ΅ Π½Π° классичСский zero-day. Π₯ΠΎΡ‡Π΅ΡˆΡŒ вмСстС разбСрСмся, получится Π»ΠΈ ΠΈΠ· этого Ρ…Π°ΠΊ ΠΈΠ»ΠΈ просто ΡƒΡ€ΠΎΠΊ ΠΏΠΎ Π·Π°Ρ‰ΠΈΡ‚Π΅?
Mikas Mikas
ОкСй, Π΄Π°Π²Π°ΠΉ пройдёмся ΠΏΠΎ процСссу ΠΈ посмотрим, Π³Π΄Π΅ Π»ΠΎΠ³ΠΈΠΊΠ° Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ сбоит. Π― ΠΏΠΎΠΊΠ°ΠΆΡƒ, Π³Π΄Π΅ слабыС мСста, ΠΈ ΠΌΡ‹ набросаСм исправлСниС – Π±Π΅Π· Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΉ эксплуатации, просто Π² Ρ‚Π΅ΠΎΡ€ΠΈΠΈ.
Vedroid Vedroid
ΠŸΡ€ΠΈΠ²Π΅Ρ‚, Π½Π°Ρ‡Π½ΠΈ с ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½ΠΎΠ³ΠΎ ΠΎΠ±ΠΌΠ΅Π½Π° Ρ‚ΠΎΠΊΠ΅Π½Π°ΠΌΠΈ. Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ систСм Π²Ρ‹Π΄Π°ΡŽΡ‚ JWT ΠΏΡ€ΠΈ Π²Ρ…ΠΎΠ΄Π΅, Π½ΠΎ Ссли ΠΎΠ½ хранится Π² локальном Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ ΠΈΠ»ΠΈ ΠΊΡƒΠΊΠΈ Π±Π΅Π· HttpOnly, Ρƒ тСбя ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ XSS. ΠŸΠΎΡ‚ΠΎΠΌ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒ процСсс обновлСния Ρ‚ΠΎΠΊΠ΅Π½Π° – Ссли сСрвСр ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Ρ‚ΠΎΠΊΠ΅Π½ обновлСния с любого Π΄ΠΎΠΌΠ΅Π½Π° ΠΈΠ»ΠΈ ΠΏΠΎ Π½Π΅Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½ΠΎΠΌΡƒ HTTP, Ρ‚Ρ‹ моТСшь просто воспроизвСсти Π΅Π³ΠΎ ΠΈΠ· ΡƒΠΊΡ€Π°Π΄Π΅Π½Π½ΠΎΠΉ сСссии. ΠŸΠΎΠΈΡ‰ΠΈ Π΅Ρ‰Π΅ пСрСнаправлСния Π² Ρ†ΠΈΠΊΠ»; Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ API ΠΏΠ΅Ρ€Π΅Π±Ρ€Π°ΡΡ‹Π²Π°ΡŽΡ‚ Π½Π° страницу Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΈ истСчСнии срока дСйствия Ρ‚ΠΎΠΊΠ΅Π½Π°, Π½ΠΎ Ссли URL пСрСнаправлСния Π½Π΅ провСряСтся, Π·Π»ΠΎΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ΄ΡΡƒΠ½ΡƒΡ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ ссылку, которая Π²Π΅Ρ€Π½Π΅Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π½Π° врСдоносный хост с ΡƒΠΊΡ€Π°Π΄Π΅Π½Π½Ρ‹ΠΌ Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠΌ Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°Ρ… запроса. НС Π·Π°Π±Ρ‹Π²Π°ΠΉ ΠΏΡ€ΠΎ отсутствиС Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΎΡ‚ CSRF Π½Π° эндпоинтах, ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‰ΠΈΡ… состояниС; Ссли Ρ‚Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΡˆΡŒ GET для сброса пароля, это Ρ‚ΠΈΡ…ΠΈΠΉ Π²Π΅ΠΊΡ‚ΠΎΡ€ Π°Ρ‚Π°ΠΊΠΈ. Ну ΠΈ Π½Π°ΠΊΠΎΠ½Π΅Ρ†, Ссли ΠΊΡƒΠΊΠΈ "ΠΏΠΎΠΌΠ½ΠΈ мСня" установлСн ΠΊΠ°ΠΊ "secure", Π½ΠΎ Π±Π΅Π· "SameSite=strict", мСТсайтовая вставка ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚ΠΈΡ‚ΡŒ Π΅Π³ΠΎ. Π­Ρ‚ΠΎ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ распространСнныС уязвимости; исправлСниС ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ сводится ΠΊ Ρ€ΠΎΡ‚Π°Ρ†ΠΈΠΈ сСкрСтов, установкС ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎΠ³ΠΎ срока ΠΆΠΈΠ·Π½ΠΈ Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ², ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡŽ SameSite ΠΈ пСрСносу критичСских сСкрСтов Π² Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½Ρ‹Π΅, HttpOnly ΠΊΡƒΠΊΠΈ.