ИзползванС Π½Π° Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΠΈ ΡƒΠ½ΠΈΠΊΠΎΠ΄ символи Π·Π° скриванС Π½Π° дСйствия Π² JavaScript ΠΊΠΎΠ΄

Π‘Π»Π΅Π΄Π²Π°ΠΉΠΊΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π·Π° Π°Ρ‚Π°ΠΊΠ° Π½Π° Trojan Source, ΠΊΠΎΠΉΡ‚ΠΎ сС основава Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Unicode символи, ΠΊΠΎΠΈΡ‚ΠΎ промСнят Ρ€Π΅Π΄Π° Π½Π° ΠΏΠΎΠΊΠ°Π·Π²Π°Π½Π΅ Π½Π° двупосочСн тСкст, Π΅ ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Π½Π° Π΄Ρ€ΡƒΠ³Π° Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ° Π·Π° въвСТданС Π½Π° скрити дСйствия, ΠΏΡ€ΠΈΠ»ΠΎΠΆΠΈΠΌΠ° към JavaScript ΠΊΠΎΠ΄. Новият ΠΌΠ΅Ρ‚ΠΎΠ΄ сС основава Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° символа Unicode β€œγ…€β€ (ΠΊΠΎΠ΄ 0x3164, β€œHANGUL FILLER”), ΠΊΠΎΠΉΡ‚ΠΎ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈ към катСгорията Π±ΡƒΠΊΠ²ΠΈ, Π½ΠΎ няма Π²ΠΈΠ΄ΠΈΠΌΠΎ ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅. ΠšΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΡΡ‚Π° Unicode, към която ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈ Ρ‚ΠΎΠ·ΠΈ Π·Π½Π°ΠΊ, Π΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½Π° ΠΎΡ‚ спСцификацията Π½Π° ECMAScript 2015 Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π² ΠΈΠΌΠ΅Π½Π° Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ Π² JavaScript, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΏΡ€Π°Π²ΠΈ възмоТно ΡΡŠΠ·Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ ΠΈΠ»ΠΈ Π½ΠΎΠ²ΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ са Π½Π΅Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠΌΠΈ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ Π² популярни Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΈ Π½Π° ΠΊΠΎΠ΄ΠΎΠ²Π΅ ΠΊΠ°Ρ‚ΠΎ Notepad++ ΠΈ VS Code.

ΠšΠ°Ρ‚ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π΅ Π΄Π°Π΄Π΅Π½ ΠΊΠΎΠ΄ΡŠΡ‚ Π·Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Node.js, Π² ΠΊΠΎΠΉΡ‚ΠΎ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°, ΡΡŠΡΡ‚ΠΎΡΡ‰Π° сС ΠΎΡ‚ Π΅Π΄ΠΈΠ½ Π·Π½Π°ΠΊ β€žγ…€β€œ, Π΅ скрита Π·Π°Π΄Π½Π° Π²Ρ€Π°Ρ‚Π°, която позволява ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΊΠΎΠ΄Π°, Π·Π°Π΄Π°Π΄Π΅Π½ ΠΎΡ‚ атакуващия: app.get('/ network_health', async (req, res) = > { const { timeout,γ…€} = req.query; // Π²ΡΡŠΡ‰Π½ΠΎΡΡ‚ ΠΊΠ°Π·Π²Π° β€žconst { timeout,γ…€ \u3164}” const checkCommands = [ 'ping -c 1 google. com', 'curl -s http:// example.com/',γ…€ // запСтаята Π΅ послСдвана ΠΎΡ‚ Π·Π½Π°ΠΊΠ° \u3164 ];

На ΠΏΡ€ΡŠΠ² ΠΏΠΎΠ³Π»Π΅Π΄ ΠΏΡ€Π΅Π· външния ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€ сС ΠΏΡ€Π΅Π΄Π°Π²Π° само стойността Π½Π° ΠΈΠ·Ρ‡Π°ΠΊΠ²Π°Π½Π΅, Π° ΠΌΠ°ΡΠΈΠ²ΡŠΡ‚ с ΠΊΠΎΠΌΠ°Π½Π΄ΠΈΡ‚Π΅, ΠΊΠΎΠΈΡ‚ΠΎ трябва Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ изпълнСни, ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° Π±Π΅Π·Π²Ρ€Π΅Π΄Π΅Π½ фиксиран списък. Но Π²ΡΡŠΡ‰Π½ΠΎΡΡ‚ слСд ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°Ρ‚Π° Π·Π° ΠΈΠ·Ρ‡Π°ΠΊΠ²Π°Π½Π΅ сС присвоява стойността Π½Π° Π΄Ρ€ΡƒΠ³Π° Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΠ° ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° с ΠΊΠΎΠ΄Π° Π½Π° символа \u3164, която ΡΡŠΡ‰ΠΎ сС замСства Π² масива ΠΎΡ‚ изпълними ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ. По Ρ‚ΠΎΠ·ΠΈ Π½Π°Ρ‡ΠΈΠ½, Π°ΠΊΠΎ Ρ‚Π°ΠΊΡŠΠ² Π΄ΠΈΠ·Π°ΠΉΠ½ Π΅ Π½Π°Π»ΠΈΡ‡Π΅Π½, атакуващият ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·ΠΏΡ€Π°Ρ‚ΠΈ заявка ΠΊΠ°Ρ‚ΠΎ β€žhttps://host:8080/network_health?%E3%85%A4=commandβ€œ, Π·Π° Π΄Π° Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π° Π·Π°Π΄Π½Π°Ρ‚Π° Π²Ρ€Π°Ρ‚Π° ΠΈ Π΄Π° изпълни своя ΠΊΠΎΠ΄.

Π”Ρ€ΡƒΠ³ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π΅ Π·Π½Π°ΠΊΡŠΡ‚ "Ηƒ" (ΠΠ›Π’Π•ΠžΠ›ΠΠ ΠΠž Π©Π ΠΠšΠ’ΠΠΠ•), ΠΊΠΎΠΉΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°, Π·Π° Π΄Π° ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π°, Ρ‡Π΅ ΠΏΠΎΠΊΠ°Π·Π²Π° ΡƒΠ΄ΠΈΠ²ΠΈΡ‚Π΅Π»Π΅Π½ Π·Π½Π°ΠΊ. НапримСр, ΠΈΠ·Ρ€Π°Π·ΡŠΡ‚ β€žif(environmentΗƒ=ENV_PROD){β€œ, ΠΊΠΎΠ³Π°Ρ‚ΠΎ сС изпълнява Π² Node.js 14, Π²ΠΈΠ½Π°Π³ΠΈ Ρ‰Π΅ бъдС Π²Π΅Ρ€Π΅Π½, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ Π½Π΅ провСрява Π·Π° Ρ€Π°Π·Π»ΠΈΠΊΠ°, Π° присвоява стойността Π½Π° ENV_PROD Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°Ρ‚Π° β€ženvironmentΗƒβ€œ. Π”Ρ€ΡƒΠ³ΠΈ ΠΏΠΎΠ΄Π²Π΅ΠΆΠ΄Π°Ρ‰ΠΈ ΡƒΠ½ΠΈΠΊΠΎΠ΄ Π·Π½Π°Ρ†ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π²Π°Ρ‚ "/", "βˆ’", "οΌ‹", "β©΅", "❨", "β«½", "κ“Ώ" ΠΈ "βˆ—".

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€